FFMPEG: кодирование WEBM с помощью быстрого поиска и копирования приводит к неправильной длине видео - PullRequest
0 голосов
/ 01 февраля 2020

Я пытаюсь преобразовать сцену из файла MKV с мягкой подложкой в ​​файл WEBM с жесткой подложкой с двумя проходами. Видео кодируется нормально, но файл показывает неправильную длину при открытии на медиаплеере (он показывает, как будто я закодировал исходный файл от начальной точки до конца).

Это Используемая мной команда:

set timestamp=-ss 12:59.069 -to 16:14.277

ffmpeg -y %timestamp% -copyts -i source.mkv -shortest -c:v libvpx-vp9 -pass 1 -b:v 0 -crf 33 -threads 8 -speed 4 -tile-columns 6 -frame-parallel 1 -an -sn -vf scale=-1:720,subtitles=source.mkv -f webm NUL
ffmpeg -y %timestamp% -copyts -i source.mkv -shortest -c:v libvpx-vp9 -pass 2 -b:v 0 -crf 33 -threads 8 -speed 2 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -c:a libopus -b:a 64k -sn -vf scale=-1:720,subtitles=source.mkv -f webm out.webm

При открытии видео в формате MP C -BE видео воспроизводится регулярно до точки, показанной на https://i.stack.imgur.com/6bRwc.png (где сцена, которую я хотел вырезать, заканчивается), затем он просто пропускает до конца файла, и эта неправильная длина вызывает у меня всевозможные проблемы, когда я пытаюсь использовать закодированное видео.

1 Ответ

0 голосов
/ 01 февраля 2020

Очевидно, вашему плееру не нравится начальная временная метка, отличная от нуля (по крайней мере, в WebM).

Итак, сбросьте временные метки перед записью (я предполагаю, что вы используете copyts для выравнивания фильтра субтитров ).

В проходе 2,

ffmpeg -y %timestamp% -copyts -i source.mkv -shortest -c:v libvpx-vp9 -pass 2 -b:v 0 -crf 33 -threads 8 -speed 2 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -c:a libopus -b:a 64k -sn -vf scale=-1:720,subtitles=source.mkv -output_ts_offset -12:59.069 -f webm out.web

, где значение смещения ts является отрицательным от значения ss.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...