как люди сказали в комментариях, правильный способ справиться с проблемой, которую вы на самом деле пытаетесь решить, - это настроить субтитры или сказать вашему плееру, что они для другого скоростного видео. (например,mpv --sub-fps 25
будет держать подводные лодки для 25fps шоу в синхронизации с 24/1.001 fps копия.) (http://mpv.io/)
но ответить на актуальный вопрос:
вам не нужно перекодировать, чтобы изменить fps. кода не могу remux с новыми метками времени без к сожалению, повторное кодирование, но это ограничение дизайна ffmpeg. Видео-кодирование с потерями и очень медленно, так что не делайте этого.
Try mkvmerge --default-duration 0:24000/1001fps --fix-bitstream-timing-information 0 in.mkv -o out.mkv
изменить видео FPS. Это не коснется синхронизации звука, поэтому вы получите a/v рассинхронизацию. 0:
выбор трека 0
в вашем входном файле, который, как я думаю, обычно видео.
вам нужно перекодировать аудио после обработки с шагом-сохранение фильтра ускорение. Я обычно делаю это только во время воспроизведения с МПВ / mplayer'а scaletempo
фильтр (mpv вставляет его автоматически). ffmpeg имеет atempo
"фильтр", который, вероятно, делает трюк.
так mux замедленное аудио с 24/1.001 кадров в секунду видео, и вы должны иметь рабочий файл снова.
Я действительно не тестировал все это, потому что обычно вам никогда не нужно это делать. Просто скажите своему игроку, для какой скорости предназначены подводные лодки. И вы даже можете использовать mpv --speed 25025/24000 -subfps 25 myfile.mkv
для воспроизведения на лету видео со скоростью 25 кадров в секунду, если у вас есть 24/1.001 fps копия британское шоу, которое первоначально было 25 кадров в секунду, и вы хотите воспроизвести его на оригинальной скорости с постоянным ускорением звука.