web-dev-qa-db-ja.com

ビデオをH264コーデック形式にエンコードするffmpegの使用

* .mp4ビデオファイル(MPEG4ビデオコーデック)があり、Linuxのffmpeg(バージョン-FFmpegバージョンSVN-r0.5.1-4: 0.5.1-1ubuntu1、著作権(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

私の質問:

  1. ビデオをH264エンコードビデオ(生のH264ビデオ形式)に変換する方法

  2. 私がする時 ffmpeg -formats、サポートされているコーデックの多くの頭字語が表示されます。コーデック名/タイプの前に多くの頭字語が表示されます-D V D S E A、何の略ですか?

  3. Ffmpegオプションの使用方法-vcodecおよび-formats

34
goldenmean

libx264をインストールしてffmpegで構成し、ビデオをh264に変換していると思います...その後、-vcodec libx264...で試すことができます。-formatオプションは利用可能な形式を表示するためのもので、これは私が思う変換オプションではありません...

30
Muhammad Razib

これらのオプションを使用して、HTML5再生用のH.264/AAC .mp4形式に変換しました(何らかの方法でこの問題を抱えている他の人に役立つと思います)。

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

更新

@LordNeckbeardが述べたように、前の行はMPEG-4 Part 2(なんとかして機能した2012年に戻ったが、その理由を覚えていない/理解できない)。使用 libx264H.264/AACで適切なビデオを生成するエンコーダ。出力ファイルをテストするには、ブラウザウィンドウにドラッグするだけで、正常に再生されるはずです。

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

28
Alex K

私は今までのところ上記の答えは時代遅れである(または少なくとも不明瞭である)と信じているので、ここに私のちょっとした取り組みがあります。オプション--enable-encoders=libx264を使用してffmpegをコンパイルしようとしましたが、エラーは発生しませんが、何も有効になりません(その提案を見つけた場所が見つからないようです)。

とにかく、ステップバイステップで、リポジトリのバージョンが古いため、まず自分で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

そして、libx264を有効にしてffmpegを取得してコンパイルします。私は「幸福」である最新リリースを使用しています:

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はエンコードを意味します。

3
JunCTionS
"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"

上記は、Kyle SchwarzによるFFmpeg Win32共有ビルドを使用するWindowsマシンで機能しました。ビルドは2013年2月22日、01:09:53にコンパイルされました。

-anはオーディオをスキップすることを定義することに注意してください。

3
Shjiemon