linux - مجانا - كيفية قص مقطع فيديو من اليوتيوب




قطع مقاطع الفيديو استنادًا إلى وقت البدء والانتهاء باستخدام ffmpeg (3)

لقد حاولت قطع الفيديو باستخدام وقت البدء والانتهاء من الفيديو باستخدام الأمر التالي

ffmpeg -ss 00:00:03 -t 00:00:08 -i movie.mp4 -acodec copy -vcodec copy -async 1 cut.mp4

باستخدام الأمر أعلاه ، أريد أن أقطع الفيديو من 00:00:03 إلى 00:00:08 . ولكنها لا تقطع الفيديو بين تلك الأوقات بدلاً من أنها تقطع الفيديو مع أول 11 ثانية. يمكن لأي شخص أن يساعدني كيف حل هذا؟

تحرير 1:

لقد حاولت قطع باستخدام الأمر التالي الذي اقترحه mark4o

ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4

ولكن تبين أن الخطأ التالي.

برنامج التشفير "aac" هو تجريبي ولكن لم يتم تمكين برامج الترميز التجريبية

لذا أضفت -strict -2 إلى الأمر ie ،

ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 -strict -2 cut.mp4

الآن تعمل بشكل جيد.


حاول استخدام هذا. هذا هو أسرع وأفضل طريقة ffmpeg لدي الرقم بها:

 ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c copy output.mp4

يعمل هذا الأمر على توسعة مقطع الفيديو الخاص بك في ثوانٍ!

لقد شرحت ذلك على مدونتي here :

-i: هذا يحدد ملف الإدخال. في هذه الحالة ، يكون (input.mp4).
-ss: يستخدم مع -i ، هذا يسعى في ملف الإدخال (input.mp4) إلى الموضع.
00:01:00: هذه هي المرة التي سيبدأ فيها الفيديو الذي تم اقتطاعه.
-to: تحدد المدة من البداية (00:01:40) حتى النهاية (00:02:12).
00:02:00: هذه هي المرة التي ينتهي فيها الفيديو الذي تم اقتطاعه.
نسخ c: هذا هو خيار لتقليص عبر نسخة تيار. (ملاحظة: سريع جدا)

تنسيق التوقيت هو: hh: mm: ss

يرجى ملاحظة أن الإجابة الحالية عالية الأداء قد عفا عليها الزمن وأن عملية القطع ستكون بطيئة للغاية. لمزيد من المعلومات ، انظر إلى article ffmpeg الرسمية.


من المحتمل أنك لا تملك إطارًا أساسيًا في علامة 3 ثوانٍ. ونظرًا لأن تشفير الإطارات غير المفتاحية يشفر الاختلافات من إطارات أخرى ، فإنها تتطلب جميع البيانات بدءًا من الإطار الرئيسي السابق.

مع حاوية mp4 ، من الممكن قطعها على إطار مفتاحي دون إعادة ترميز باستخدام قائمة تحرير. بعبارة أخرى ، إذا كان الإطار الرئيسي الأقرب قبل 3s هو 0s ، فسيتم نسخ الفيديو بدءًا من 0 ثانية واستخدام قائمة تعديل لإخبار المشغل ببدء التشغيل لمدة 3 ثوانٍ.

إذا كنت تستخدم أحدث ffmpeg من git master ، فستقوم بذلك باستخدام قائمة تحرير عند استدعاء الأمر الذي قدمته. إذا لم يكن هذا الإجراء مناسبًا لك ، فمن المحتمل أنك تستخدم إصدارًا قديمًا من ffmpeg ، أو أن المشغل لا يدعم قوائم التعديل. سيتجاهل بعض اللاعبين قائمة التعديل وسيقومون دائمًا بتشغيل كافة الوسائط في الملف من البداية إلى النهاية.

إذا كنت ترغب في قطع بدء التشغيل بشكل محدد على إطار مفتاحي ، وتريد تشغيله عند النقطة المطلوبة على لاعب لا يدعم قوائم التعديل ، أو تريد التأكد من أن جزء القطع ليس موجودًا بالفعل في ملف الإخراج (على سبيل المثال إذا كان يحتوي على معلومات سرية) ، فيمكنك القيام بذلك عن طريق إعادة الترميز بحيث يكون هناك إطار رئيسي في وقت البدء المطلوب بالضبط. إعادة الترميز هو الإعداد الافتراضي إذا لم تقم بتحديد copy . فمثلا:

ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 cut.mp4

عند إعادة الترميز ، قد ترغب أيضًا في تضمين خيارات إضافية متعلقة بالجودة أو برنامج تشفير AAC معين. لمزيد من التفاصيل ، انظر دليل تشفير x264 ffmpeg للفيديو ودليل تشفير AAC للصوت.

أيضًا ، يحدد الخيار -t مدة ، وليس وقت انتهاء. سيعمل الأمر السابق على ترميز 8s من الفيديو بدءًا من 3s. لبدء في 3S وتنتهي في استخدام 8S -t 5 . إذا كنت تستخدم إصدارًا حاليًا من ffmpeg ، فيمكنك أيضًا استبدال -t -to في الأمر أعلاه حتى تنتهي في الوقت المحدد.


ffmpeg -i movie.mp4 -ss 00:00:03 -t 00:00:08 -async 1 -c copy cut.mp4 

استخدام -c نسخة لجعل في الحال. في هذه الحالة ، لن يقوم ffmpeg بإعادة تشفير الفيديو ، ولن يؤدي إلا إلى تقليص حجمه.