دستور ffmpeg برای برش ویدیو

نوشته حسین بهنودی در ۲۹ شهریور ۱۳۹۸

گاهی اوقات می‌خواهید تکه‌ای از یک فایل ویدیویی را جدا کرده به صورت مستقل ارایه دهید. این مقاله به شما کمک می کند این کار را به راحتی  و به سرعت انجام دهید.

امروزه اغلب فایل‌های ویدیویی به نحوی فشرده شده است و در فایل‌های فشرده I-frame نقش مهمی بازی می‌کند.

حالت اول:

اگر بخواهید قطعه ای از فایل را جدا کنید که با I-frame آغاز می‌شود و با I-frame یا P-frame تمام می‌شود.

ffmpeg -ss 00:01:30 -i input.mp4 -t 00:05:00 -c copy output.mp4

در مثال بالا از فایل input.mp4 از اولین I-frame بعد از  یک دقیقه و سی ثانیه (1:30) تا آخرین I-frame و یا P-frame قبل از پنج دقیقه را جدا کرده در فایل output.mp4 ذخیره می‌کند. (باید زمان ابتدای برش قبل از نام فایل ورودی بیاید.)

مزیت: این روش در این است که فایل مجددا Encode نمی شود و در نتیجه بسیار سریع است و تنها در حد کپی کردن زمان می‌برد. همچنین کیفیت فایل تغییر نمی‌کند.

مشکل: این روش در این است که خیلی دقیق نیست و ممکن است چند فریم را از دست بدهید.

حالت دوم:

اگر بخواهید از فریم تا فریم خاصی را دقیقا جدا کنید.

ffmpeg -i input.mp4 -ss 00:01:30 -t 00:05:00-strict-2 output.mp4

در مثال فوق از فایل input.mp4 دقیقا از یک دقیقه و سی ثانیه تا پنج دقیقه را جدا کرده در فایل output.mp4 ذخیره می‌کند. (باید زمان ابتدای برش بعد از نام فایل ورودی بیاید.)

مزیت: این روش اینست که برش بسیار دقیق است.

مشکل: این روش اینست که فایل مجددا Encode  می‌شود و هر بار Encode کیفیت را کمی کاهش می‌دهد. و همچنین زمان بیشتری می‌برد.