آیا میخواهید با ترمینال لینوکس بیشتر کار کنید؟ شاید به طور غریزی و طبیعی ویدیئوها و خط فرمان را با هم مرتبط نکنید، اما با FFmpeg میتوانید واقعاً کارهای زیادی با فایل ویدیو انجام دهید فقط با تایپ یک دستور ساده در ترمینال خود.
اگر تا به حال دربارهاش نشنیدهاید، FFmpeg یک ابزار خط فرمان است که میتواند هر چیزی مرتبط با رسانهها را مدیریت کند. این ابزار در مخازن بیشتر توزیعهای لینوکس موجود است، بنابراین کافی است بستهاش را پیدا کرده و نصب کنید تا بتوانید از آن استفاده کنید.
چه بخواهید یک ویدیو را به سرعت پخش کنید، اطلاعاتی از آن استخراج کنید، یا ترفندهای جذاب ویرایش ویدیو انجام دهید، FFmpeg همه چیز را برای شما فراهم کرده است. در اینجا چند کار مفید که میتوانید با FFmpeg در دستگاه لینوکسی خود انجام دهید، آورده شده است.
۱۰- پخش ویدیو
شاید شما قبلاً یک پخشکننده ویدیوی مورد علاقه داشته باشید و این عالی است. اما گاهی اوقات، شما فقط به یک روش سریع و ساده برای تماشای چیزی نیاز دارید بدون اینکه بخواهید یک برنامه گرافیکی کامل را باز کنید. شما میتوانید این کار را با استفاده از پخشکننده داخلی FFmpeg به نام ffplay انجام دهید.
برای مثال، برای پخش یک ویدیو، ترمینال خود را باز کرده و دستور زیر را اجرا کنید:
ffplay your_video_file.mp4
ویدیو شما در یک پنجره جداگانه باز میشود و آماده پخش است. شما میتوانید آن را با دستورات زیر کنترل کنید: “q” برای خروج، “p” برای مکث، و کلیدهای جهت چپ یا راست برای جلو بردن یا عقب بردن ویدیو.
اگر میخواهید ویدیو شما به صورت مداوم پخش شود، دستور زیر را اجرا کنید:
ffplay -loop 0 your_video_file.mp4
گزینه -loop 0
باعث میشود ویدیو به طور نامحدود تکرار شود. شما میتوانید عدد ۰ را با هر عدد دیگری جایگزین کنید تا تعداد دفعات تکرار را تنظیم کنید.
۹- دریافت اطلاعات رسانهای
معمولاً برای دریافت اطلاعات فایل ویدئویی باید از منوهای یک پخشکننده رسانه استفاده کنید، یا شاید حتی از یک برنامه جداگانه. اما با FFmpeg، دریافت همه این اطلاعات تنها با یک دستور امکانپذیر است.
برای دریافت اطلاعات رسانهای، فقط کافی است دستور زیر را اجرا کنید:
ffmpeg -i your_video_file.mp4
در عرض چند ثانیه، یک خروجی کامل از جمله کدکها، بیتریتها، نرخ فریمها و موارد دیگر را مشاهده خواهید کرد.
برای دریافت اطلاعات دقیقتر در مورد ویدئو، صدا و استریمهای زیرنویس، از ابزار ffprobe (یکی از ابزارهای FFmpeg) استفاده کنید:
ffprobe -show_streams -i your_video_file.mp4
و برای خروجی تمیزتر در فرمت JSON، دستور زیر را اجرا کنید:
ffprobe -v quiet -print_format json -show_format -show_streams your_video_file.mp4
علاوه بر این، باید بگویم که تمام این دستورات به شما کمک میکنند تا فایلهای ویدیویی را به طور مؤثر تجزیه و تحلیل کنید بدون اینکه نیاز به پخش آنها داشته باشید.
۸- ضبط صفحه نمایش
FFmpeg همچنین قادر به ضبط صفحه نمایش شماست. چه بخواهید به کسی نشان دهید چگونه کاری را در لینوکس انجام دهد یا یک دمو سریع بسازید، نیازی به برنامههای اضافی ضبط صفحه ندارید.
فرض کنید میخواهید صفحه نمایش خود را برای ۱۰ ثانیه ضبط کنید. میتوانید این کار را با استفاده از دستور زیر انجام دهید:
ffmpeg -f x11grab -video_size 1920x1080 -r 30 -i :0.0+0,0 -t 10 output.mp4
این دستور صفحه دسکتاپ شما را با وضوح ۱۹۲۰x۱۰۸۰ و نرخ فریم ۳۰ فریم در ثانیه ضبط میکند. علاوه بر این، گزینه “-i :0.0+0,0” به FFmpeg میگوید که کدام صفحه را ضبط کند. به عنوان مثال، در اینجا “:۰.۰” به صفحه اصلی اشاره دارد و “+۰,۰” به این معنی است که ضبط از گوشه بالا-چپ آغاز شود.
هشدار: اگر سیستم شما به جای Xorg از Wayland استفاده میکند، ممکن است گاهی با مشکل صفحه سیاه مواجه شوید، زیرا x11grab در FFmpeg بهترین عملکرد را با Xorg دارد. تغییر به یک جلسه Xorg باید مشکل را حل کند.
اگر نمیدانید اندازه یا موقعیت صفحه شما چیست، میتوانید با این دستور آن را پیدا کنید:
xdpyinfo | grep dimensions
باید بدانید که دستور FFmpeg قبلی فقط صفحه دسکتاپ شما را بدون صدا ضبط میکند. بنابراین، اگر میخواهید همراه با ویدیو، صدا را نیز ضبط کنید، باید یک دستگاه ورودی صدا را به همراه ورودی ویدیو مشخص کنید.
برای مثال، میتوانید از گزینه “-f alsa -i pulse” برای ضبط همزمان ویدیو و صدای صفحه استفاده کنید:
ffmpeg -f x11grab -video_size 1920x1080 -r 30 -i :0.0+0,0 -f alsa -i default -t 10 output.mp4
برای ضبط یک پنجره خاص، دستور FFmpeg کمی پیچیدهتر است، اما برای ضبط سریع صفحه کامل، FFmpeg گزینه عالیای است. علاوه بر این، اگر به کار با ترمینال علاقه دارید، FFmpeg به شما کنترل کامل بر هر جنبه از فرآیند ضبط را میدهد.
۷- استخراج تصاویر از ویدیو
آیا تا به حال خواستهاید یک فریم از یک ویدیو استخراج کنید—شاید برای یک تصویر بندانگشتی یا برای ضبط یک لحظه جالب؟ FFmpeg این کار را بسیار ساده میکند.
برای مثال، فرض کنید میخواهید هر ثانیه یک تصویر از ویدیو استخراج کرده و آنها را به صورت فایلهای تصویری ذخیره کنید. برای انجام این کار، دستور زیر را اجرا کنید:
ffmpeg -i input.mp4 -r 1 image-%04d.jpg
این دستور هر ثانیه یک تصویر از ویدیو استخراج کرده و آنها را با نامهایی مانند “image-0001.jpg” ذخیره میکند.
در اینجا، گزینه “-r 1” نرخ ضبط را به یک تصویر در هر ثانیه تنظیم میکند. این گزینه یک فریم از هر ثانیه ویدیو استخراج میکند. میتوانید این عدد را تغییر دهید تا تصاویر را با فرکانس بیشتری یا کمتری استخراج کنید. همچنین میتوانید فرمت JPG را به PNG یا فرمتهای دیگر تغییر دهید در صورت نیاز.
۶- تبدیل تصاویر به ویدیو
FFmpeg نه تنها میتواند تصاویر را استخراج کند بلکه میتواند مجموعهای از تصاویر را به یک ویدیو تبدیل کند. چه بخواهید یک اسلایدشو، انیمیشن یا تایملپس بسازید، FFmpeg این فرایند را ساده میکند.
قبل از تبدیل، مطمئن شوید که تصاویر شما به صورت ترتیبی نامگذاری شدهاند (برای مثال، image-0001.jpg، image-0002.jpg). حالا این تصاویر ترتیبی را به ویدیو تبدیل کنید با دستور زیر:
ffmpeg -framerate 1 -i image-%04d.jpg -c:v libx264 -r30 output.mp4
در اینجا، گزینه -framerate 1
نرخ فریم را به ۱ فریم در ثانیه تنظیم میکند، یعنی اگر ۵ تصویر داریم و میخواهیم یک ویدیوی ۵ ثانیهای بسازیم، نرخ فریم ۱ خواهد بود. میتوانید این عدد را تغییر دهید تا ویدیو سریعتر یا کندتر شود.
دستور قبلی تصاویر را به ویدیو تبدیل میکند بدون اینکه موسیقی اضافه کند. اما اگر بخواهید در ویدیوی خود موسیقی هم داشته باشید، این دستور را اجرا کنید و “music.mp3” را با فایل صوتی خود جایگزین کنید:
ffmpeg -framerate 1 -i image_%04d.jpg -i music.mp3 -c:v libx264 -r30 -shortest slideshow.mp4
در اینجا، گزینه -shortest
طول ویدیو را به طول کوتاهترین ورودی تنظیم میکند. بنابراین، اگر موسیقی از اسلایدشو طولانیتر باشد، ویدیو طول اسلایدشو را دنبال خواهد کرد.
۵- تبدیل ویدیو به MP3 یا GIF
یکی از ویژگیهای قوی FFmpeg تبدیل ویدیو به فرمتهای مختلف است، مانند تبدیل ویدیو به MP3 یا ایجاد انیمیشن GIF از ویدیو.
برای استخراج صدا از ویدیو، از گزینه -vn استفاده کنید که به FFmpeg دستور میدهد تا جریان ویدیو را کنار بگذارد و فقط صدا را به MP3 تبدیل کند:
ffmpeg -i input.mp4 -vn -acodec libmp3lame output.mp3
همچنین میتوانید output.mp3 را به output.wav یا فرمت صوتی دیگری تغییر دهید اگر نیاز داشتید.
برای تبدیل ویدیو به GIF، از این دستور استفاده کنید:
ffmpeg -i sample_video.mp4 output.gif
شما میتوانید بخشهای خاصی از ویدیو را استخراج کرده و آنها را به GIF تبدیل کنید با استفاده از این دستور:
ffmpeg -ss 30.0 -t 2.1 -i sample_video.mp4 output.gif
این دستور ۲.۱ ثانیه از ابتدای ویدیو با مدت زمان ۳۰ ثانیه را بریده و به GIF تبدیل میکند.
۴- اضافه کردن زیرنویس به یک فیلم
اضافه کردن زیرنویس به یک فیلم میتواند بسیار مفید باشد، بهویژه زمانی که محتوایی به زبان دیگری میبینید. FFmpeg فرآیند اضافه کردن زیرنویس به ویدیوهای شما را ساده میکند.
اول، یک فایل زیرنویس تهیه کنید، معمولاً با پسوند SRT. برای مثال، اگر یک فایل زیرنویس (مانند subtitles.srt) و یک ویدیو (input.mp4) دارید، میتوانید زیرنویسها را به صورت دائمی در ویدیو قرار دهید:
ffmpeg -i input.mp4 -vf "subtitles=subtitles.srt" output.mp4
این دستور زیرنویسها را به صورت دائمی در ویدیو جاسازی میکند، بهطوری که همواره قابل مشاهده خواهند بود و نمیتوان آنها را غیرفعال کرد.
اگر ترجیح میدهید زیرنویسها اختیاری باشند و تماشاگران بتوانند آنها را روشن یا خاموش کنند، از این دستور استفاده کنید:
ffmpeg -i input.mp4 -i subtitles.srt -c copy -c:s mov_text output.mp4
این دستور زیرنویسها را به عنوان یک ترک جداگانه حفظ میکند و کیفیت ویدیوی اصلی را حفظ میکند.
۳- بازسازی شاخص ویدیو بدون تبدیل مجدد
گاهی اوقات ویدیو ممکن است دچار مشکلاتی شود—مثلاً پریدن، یخ زدن یا جلوگیری از فستفوروارد یا عقبگرد. اغلب، این مشکل به دلیل خرابی شاخص ویدیو است. برای رفع این مشکل، ممکن است نیاز به بازسازی شاخص بدون تغییر کدک ویدیو داشته باشید.
خوشبختانه، FFmpeg معمولاً میتواند شاخص را بدون تغییر خود ویدیو تعمیر کند. این فرآیند که به آن remuxing گفته میشود، سریع است زیرا کیفیت ویدیو و صدا را حفظ کرده و تنها ساختار فایل را اصلاح میکند.
برای بازسازی شاخص ویدیو، این دستور را اجرا کنید:
ffmpeg -i input.mp4 -c copy -copyts output.mp4
در اینجا، گزینه -c copy به FFmpeg دستور میدهد که جریانهای ویدیو و صدا را به همان صورت که هستند کپی کند و کیفیت آنها را حفظ کند و فرآیند را سرعت بخشد. گزینه -copyts نیز اطمینان حاصل میکند که اطلاعات زمانبندی به درستی کپی شوند که برای پخش روان ضروری است.
۲- تغییر اندازه ویدیوها
این روش برای بررسی سریع و تعمیر فایل ویدیویی مفید است. با این حال، اگر مشکل همچنان ادامه داشته باشد، ممکن است ویدیو به شدت آسیبدیده باشد.
تغییر اندازه ویدیوها یکی از مفیدترین ویژگیهای FFmpeg است. شما میتوانید ابعاد ویدیو را به راحتی برای شبکههای اجتماعی، صفحهنمایشهای موبایل یا بهینهسازی فضای ذخیرهسازی تنظیم کنید. ویدیوهای کوچکتر فضای کمتری میگیرند، سریعتر آپلود میشوند و در ارتباطات کندتر عملکرد بهتری دارند.
برای تغییر اندازه ویدیو به ابعاد خاص (مثلاً ۱۲۸۰x۷۲۰)، از این دستور استفاده کنید:
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
اگر میخواهید FFmpeg بهطور خودکار نسبت تصویر را حفظ کند، تنها یک بعد را مشخص کرده یا از عبارات استفاده کنید:
ffmpeg -i input.mp4 -vf scale=640:-1 output.mp4
این دستور عرض را به ۶۴۰ پیکسل تنظیم میکند و FFmpeg ارتفاع مناسب را محاسبه کرده تا نسبت تصویر حفظ شود. با این حال، توجه داشته باشید که کاهش اندازه ممکن است کیفیت را کاهش دهد، پس رزولوشنها را با دقت انتخاب کنید.
۱- برش و برش قسمتی از ویدیوها
برش ویدیو به شما این امکان را میدهد که فقط قسمتهای ضروری را استخراج کنید بدون اینکه کیفیت ویدیو تغییر کند. این برای حذف ورودیها، خروجیها یا هر اشتباه دیگری بسیار مناسب است.
برای مثال، برای استخراج یک بخش ۲۰ ثانیهای از ویدیو که از ۱۰ ثانیه شروع میشود، این دستور را اجرا کنید:
ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:30 -c copy output_trimmed.mp4
در اینجا، “-ss 00:00:10” به FFmpeg دستور میدهد که از علامت ۱۰ ثانیه شروع کند، در حالی که “-to 00:00:30” ویدیو را در ۳۰ ثانیه متوقف میکند. همچنین گزینه “-c copy” تضمین میکند که ویدیو و صدا بدون نیاز به دوباره کدگذاری کپی شوند، که فرآیند را سریعتر کرده و کیفیت اصلی را حفظ میکند.
برش کردن به حذف لبههای غیرضروری یا بزرگنمایی روی قسمتهای مهم ویدیو کمک میکند. برای برش ویدیو به ابعاد ۶۴۰x۴۸۰ پیکسل، شروع از گوشه بالا-چپ، این دستور را اجرا کنید:
ffmpeg -i input.mp4 -vf "crop=640:480:0:0" output_cropped.mp4
فیلتر crop چهار مقدار میگیرد: عرض، ارتفاع، و مختصات x و y که تعیین میکند برش از کجا شروع شود. در این مورد، عرض و ارتفاع به ۶۴۰x۴۸۰ تنظیم شده و ۰:۰ تضمین میکند که برش از گوشه بالا-چپ ویدیو آغاز شود.
با تمرین و یادگیری این ترفندهای FFmpeg، میتوانید به راحتی بهرهوری خود را افزایش داده و روند کاری خود را ساده کنید. و به یاد داشته باشید—این تنها آغاز است. در FFmpeg چیزهای زیادی برای کشف وجود دارد، پس وارد شوید و به آزمایش کردن ادامه دهید!