ffmpegを使って
ffmpeg -i smile.flv -acodec copy output.mp3
ってな感じでflv動画から音を抜いてるんですが、これをやったあとに付きまとう問題点。。。
元の音声がVBRだろうと何だろうと、-acodec copyでとにかく抜き出せるのは良いものの、抜き出して出来たファイルにはVBRヘッダが無いので、プレーヤによっては再生時間がとんでもないことになっちゃったりします。
例えば、実際の再生時間は4分程度の筈なのに、32分として扱われちゃったり。
なので、VBRヘッダをファイルに付加する方法を探してたんですが、linux環境向けのツールを見つけられませんでした。。。
なので、とりあえずWindows向けのVBR Header Makerをwineで使用。
うわぁ、、こんな簡単に出来るのになぁ。。。
4 件のコメント:
ffmpeg側にバグ報告するのが良いと思います。
コメントありがとうございます。
でも、これってバグにあたるのかなぁ?とも思うんです。動画ファイルコンテナから音声ストリームを抜き出すという処理はちゃんとやってくれてますから。
あくまで要望で、VBRヘッダの扱いに関するオプションを付けてくれ!、って感じかと。
あと、もしかしたら私が見つけていないだけで、ffmpegでやりようはあるんじゃないかとも思います。音声ストリームをファイルコンテナに収めなおす、というような処理をさせてやればいいのかも。
オープンソース界では基本的には"要望"も"バグ"として扱われるので"バグ"で良いと思います。
ところで昨日mp3のVBRタグを書き込むようにするパッチが投稿されたようです。stream copy (-acodec copy)時の動作をMichaelさんが尋ねていますね。
[FFmpeg-devel] [PATCH] Add support for writing VBR MP3 tags
http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-May/070443.html
>"要望"も"バグ"として扱われる
成程。その辺りの事情を知りませんでした。ありがとうございます。
パッチの投稿の方見てみました。何やら話が進んでいる様子。
パッチ自体は試していないですが、じきffmpegのリリースの方に組み込まれてくれるのでしょうか。ちょっと期待。
コメントを投稿