web-dev-qa-db-ja.com

ffmpegでビデオをMP4(H.264 / AAC)に変換する

間違えなければ、Safariは現在HTML5用にエンコードされたMP4(H.264/AAC)ビデオを必要とします<video>要素。

そこで、ffmpegを使用してビデオをこの形式に変換しようとしました。ただし、シェルコマンドffmpeg -i video.flv video.mp4、返されるエラーは次のとおりです。

ストリーム0コーデックフレームレートがコンテナフレームレートと異なるようです:2000.00(2000/1)-> 29.92(359/12)入力#0、flv、「video.flv」から:
期間:00:05:01.20、開始:0.000000、ビットレート:66 kb/sストリーム#0.0:ビデオ:h264、yuv420p、320x240 [PAR 1:1 DAR 4:3]、66 kb/s、 29.92 tbr、1k tbn、2k tbcストリーム#0.1:オーディオ:aac、22050 Hz、ステレオ、s16出力#0、mp4、「video.mp4」:ストリーム#0.0:ビデオ:mpeg4、yuv420p、320x240 [PAR 1: 1 DAR 4:3]、q = 2-31、200 kb/s、90k tbn、29.92 tbcストリーム#0.1:オーディオ:0x0000、22050 Hz、ステレオ、s16、64 kb/sストリームマッピング:ストリーム#0.0-> #0.0
ストリーム#0.1->#0.1出力ストリーム#0.1でサポートされていないコーデック

AACコーデックが必要ですが、ubuntuの初心者であり、この問題を修正する方法は今は本当にありません。 Ubuntu 9.10 Karmik Koala(AMD64用)を使用しています。

どうもありがとうございました。 :)

16
user176455

http://handbrake.fr は、iPod、PS3などのmp4用の便利なプリセットが多数ある素敵な高レベルツールです。Linux、Windows、およびMac OS XのGUIとCLIの両方のインターフェイス。

静的にリンクされた単一のファットバイナリとして独自の依存関係があるため、すべてのx264/aacコーデックが含まれています。

  $ HandBrakeCLI -Z Universal -i myinputfile.mov -o myoutputfile.mp4

利用可能なすべてのプリセットを一覧表示するには:

  $ HandBrakeCLI -z
16
ogrisel

ソフトウェアの特許により、Debian/UbuntuはffmpegのH.264およびAACエンコーダーを無効にしました。 /usr/share/doc/ffmpeg/README.Debian.gzをご覧ください。

X264、mplayer/mencoder、およびNeroのAACエンコーダーをインストールしてください。 (または、すべてのフリーソフトウェアを使用する場合で、音質をあまり気にしない場合は、sudo aptitude install faacを使用します。)

Mencoderのmedibuntuパッケージにx264 vidエンコーディングが含まれているかどうかは覚えていません。gitx264とsvn mplayerのソースから独自のものを作成しているからです。 (x264は非常に積極的に開発されており、品質と速度の大幅な改善が頻繁に追加されています。) http://git.videolan.org/?p=x264.git;a=summary

x264もパッケージ化されていますが、 weightp with recent bugfixes を含めるのに十分な最新のものであること、およびさらに最近の速度改善を確認する必要があります...

または、flvの作成元である高品質のソースからではなく、.flvからの変換を既に希望している場合は、おそらく最新バージョンのx264を見つけることができます。

14
Peter Cordes

H.264ビデオとAACオーディオを(すでに)含んでいる(かなりまれな).flvファイルを変換しようとしています。

コンソールの出力をFFmpegとしてフォーマットすると、これらの詳細が明らかになります。

 Input #0, flv, from 'video.flv':
   Duration: 00:05:01.20, start: 0.000000, bitrate: 66 kb/s
    Stream #0.0: Video: h264, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 66 kb/s, 29.92 tbr, 1k tbn, 2k tbc 
    Stream #0.1: Audio: aac, 22050 Hz, stereo, s16

元のflvは、H.264ビデオとAACオーディオを含む.mp4ファイルに変換されます(元の.flvと同様)。

Output #0, mp4, to 'video.mp4': 
    Stream #0.0: Video: mpeg4, yuv420p, 320x240 [PAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 90k tbn, 29.92 tbc 
    Stream #0.1: Audio: 0x0000, 22050 Hz, stereo, s16, 64 kb/s

.flvのオーディオおよびビデオデータは、.mp4に必要なフォーマット/コーデックに既にあるため、すべてを新しい.mp4コンテナーにコピーできます。 このプロセスは、すべてをデコードおよび再エンコードするよりも非常に高速です:

ffmpeg -i video.flv -vcodec copy -acodec copy video.mp4

またはもっと簡単に:

ffmpeg -i video.flv -codec copy video.mp4

あなたが得ている本当のエラーは次のとおりです。

出力ストリーム#0.1でサポートされていないコーデック

これは、FFmpegがオーディオ(ストリーム#0.1)をAACに変換できないことを意味します。

次の方法でエラーをスキップできます:

  • 既にAACエンコードされているため、オーディオデータをコピーします(上記のコピーコマンドを使用)

または、次の方法でsolveエラーを解決できます。

  • aACデコード/エンコードをサポートするFFmpegビルドを使用します。 FFmpegは現在4つのAACライブラリをサポートしています( FFmpeg and AAC Encoding Guide を参照)。

詳細については、 FFmpeg The Ultimate Guideを使用したFLVからMP4への変換 もお読みください。

4
Octavian Naicu

x264をサポートするように(ソースから)ffmpegを再コンパイルする必要があります 。このページの指示に従うと、あらゆる種類の変換を実行できます。

3
user1297157

最近、厄介なWMVを編集用にFinal Cut Pro Xに変換することでこの問題が発生しました。フロープレーヤーはそれを行うことができますが、ウォーターマークが残るため、何かがうまくいくまでffmpegを少しいじりました。

最初にffmpegをインストールする-私はbrew install ffmpeg brewを最初にインストールする必要があることは明らかです。

次に、次の内容の簡単なコマンドラインスクリプトを作成しました。入力/出力ファイルの代わりに$ 1を使用するか、シェルスクリプトファイルを作成するだけです... vi convert.sh貼り付け。

echo "Pass one" ffmpeg -y -i "$1" -c:v libx264 -preset medium -b:v 1555k -pass 1 -c:a libfaac -b:a 256k -f mp4 /dev/null && echo "Pass two" ffmpeg -i "$1" -c:v libx264 -preset medium -b:v 1555k -pass 2 -c:a libfaac -b:a 256k "$1.mp4"

次に、ビデオを変換します... sh convert.sh myvideofile.wmvすべてがうまくいけば、myvideofile.wmv.mp4という新しいファイルが表示されます。

それがあなたのために働くことを願っています。

1
user1808087

Motumedia PPA をaptソースに追加して、ffmpegパッケージを更新することもできます。

1
axel_c

AACエンコーダーでffmpegをコンパイルする必要があります。 AudioCoding で見つけることができます。

0
mouviciel

これを試してください::Libav in Linux

Installation: run command  
               Sudo apt-get install libav-tools 

Video conversion command::Go to folder contains the video and run in terminal
               avconv -i oldvideo.flv -ar 22050 convertedvideo.mp4
0
Vishal