أي إطار يحصل عليه FFMPEG عند تقليل معدل الإطار

StackOverflow https://stackoverflow.com/questions/1555771

  •  21-09-2019
  •  | 
  •  

سؤال

لدي بعض الفيديو الذي أود تحويله إلى صور للإطارات كل 2 ثانية.

على سبيل المثال ، إذا كان الفيديو 7 ثوانٍ عند 15 إطارًا في الثانية ، أود الحصول على إطارات 1 و 31 و 61 و 91.

الامر:

ffmpeg -i foo.mp4 -r 0.5  -f image2 -vcodec mjpeg foo%d.jpg

يبدو أنه يفعل ما أريد ، ولكن أي إطار يحصل عليه؟ 1 ، 31 ، 61 ، 91 أو 30 ، 60 ، 90 أو 13 ، 43 ، 73 ، 103؟

هل كانت مفيدة؟

المحلول

الصورة الأولى ستكون من الإطار الأول.

لاحظ أنك قد تحصل جيدًا على صورة أو اثنتين آخرين تتوقعهما. أعتقد أن هذا بسبب التقريب و/أو أن FFMPEG يخلق صورًا نهائية. على سبيل المثال: هل مقطع الفيديو الخاص بك حقًا 7s؟ أم أن طوله 7.63 ثانية؟

نصائح أخرى

انتهى بي الأمر إلى القيام بما يلي استعارت إلى حد كبير من البرنامج التعليمي FFMPEG:

ffmpeg -v 3 -vsync 0 -sameq -i movie.mpr  -f image2 "images-%03d.jpeg"

هذا يعطيني كل إطار من الفيلم باعتباره JPEG مرقمة 1 حتى نهاية الفيلم. قمت بعد ذلك بتصفية هذه الملفات باستخدام لغة برمجة نصية ، مع العلم أن معدل الإطار كان 30 إطارًا في الثانية ، للاستيلاء على كل إطار 60.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top