モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

UbuntuでRed5用にフラッシュ動画にエンコードする

動画をストリーム配信するためのツール・サービス - モーグルとカバとパウダーの日記 の関係で、Red5用にフラッシュ動画をエンコードする方法を調べた。


最初、Windows 上で

Free Video to Flash Converter 1.1 - Convert video files to Flash Video (FLV, SWF), AVI to FLV, AVI to YouTube FLV converter - Jacek Pazera
http://www.pazera-software.com/products/video-to-flash-converter/

を使ってフラッシュ動画(flv)を作って置いてみたのだけど、うまく表示されなかった。
内部でffmpeg使ってflvを作っているようなのだが、パラメータの与え方がRed5のストリーミングには適してない?のかもしれない。


Red5のExamples and Tutorialsに、アップロード時にffmpeg利用してflv化するサンプルがあったので、そちらを参考にしてみた。
FFMpeg with Red5

ffmpeg呼び出してエンコードしている部分のソースを見ると、こんな感じでいけるみたい。

ffmpeg -i input.mpg - acodec mp3 -ab 128 -f flv -s 320x240 -ar 44100 -aspect 4:3 -pass 1 -b 400 -r 15 -y output.flv -vstats

ちなみに「input.mpg」が元の動画ファイルで「output.flv」がフラッシュ動画化したファイル名。


エンコードは、Red5を動かしているサーバ上で行うようにしたいので、Ubuntu 8.04(Hardy)上でffmpegを動く環境にする必要があった。
ffmpeg自体はaptやSynapticで入れることができるのだが、特許の関係で、それで入れることができるffmpegはエンコーダがほとんど入っていないため、今回の用途には使えなかった。
調べてみると、Medibuntu :: Multimedia, Entertainment & Distractions In Ubuntuで配布されているものは、エンコーダが入ったものになっているとのこと。

HardyでDVDを再生する - kayakaya日記(2008-05-06)
を参考にして、Medibuntuのffmpegをインストールする。

コンソールから下記コマンドを実行する。

sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list
wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -

これでMedibuntuのリポジトリが追加されるので、aptなりSynapticなりでffmpegをインストールすればよい。


その後、先のffmpegのコマンドでエンコードし「/usr/lib/red5/webapps/oflaDemo/streams/」の下にコピーしてやると、Red5のフラッシュ動画デモ(http://localhost:5080/demos/ofla_demo.html)でリストに出てきて、ストリーミング再生できるようになる。