Мне нужно объединить несколько видеофайлов с разной частотой кадров, чтобы воспроизвести их с OMXPlayer на Raspberry PI (объединение также выполняется на PI).
И оригиналы, и конкатенация являются mp4/h264, и оригиналы также создаются некоторыми моими программами.
Использование ffmpegs copy muxer не работает, когда файлы имеют разные временные базы.
Так что я думал, что я создаю оригинальные видео с явной временной базой 120 (120 делится на 25 и 30, единственные частоты кадров, которые меня интересуют).
Тест
ffmpeg.exe -i .\ballon.mp4 -enc_time_base 1:120 .\ballon-120.mp4
кажется многообещающим: ffmpeg говорит, что он производит видео 30 кадров в секунду (оригинал был 30 кадров в секунду) с временным интервалом 120 на выходе.
Тем не менее, он также говорит, что он многократно дублирует кадры, и следующая команда говорит мне, что у меня в 4 раза больше кадров, чем на самом деле должно быть:
ffprobe -v error -count_frames -select_streams v:0 -show_entries stream=nb_frames -of default=nokey=1:noprint_wrappers=1 .\ballon.mp4
ffprobe также считает, что частота кадров теперь равна 120, и, действительно, OMXPlayer жалуется на слишком высокую частоту кадров и проигрывает видео несколько медленно.
Я хочу изменить временную базу, а не частоту кадров или количество кадров. Как я могу это сделать?