flv形式に何やら最近縁があるのです。YouTubeやGoogle Videoなどなどなど。
その辺りは、普通にffmpegを使えば、mpeg,aviなどに変換可能なのですが、Flash 8に搭載されてるOn2 VP6コーデックでエンコードされたものだと、ffmpegを始め、対応しているものが少ないようで、どうにも苦戦しました。が、なんとかかんとか出来たのでご報告。
まず、HugFlashを使ってVP6をデコードする。HugFlashは、VP6を読み込めて、AVIに変換してくれたりします。エンコードは無圧縮の他、自分のパソコンに入ってるコーデックによって色々選べるようです。自分の場合、Cinepack by Radius, Indeo 5.11, Indeo 3.2, Microsoft Video 1などがありました。
初めに、HugFlashにドラッグアンドドロップで読み込みを始めた所、「2GBを超えるので、必ず圧縮して下さい」とかいう警告が。元ファイルが26MBなのに2GBって、あれ?と思いながら、コーデックを選ぶウィンドウが出るのですが、
Cinepack by Radiusを選びました。しかし、ファイルをオープンできませんでした、か何か忘れてしまいましたがエラーが出るもので、もう1度チャレンジして、次はIndeo 5.11を選択。無事作成出来ました。11MB位かな。しかし、見てみたらいかんせん画質がだいぶ悪くなっていて、少々耐え難い。
そこで、HugFlashではビデオは無圧縮で出力。ちなみにオーディオはmp3になっていました。で、無圧縮のビデオをffmpegでエンコードすることに。無圧縮で出力してみると3GBもになりました。それをWindows版ffmpegにてm2v(多分mpeg1)にエンコード。
ffmpeg -i "input.avi" "out.m2v"
ビデオとオーディオが分かれているのを統合しなくてはいけませぬが、Windows側でそういったソフトを入れるのもなんなので、Unix側に送って、そっちでmplexを用いて結合させました。
mplex -V -o "out.mpg" "out.m2v" "out.mp3"
mplex -V -f 1 -o "out.mpg" "out.m2v" "out.mp3"
mplex -V -f 4 -b 900 -o "out.mpg" "out.m2v" "out.mp3"
など、何か色々試してみましたが、Windows Media Player 10で再生してみると、画像が黒くなってしまって、見れませんでした。
仕方ないので、無圧縮aviを送って、Unix側でビデオのエンコードも行ってみました。結果、うまく見ることが出来ました。
mplayer -vo yuv4mpeg -ao /dev/null "out.avi"
cat stream.yuv | yuvscaler -n n -O SVCD | yuvfps -r 30:1 | mpeg2enc -f 4 -o out.m2v
mplex -f 4 -V -o "out.mpg" "out.m2v" "out.mp3"
(続きを読む…)
VN:F [1.6.4_902]
Rating: 0.0/10 (0 votes cast)
VN:F [1.6.4_902]
Popularity: 28% [?]