ffmpeg конвертировать один PNG в DNxHD - PullRequest
1 голос
/ 15 марта 2019

Я пытаюсь создать файл DNxHD из одного файла PNG. Вывод должен быть "24000/1001" кадров в секунду, 1920x1080, с использованием кодека dnxhd. Каждый кадр должен быть одинаковым. Выходной поток должен иметь длину 20 секунд.

У меня есть решение, которое использует filter_complex для зацикливания PNG для каждого кадра, однако это приводит к очень большим файлам. Учитывая, что я буду объединять, возможно, несколько сотен файлов DNxHD в один файл AAF, размер выходного файла слишком велик.

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

ffmpeg -i INFILE.png -y -nostdin -an -vcodec dnxhd -pix_fmt yuv422p -vb 36M -framerate 24000/1001 -filter_complex loop=479:1:0 OUFILE.dnxhd

Я не очень хорошо знаю ffmpeg, эта команда была создана путем копирования частей команд, которые я нашел в Интернете.

1 Ответ

0 голосов
/ 15 марта 2019

DNxHD является кодером с внутренним кодированием, т.е. каждый кадр кодируется (и, следовательно, декодируется) независимо друг от друга.Таким образом, размер не может быть уменьшен без изменения параметров управления скоростью, таких как битрейт.

Кстати, ваша команда может быть упрощена до

ffmpeg -framerate 24000/1001 -loop 1 -t 20 -i IN.png -c:v dnxhd -pix_fmt yuv422p -b:v 36M OUT.dnxhd

частота кадров не имеетлюбая актуальность при сохранении в сырой поток (.dnxhd);только при сохранении в контейнеры типа .mov.Технически возможно создать файл MOV только с двумя кадрами, со вторым кадром, имеющим метку времени на 20 секунд вперед, но не уверен, что ваш рабочий процесс будет обрабатывать такие файлы по желанию.

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