Щоб розширити відповідь LordNeckbeard, так, просто перенесіть дані JPEG у відеопотік MJPEG. Це буде найменше представлення точної послідовності вихідних зображень, навіть незважаючи на те, що MJPEG є надзвичайно неефективним кодеком за сучасними мірками. (немає тимчасової надмірності і навіть не внутрішнє передбачення).
Ви можете зробити MJPEG-відео із змінним кадром, щоб скористатись повторюваними зображеннями у вашому введенні.
ffmpeg -framerate 30 -i input%03d.jpg -vf mpdecimate -codec copy output.mkv # doesn't work.
Хрм, це не спрацює, оскільки mpdecimate не буде працювати на стислих даних, і ми не можемо дозволити ffmpeg декодувати, а потім повторно jpeg зображення зображень без втрат і вартості процесора.
Можливо, якщо ви замінили дублікати вихідних файлів jpg на порожні файли з цим порядковим номером, чи щось?
Оскільки це запитання навіть не нещодавно, я не збираюся витрачати час, щоб розібратися, як це зробити, якщо хтось не відповість на запитання як. Але оскільки MJPEG може перейти в контейнер mkv, я впевнений, що можливо мати файл, який не дублює дані jpeg для повторних кадрів, а натомість просто не має вихідного кадру для декодування, поки послідовність дублікатів не буде над.
О, ось ідея:
ffmpeg -framerate blah -input blah -vf mpdecimate -f mkvtimestamp_v2 mpdecimate.timestamps
Потім видаліть (або відсуньте в сторону) всі jpegs для кадрів, які mpdecimate хоче скинути (ймовірно, у нього є деякі параметри реєстрації? Або -vf showinfo, і проаналізуйте це, і перемістіть або жорстке посилання тільки кадри, які відображаються у його результаті, залишаючи позаду скинуті JPEG?). mux, що для MJPEG.mkv, тоді зробіть щось з mkvmerge, щоб замінити часові позначки кадру на ті, що мають часові позначки від mpdecimate.timestamps
.
Якби ви використовували xcoding, замість того, щоб просто відключити дані jpeg до MJPEG, це було б МНОГО простіше, оскільки ви просто використовуєте мою першу команду з mpdecimate та будь-яким кодеком, окрім copy
, і це було б просто працювати (tm).
Я нічого з цього не пробував, оскільки це було давнє питання. Також причина, що я не заповнив прогалини, як насправді фільтрувати ваш каталог jpegs на основі виводу mpdecimate, або як насправді використовувати потік міток часу.