tmytのらくがき

個人の日記レベルです

ffmpegでjustin.tvに配信するメモ

いんたーねっとの海を漂ってたらそれっぽい情報が集まったのでやってみたらうまくいったのでめもめも。
最近のffmpegだとRTMPがサポートされてるのかな?よくわからないので詳しい人教えてください。
僕がやったのはxuggle(http://www.xuggle.com/xuggler/downloads/)というJavaからffmpeg叩くライブラリをダウンロードしてそのなかのffmpegだけビルドして使いました。
./captive/ffmpeg/ 以下にffmpegソースコードがまるまる入ってるのでよしなにconfigure してビルドします。ビルドオプションはお好みで調整してください。僕は以下のようにやりました。

./configure  --enable-pthreads --enable-x11grab --enable-gray --enable-small --enable-runtime-cpudetect --enable-hardcoded-tables --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libmp3lame  --enable-libvorbis --enable-libx264 --enable-libxvid --enable-gpl --enable-nonfree --enable-version3 --prefix=/usr --enable-shared

あとは make && make install でもしてインストールします。

でここまでがRTMPに対応したffmpegをインストールする方法。で次にjustin.tvに投げる方法。
まずjustin.tvにログインして、FMEで配信するXMLがダウンロードできるページ(http://ja.justin.tv/broadcast/advanced)へいきます。
FME用のXMLをお好きなのをダウンロードします。ワイドでも4:3でもなんでもいいとおもいますよ。
ダウンロードしたXMLを開いて次のところをメモしておきます。streamのところはてきとーにマスクしておきました。

  <output>
    <rtmp>
      <url>rtmp://live.justin.tv/app</url>
      <backup_url></backup_url>
      <stream>live_xxxxxx_xxxxxx</stream>
    </rtmp>
  </output>

これで配信に必要な情報はそろったのであとはffmpegでてきとーに配信します。
コマンドラインから次のような感じでrtmpに動画を投げつけます。

ffmpeg -i /path/to/movie.mpg -re -acodec libfaac -ar 44100 -vcodec libx264 -vpre default  -f flv -aspect 16:9 -s 720x480 -threads 4 -async 2 rtmp://live.justin.tv/app/live_xxxxxx_xxxxxx

アスペクト比とかはお好みでどうぞ。それからlive_xxxxxx_xxxxxxのところは各自のXMLファイルに書いてあった文字列を指定してください。

こんなかんじでffmpegからjustin.tvに配信できました