Использование ffmpeg для кодирования необработанного видео в формат H.264

10

На 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?
Золотая середина
источник
Как насчет вашего предыдущего вопроса, разве это не решено? Использование ffmpeg для кодирования видео в формат кодека H264
slhck
@slhck - Спасибо, но когда я использовал: - ffmpeg -s 352x240 -i 352x240_420.yuv -vcodec libx264 out.mp4. Выдает ошибку - «Неизвестный кодировщик« libx264 »». Любые дальнейшие указатели. Является ли libx264 такой же, как библиотека x264 или чем-то другим.
goldenmean
Относительно компиляции ffmpeg и x264 в Linux смотрите здесь: ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide
slhck

Ответы:

11

Прежде всего, те команды, которые вы используете, выглядят синтаксически некорректно. Чтобы 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
slhck
источник
-1

ffmpeg -f rawvideo -pix_fmt yuv420p -s: v 1920x1080 -r 23,976 -i raw_i420_1920_1080 -vcodec libx264 -f вывод rawvideo.264

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

Вишванат Патил
источник