Я перенаправил вывод во время преобразования ffmpeg в текстовые файлы и заметил, что после нескольких строк он показывает прогресс. Например:

frame= 867 fps= 18 q=29.0 q=31.0 size= 17846kB time=00:00:28.96 bitrate=5047.6kbits/s
frame= 879 fps= 18 q=29.0 q=31.0 size= 18012kB time=00:00:29.36 bitrate=5025.3kbits/s
frame= 890 fps= 18 q=29.0 q=31.0 size= 18175kB time=00:00:29.72 bitrate=5008.0kbits/s
frame= 900 fps= 18 q=29.0 q=31.0 size= 18429kB time=00:00:30.06 bitrate=5021.8kbits/s
frame= 901 fps= 17 q=-1.0 Lq=31.0 size= 20219kB time=00:00:30.14 bitrate=5494.6kbits/s

Каждый раз он выводит строку этого типа:

video:24803kB audio:945kB subtitle:0 global headers:0kB muxing overhead 21.473556%

Это безопасный ключ, чтобы узнать, успешно ли завершено преобразование? Или вышеприведенная строка также может появиться в случае неудачного преобразования?

1 ответ1

0

Да, эта строка отображается только тогда, когда кодирование видео и аудио закончено и битовые потоки объединены ("мультиплексированы") в формат контейнера.

Конечно, во время преобразования могли быть незначительные ошибки, такие как неправильные временные метки, пропущенные пакеты в случае входного потока RTP и т.д. Но в целом можно с уверенностью сказать, что преобразование остановилось, когда появилась эта строка.

Вы также можете проверить

frame=   50 fps=0.0 q=-1.0 Lsize=      12kB time=00:00:02.00 bitrate=  50.9kbits/s dup=1 drop=0

строка для количества кадров или отметки времени, так как вы, вероятно, будете знать, сколько кадров или сколько времени должно иметь ваше выходное видео.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .