[linux] قطع مقاطع الفيديو استنادًا إلى وقت البدء والانتهاء باستخدام ffmpeg



Answers

حاول استخدام هذا. هذا هو أسرع وأفضل طريقة 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 الرسمية.

Question

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

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 -i movie.mp4 -vf trim=3:8 cut.mp4

إسقاط كل شيء ما عدا الثاني 3 إلى الثاني 8.