На Ubuntu 10.04 я пытаюсь кодировать необработанное видео (формат YUV) в видео, закодированное в H.264, используя следующие команды ffmpeg:
ffmpeg -i input.mp4 output.h264
но я получаю сообщение об ошибке
Неподдерживаемый кодек для выходного потока # 0.0
Тогда, когда я попробую этот вариант:
ffmpeg -i input.mp4 -formats h264 output.h264
это все еще не кодирует.
Теперь я понял, что ffmpeg использует libx264 для кодирования в формат H.264. Теперь у меня есть пакет x264 - быстрый кодер H.264, установленный в этой Ubuntu.
Мои вопросы:
- Есть ли какая-то связь между этой libx264, которая нужна ffmpeg, и программой x264?
- Как мне установить libx264 и заставить ffmpeg использовать это, чтобы позволить мне кодировать видео в формат H.264?
Ответы:
Прежде всего, те команды, которые вы используете, выглядят синтаксически некорректно. Чтобы ffmpeg использовал x264, вам нужно указать
-c:v libx264
аргумент.Теперь, если у вас есть необработанный файл YUV, вы должны указать ffmpeg, какой формат пикселя, какой размер и т. Д. Используется:
Измените их в соответствии со спецификациями вашего файла YUV. Просмотрите
ffmpeg -pix_fmts
список поддерживаемых форматов пикселей. fourcc.org также хороший ресурс по этому вопросу.Если вы просто хотите получить необработанный поток битов H.264 в
.264
файле:источник
-vcodec
говорит ему, какой кодек использовать.man ffmpeg
поможет вам узнать больше.источник