Подтвердить что ты не робот

Использование ffmpeg для кодирования видео в формате кодека H264

У меня есть видеофайл *.mp4 (видеокодек MPEG4), и я пытаюсь преобразовать его в формат видеокодека H264 (формат raw h.264), используя ffmpeg для Linux (версия - версия FFmpeg SVN-r0.5.1 -4: 0.5.1-1ubuntu1, Copyright (c) 2000-2009 Fabrice Bellard,) используя командную строку, как показано ниже,

ffmpeg -i input .mp4 output.h264 

но я получаю сообщение об ошибке -

Unsupported codec for output stream #0.0

Затем, когда я пробую эту опцию:

ffmpeg -i input .mp4 -formats h264 output.h264 

он по-прежнему не работает, и дает -

Seems stream 0 codec frame rate differs from container frame rate: 59.94 (5994/100) -> 29.97 (30000/1001)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Rapture.mp4':
  Duration: 00:02:06.44, start: 0.000000, bitrate: 26574 kb/s
    Stream #0.0(eng): Video: h264, yuv420p, 1920x1080, 29.97 tbr, 29.97 tbn, 59.94 tbc
    Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16

И затем он распечатывает справку о форматах, которые мы получаем, когда делаем ffmpeg -formats

Когда я проверил справку, ffmpeg -formats, я вижу ниже информацию о формате файла H264 и кодеке:

File format : 

DE h264            raw H.264 video format

Codecs:

D V D  h264         H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10

Мои вопросы:

  • Как конвертировать видео в видео в формате H264 (исходный формат видео H264)

  • Когда я делаю ffmpeg -formats, я вижу много сокращений для поддерживаемых кодеков, я вижу много аббревиатур перед именем/типом кодека, например, - DVDSEA, для чего они стоят?

  • Как использовать параметры ffmpeg -vcodec и -formats?

4b9b3361

Ответ 1

Я полагаю, что у вас есть libx264 установлен и настроен с помощью ffmpeg для преобразования видео в h264... Затем вы можете попробовать с помощью -vcodec libx264... Параметр -format предназначен для отображения доступных форматов, этот это не вариант конверсии, я думаю...

Ответ 2

Это параметры, которые я использовал для преобразования в формат H.264/AAC.mp4 для воспроизведения html5 (я думаю, что это может помочь другим парням с этой проблемой в некотором роде):

ffmpeg -i input.flv -vcodec mpeg4 -acodec aac output.mp4

Ответ 3

"C:\Program Files (x86)\ffmpegX86shared\bin\ffmpeg.exe" -y -i "C:\testfile.ts" -an -vcodec libx264 -g 75 -keyint_min 12 -vb 4000k -vprofile high -level 40 -s 1920x1080 -y -threads 0 -r 25 "C:\testfile.h264"

Выше работали для меня на Windows-машине, используя совместную сборку FFmpeg Win32 от Kyle Schwarz. Сборка была составлена: 22 февраля 2013 года, по: 01:09:53

Обратите внимание, что -an определяет, что звук должен быть пропущен.

Ответ 4

Я считаю, что на данный момент вышеупомянутые ответы устарели (или, по крайней мере, неясны), так что здесь мои малые идут на это. Я попытался скомпилировать ffmpeg с параметром --enable-encoders=libx264, и он не даст никаких ошибок, но он ничего не даст (я не могу найти, где нашел это предложение).

В любом случае, шаг за шагом, сначала вы должны сами компилировать libx264, поскольку версия репозитория устарела:

  wget ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
  tar --bzip2 -xvf last_x264.tar.bz2
  cd x264-snapshot-XXXXXXXX-XXXX/
  ./configure
  make
  sudo make install

И затем получите и скомпилируйте ffmpeg с включенным libx264. Я использую последнюю версию, которая является "Счастье":

wget http://ffmpeg.org/releases/ffmpeg-0.11.2.tar.bz2
tar --bzip2 -xvf ffmpeg-0.11.2.tar.bz2
cd ffmpeg-0.11.2/
./configure --enable-libx264 --enable-gpl
make
sudo install

Теперь, наконец, у вас есть кодек libx264 для кодирования, чтобы проверить его, вы можете запустить

ffmpeg -codecs | grep h264

и вы увидите, что параметры, которые у вас были, - это первый декодирование D, а первый E означает кодирование

Ответ 5

У меня есть система Centos 5, на которую я не мог работать. Поэтому я построил новую систему Fedora 17 (фактически VM в VMware) и выполнил шаги сайта ffmpeg, чтобы построить последнюю и самую лучшую ffmpeg,

Я взял несколько ярлыков - я пропустил все команды стирания yum, добавил freshrpms в соответствии с их инструкциями:

wget http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/9/freshrpms-release/freshrpms-release-1.1-1.fc.noarch.rpm
rpm -ivh rpmfusion-free-release-stable.noarch.rpm

Затем я загрузил все, что было уже доступно:

yum install lame libogg libtheora libvorbis lame-devel libtheora-devel

Впоследствии, я только построил следующее с нуля: libvpx vo-aacenc-0.1.2 x264 yasm-1.2.0 ffmpeg

Затем эта команда закодирована без проблем (звук уже был в AAC, поэтому я не перекодировал его):

ffmpeg -i input.mov -c:v libx264 -preset slow -crf 22 -c:a copy output.mp4

Результат выглядит так же хорошо, как оригинал для меня, и составляет около 1/4 от размера!