У меня есть видео со скоростью 5 кадров в секунду с keyint 120 и длиной 2,5 часа, которое я хочу ускорить в 6 раз, делая его fps = 30
Я сделал это с помощью этой команды, которую я нашел где-то на этом сайте
ffmpeg -i "...local_Record.mkv" -filter:v "fps=30, setpts=PTS/6" "...output1.mkv"
Вывод получился запаздывающим, его воспроизведение в течение 3-5 секунд, а затем зависает. Если я прыгаю назад или вперед, он размораживается еще 3-5 секунд, а затем снова останавливается. После загрузки его на YouTube я обнаружил, что он не отстает, однако YouTube показывает его длину как оригинальные 2,5 часа. Это также показывает, что его процент обработки составляет 95% в течение 12+ часов (это означает, что это видео на 100% прослушивается и не будет обрабатываться, поскольку его продолжительность составляет 90 МБ и 20 минут, а YouTube может обрабатывать видео, которые 5 ГБ / час. долго через 10 минут)
Затем я попытался перекодировать видео, полученное с помощью этой команды.
ffmpeg -i "...mkv" -c:v libx264 -crf 18 -preset veryfast -max_muxing_queue_size 1024 output.mp4
Это дало мне результат 133 МБ, который также отображается на YouTube как 2,5 часа и никогда не заканчивает обработку (может быть воспроизведен, но невидим, в диспетчере видео оба видео говорят, что он обработан на 95%)
Как сделать это правильно, чтобы видео не отставало, а YouTube мог правильно определить его длину?
редактировать - я обнаружил, в чем была проблема - в контейнере был какой-то звук, хотя вообще не должно было быть никакого звука (я записал его с помощью obs без включенного звука). Поэтому после того, как я удалил этот звук с помощью mmg, mpc открыл его правильно, показав, что он длился 26 минут, а YouTube успешно обработал его за пару минут.