سؤال كيفية تغيير حجم الفيديو لجعله أصغر مع FFmpeg


هل من الممكن تغيير حجم مقاطع الفيديو الخاصة بي لجعلها أصغر مع FFmpeg؟

لدي أبعاد فيديو أصلية تبلغ 1024x576 ، والآن أريد تغيير حجم الفيديو إلى 720 × 480 لتلبية المتطلبات.

كيف يمكنني أن أفعل هذا؟


78
2017-11-30 06:38


الأصل


ffmpeg قد يكون موقوف ، انظر هنا و هنا - nutty about natty
nuttyaboutnatty لا تنطبق الرسائل "التي تم إيقافها" إلا على "قديم" ، "dead، fake"ffmpeg"من شوكة Libav ، لا ffmpeg من FFmpeg التي عادت في 15.04. - LordNeckbeard


الأجوبة:


المثال الأساسي هو هذا:

ffmpeg -i input.avi -s 720x480 -c:a copy output.mkv

عن طريق ال scale منقي سيوفر المزيد من المرونة:

ffmpeg -i input.avi -filter:v scale=720:-1 -c:a copy output.mkv

ال -1 سيخبر ffmpeg باختيار الارتفاع الصحيح تلقائيًا بالنسبة للعرض المتوفر للحفاظ على نسبة العرض إلى الارتفاع. -1 يمكن أيضًا استخدامه للعرض إذا قدمت ارتفاعًا معينًا.


جانب سلبي واحد من الحجم عند استخدام libx264 هو أن هذا المشفر يتطلب قيمًا حتى وإن المقياس قد يختار تلقائيًا قيمة فردية تؤدي إلى حدوث خطأ: width or height not divisible by 2. يمكنك معرفة المقياس لاختيار قيمة زوجية لارتفاع معين (720 في هذا المثال):

scale="trunc(oh*a/2)*2:720"

... أو عرض معين (1280 في هذا المثال):

scale="1280:trunc(ow/a/2)*2"

لاحظ أن بناء ffmpeg الخاص بك يمكن أن يشكو من عدم الاعتراف -c أو -filter خيارات. كما قد لا يدعم scale. في هذه الحالة يجب عليك استخدام ffmpeg أحدث ، والتي أنت يمكن تحميلها كما بناء ثابت ، أو تجميع نفسك.


129
2017-11-30 06:53



حاولت ffmpeg -i output.mkv -filter:v scale=720:-1 -acodec copy -threads 12 output_shrink.mkv (في ffmpeg الإصدار 0.8.6-6: 0.8.6-0ubuntu0.12.10.1) ولكن حصلت على الخطأ Unrecognized option 'filter:v' - doug65536
بعد الحفر من خلال الصفحة رجل ل ffmpeg عدة مرات وجدت أنه بدلا من -filter:v، يبدو أن الخيار قد تم تغييره -vf. - doug65536
@ doug65536 -filter:v و -vf كلاهما بخير. إن إصدار Ubuntu الذي كنت تستخدمه مكسور وقديم - إنه ليس FFmpeg ffmpeg، ولكن الثنائي المقدمة من Libav (شوكة FFmpeg) تحت نفس الاسم. - slhck
MightyPork ربما لديك بناء ffmpeg عفا عليها الزمن - ما هي المشاكل التي تحدث؟ على أي حال ، هذا ساعدني حقا (مع ffmpeg version 2.4.10) لتقليل حجم بعض مقاطع الفيديو الضخمة لتحرير بعض المساحة - شكرًا! - Wilf
'c' هو اختصار لـ -codec ، ':' يحدد 'دفق الصوت (s) ،' copy 'يحدد برنامج ترميز النسخ ، الذي ينسخ الدفق (المسارات) (في هذه الحالة الصوت) بدون إعادة التكويد. أساسا سوف تمر تيارات الصوت من خلال. هذا أمر شائع عند معالجة تدفق الفيديو فقط. - jimhark


أستخدم الأوامر التالية لإعادة ترتيب مقاطع الفيديو والصور. للعرض والارتفاع الثابت -

ffmpeg -i input.avi -vf scale="720:480" output.avi

وإذا كنت ترغب في الاحتفاظ بنسبة العرض إلى الارتفاع ، ما عليك سوى إعطاء الارتفاع بقيمة -1 وسيتم تغيير حجمه تلقائيًا استنادًا إلى العرض -

ffmpeg -i input.avi -vf scale="720:-1" output.avi

إذا كنت ترغب في قياس على أساس حجم المدخلات على سبيل المثال. دعنا نفترض تقليل العرض / الارتفاع إلى النصف الذي يمكنك فعله

ffmpeg -i input.avi -vf scale="iw/1:ih/2" output.avi

ملحوظة :

iw : input width
ih : input height

يمكن تنزيل الإنشاء الثابت من - https://johnvansickle.com/ffmpeg/

كابل بيانات : https://ffmpeg.org/ffmpeg.html#filter_005foption


3
2018-02-24 06:57