2008-08-09 18 views
3

ウェブ上に表示するオーディオとビデオをトランスコードする最良の方法は何ですか?オーディオとビデオのトランスコード

私はプログラムでそれを行う必要があります。私はYouTubeやGoogle Videoのようなものをやりたいと思っています。ユーザーは好みのフォーマットをアップロードでき、flv、mp3、mp4にエンコードできます。私はサーバーでそれをやることができましたが、むしろEC2インスタンスまたはWebサービスを使用したいと思います。私たちはWindows 2008サーバーを持っています。

答えて

2

(例えば透かしを追加)心の中で他の目標を持っていた...

2

ffmpegは、libavcodecを使用するコマンドラインツールです。ほとんどのビデオフォーマットの変換を処理できます。それがあなたのニーズに合っているなら、そのライセンスはLPGLです。プログラマチックに別のプロセスとして利用することもできますし、ハードコアを感じている場合は、libavcodecライブラリを使用して直接エンコードすることもできます。

1

ffmpegの特定の部分がGPLの下にあることに注意してください。私は、libpostprocモジュールが正しいと思います。これがトランスコーディングで使用されています。このライセンスがあなたの行っていることと互換性があることを確認してください。

+0

実際には、ffmpegのGPL部分はオプションで、./configureを--enable-gplオプションで実行する場合にのみ含まれます。 – mouviciel

+0

@mouviciel、そうです:FFMPEGのほとんどはLGPLの下にありますが、GPLにはいくつかのコンポーネントがあります。質問は、私がGPLを必要とするだろうと信じている分野の一つを参照しています。 –

+1

自分のサーバーでGPLが動作していれば、GPLは完全に受け入れられます。問題となるのはAffero GPLだけです。 – TRiG

2

あなたは(おそらくウェブに最適です)のFLVにトランスコードする場合、私はこの行を使用します。

ffmpeg -hq -y -i $directory/$file -r 20 -s 300x200 -deinterlace -ar 22050 $directory/$file.flv 1>/dev/null 2>/dev/null 

それは、もちろん:-)のLinux環境下で、非常によく動作します。

3

種類は、どれくらいの費用を費やしたいかによって決まります。これがまったく新しいものではない場合は、ffmpegルートに進みますが、品質を評価するために、プロフェッショナルなエンコーディングツールを自動化することができます(Rhozet、Inlet、Digital Rapidsは3つのオプション)。

1

あなたがGPLなものを探している場合:

についていじくるオーディオの場合、sox.非常に強力をしてみてください!それはたくさんあります!これは、ほとんどのLinuxディストリビューションに含まれています。

有名なmp3のためのLAME [オーディオ]のエンコードもあります。

動画については、mencoderが印象的です!これはmplayerパッケージの一部です。ほとんどのビデオ形式の変換を処理します。私が今までに夢見た以上のものが存在しました。 (ドキュメントについては、Chapter 9. Basic usage of MEncoderChapter 10. Encoding with MEncoderを参照してください。)

それが作成できるかについて多少制限されます。しかし、それはMPEG4MPEG2DVD-MPEGFLV、および他の多くをサポートしています。 (私はflv自分自身を試していないが、Googleは他の人々がそれを使用していることを示している。)

私はJPEG +音のようなものを行っている - > MPEG4ムービー:DVD互換のMPEGへ

nice +20 $MENCODER mf://${JPEGFILE} -mf w=720:h=480:fps=1/${SOUNDLENGTH}:type=jpeg -audiofile ${SOUNDFILE} -ovc lavc -oac lavc -lavcopts vcodec=mpeg4 -ofps 30000/1001 -o ${MENU_MPG} 

またはトランスコード任意にフォーマットされたビデオ:

nice +20 $MENCODER -edl ${EDL} -ovc lavc -oac lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=${VBITRATE}:keyint=18:acodec=ac3:abitrate=192:aspect=4/3:trell:mbd=2:dia=4:cmp=3:precmp=3:ildctcmp=3:subcmp=3:mbcmp=3:cbp:mv0:dc=10 -of mpeg -mpegopts format=dvd -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 -ofps 30000/1001 -o ./${INFILE}.reformatted ${FILEPATH} 

-edl/-edlout [編集デシジョンリスト]は、私が望むビデオセクションだけを切り抜くために使用されます。

$ {VBITRATE}は、通常、DVD-MPEGビデオの場合5000です。しかし、あなたがそれを少し流暢にすると、あなたはDVDに多くのビデオを絞ることができます。あなたが人工物を許容できると仮定します。

scale = 720:480、harddup - 私のDVDプレイヤーには間違いがありますが、私の"el cheapo"でサウンドビデオの非同期問題を解決するのは難しいです。

(4x3のビデオを処理しませんワイドスクリーンプレーヤーで再生するために、私は"アスペクト= 9分の16"のような残虐行為を使用しました、「-vf規模= 560:480、= 720拡張:480 "harddup"しかし、一般的に黒いバーを符号化するビットを無駄にしたくないのです。)

これは、mencoderの最も効率的なオプションではありません。実行するには時間がかかることがあります。しかし、私は強くお勧めしますffmpegのを