2011/09/08

ffmpeg の問題の巻

さて、ffmpeg を使って Haiku で直接再生するためには、beosaudio がサポートされている必要があります。該当のものを探してみたところ、0.4.6 あたりからのようです (あまり新しくなると、API が変わってサポートされなくなってるし、古いとサポートそのものがありません)。今回は、0.4.6 をここからダウンロードしてビルドしてみました。ビルドは configure の修正と、ソースをいくつか修正で OK でした。

さて、rtmpdump の出力を ffmpeg で再生するには、両者をパイプでつないで

rtmpdump -q (引数いろいろ) -o - | ffmpeg -f mp4 -i - -f audio_device "beosaudio:"

とやりますが、ここで残念ながら、0.4.6 は rtmpdump がこの場合に出力する mp4a を理解できないという問題が…

対策は、
  1. rtmpdump と ffmpeg 0.4.6 の間に、最新 ffmpeg をはさみ、mp3に変換して渡す。
    rtmpdump -q (引数いろいろ) -o - | ffmpeg_new -f mp4 -i - -f mp3 - | ffmpeg -f mp3 -i - -f audio_device "beosaudio:"
  2. 新しい ffmpeg を改造して、beosaudio を組み込む。どうせなら、rtmpdump も組み込めば、コマンドひとつですむかも。
  3. 古い ffmpeg 0.4.6 を改造して、mp4a サポートを組み込む。
  4. beosaudio.cpp を参考にして、自前で再生プログラムを作る。
でしょうか…

しかし、ffmpeg のマニュアルは出来が良くないなぁ。beosaudio への出力方法調べるのにえらい時間かかった。例文のひとつでもいれてあればねぇ…

0 件のコメント:

コメントを投稿