گاهی پیش میاد که نیاز داریم فیلمی را توی سایتهایی مثل توییتر یا اینستاگرام یا هر سایت دیگری Upload کنیم ولی اون سایت یا به زمان زیادش یا حجمش ایراد میگیره و مجبور میشیم فیلم را به چند تیکه تقسیم کنیم بدون اینکه کیفیت اصلی فیلم پایین بیاد.
یکی از قدرتمندترین ابزارهای رایگانی که هم روی ویندوز و هم روی لینوکس در دسترس داریم ffmpeg هستش. کافیه package اون را روی لینوکس نصب کنیم (مثلاً روی دبیانیها میزنیم sudo apt install ffmpeg) یا برای ویندوز اون را از سایت https://www.ffmpeg.org/download.html دانلود میکنیم.
حالا اگه فرض کنیم میخوایم فیلم را روی توییتر آپلود کنیم و نیاز داریم فیلممون کمتر از ۲ دقیقه زمانش باشه و فیلم مثلاً در مسیر home/geekfarsi/movie.mp4/ باشه دستور زیر را میزنیم:
ffmpeg -i /home/geekfarsi/movie.mp4 -c copy -map 0 -segment_time 00:01:50 -f segment -reset_timestamps 1 output%03d.mp4
یا اگه ویندوزی باشه ابتدا به پوشه فایل ffmpeg.exe در مسیر مربوطه میریم و با فرض اینکه فیلم در مسیر D:\geekfarsi\movie.mp4 باشه دستور زیر را میزنیم:
ffmpeg.exe -i D:\geekfarsi\movie.mp4 -c copy -map 0 -segment_time 00:01:50 -f segment -reset_timestamps 1 output%03d.mp4
به این طریق خود ffmpeg به شما فایلهای حداکثر ۱ دقیقه و ۵۰ ثانیهای میده ، حالا ممکنه شما بخواهید بخشهای بزرگتر یا کوچکتری داشته باشین که از طریق ویرایش زمان در دستور بالا میتونید براحتی به خواسته خودتون برسید.
گاهی هم پیش میاد که میخواهیم بخشی از یک ویدئو را از یک زمان خاص به اندازه مورد نظر خودمون خارج یا همون Extract کنیم:
ffmpeg -ss 00:00:03 -i inputVideo.mp4 -to 00:00:08 -c:v copy -c:a copy outputVideo.mp4
با این دستور فاصله زمانی ثانیه ۳ تا ۸ را از inputVideo خارج میکنیم و کیفیت صدا و تصویر هم همانند فیلم اصلی ثابت میماند.