ちょっと実業務で動画を扱う必要が出てきたので、今まで再生しかした事が無かった動画の周辺事情と、ffmpegを使ったコンバートの方法を調べてみた。
コーデックってのは、圧縮するコーダーと、再生するデコーダーのセットの事だな。
よく見るAVIとかMOVってのは、あくまでコンテナファイルの拡張子の事で、中のビデオファイルと音声ファイルは、どんな形式が入っているのかは、開いてみるまでわからない。コーデックの確認用ソフトもある。コンテナフォーマットによって、モバイルに適しているとか、ストリーミングに適しているとかといった使い分けが出でくるのかな。
音声ファイルは、主に人の声を対象にしたものと、音楽を対象にしたものがあって、人の声だけを対象にした方が圧縮が効くみたい。ただ、あまり考えずにmp3だったり、最近だとAACやHE-AACあたりがいいのかな。
で実際に、変換かけるとしたら、3GPP/3GPP2からFlashビデオという流れが一番多いんじゃないかと思う。今のご時世で一番普及しているデジタルビデオは携帯だからね。細かい事は覚えなくても、ファイルフォーマットと、どのガジェットはどのフォーマットを吐くかさえ押さえておけばいいと思う。
で、実際にどうやって変換するのかというと、ffmpegが現実的かな。入力元のコンテナフォーマット、ビデオコーデック、音声コーデックや各種パラメーターは自動認識してくれて、指定したフォーマットで出力したり、リサイズや指定位置から指定時間だけ切り出したり、各種パラメーターの調整が出来たりする。コマンドラインから使うのが前提だけど、各種GUIフロントエンドも出そろってきている。
実際にauのケータイで撮った動画を、microSDからPCに取り込んだ2GPP2ファイルと、ケータイ内で3GPPに変換してメール添付してPCに取り込んだものを、ffmpegでflvに変換してみた。それぞれ、
ffmpeg -i ~/MA0_0001.3GP -sameq MA0_0001.flv
と
ffmpeg -i ~/MA0_0002.3G2 -sameq MA0_0002.flv
みたいな感じだけど、簡単に変換できたよ。
あとは、Rubyなどのスクリプトから、このコマンドを呼んで、エラー処理とタイムアウト処理を書けば、サーバで扱う事も出来るかな。
flexと連動して、コメントを表のレイヤーで流せば、ニコニコ動画のようなものも作れるよね。
0 件のコメント:
コメントを投稿