9

В 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.

Мои вопросы:

  1. Есть ли какая-то связь между этой libx264, которая нужна ffmpeg, и программой x264?
  2. Как мне установить libx264 и заставить ffmpeg использовать это, чтобы позволить мне кодировать видео в формат H.264?

2 ответа2

10

Прежде всего, те команды, которые вы используете, выглядят синтаксически некорректно. Чтобы ffmpeg использовал x264, вам необходимо указать аргумент -c:v libx264 .

Теперь, если у вас есть необработанный файл YUV, вы должны указать ffmpeg, какой формат пикселя, какой размер и т.д. Используется:

ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 25 -i input.yuv \
-c:v libx264 output.mp4

Измените их в соответствии со спецификациями вашего файла YUV. Посмотрите на ffmpeg -pix_fmts для списка поддерживаемых форматов пикселей. fourcc.org также является хорошим источником по этому вопросу.

Если вам нужен только битовый поток H.264 в файле .264 :

ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 25 -i input.yuv \
-c:v libx264 -f rawvideo output.264
-1

ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 23,976 -i raw_i420_1920_1080 -vcodec libx264 -f выходной видеосигнал.264

-vcodec сообщает, какой кодек использовать. man ffmpeg поможет вам узнать больше.

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