記事を検索

FLVを携帯動画変換君でエンコード

2007/11/10 18:14

コメント (1)  トラックバック(0)

何年か前まではSWFを経由してWEB上で動画を手軽に見せられるFLVは素晴らしいと言ってましたが、つい最近では面倒な形式なのでさっさと消えてくれないかなと180度考えが変わったエビフにゃイです。

友人が携帯用に動画を変換したいというところからはじまりました。通常の状態でも大概の動画形式は何でも変換してしまう携帯動画変換君ですが、FLVについては中身のffmpegが対応していないので今のところ出来ません。ですがAVISYNTH経由(DirectShowSource読み込み)でファイルを読み込むことが出来るので実質FLVも変換できます。何故携帯動画変換君?と思われる方もいらっしゃるでしょうが、動画の扱いが苦手な人でもプロファイルがインターネット上のいたるところで公開されていて利用者も多いので友人に勧めました。ある程度他人任せで済むところが携帯動画変換君の素晴らしいところだと思います。今回の記事に限ってはある程度理解できてないと厳しいのですが。

というわけで変換するために必要な準備をこの記事では紹介しようと思います。


変換の下準備に必要な前知識

記事の冒頭でも書きましたがAVISYNTH経由(DirectShowSource読み込み)でFLVを携帯動画変換君に渡します。AVISYNTHって何なのさっ!はこちらを読んで理解(今は理解しなくていい)してもらうことをお勧めしますが、一番理解してほしいことはDirectShowSourceでFLVを読み込むということです。

DirectShowSourceとはWindows MediaPlayerが使用するマルチメディア再生システムのDirectShow を使って読み込みます。要するにWindows MediaPlayerで再生できる動画は実質読み込めてしまうということになります。ですがあなたのPCでFLVをWindowsMediaPlayerで再生しようとしても出来ないと思います。それを可能にするためにFLV SplitterとffdshowのFLVデコーダを機能させる必要があります。

現在FLVは大きくわけてH.263とVP6で圧縮された2つあると考えて下さい。それらがWindowsMediaPlayer再生できてしまえば大概は大丈夫ということになります。そこまで出来たら大概のFLVは対応できるようになりますので挑戦しようとしてる人は頑張って下さい。


必要なアプリケーションなど


・ AVISYNTH本体(携帯動画変換君でAVSファイルを渡すために必要)
・ 3種類のFLV Splitter
・ ffdshow(FLV1、FLV4のデコーダが欲しい)
・ オマケでVirtualDubMod本体(AVS確認用、trim編集するとき便利)

肝心のAVISYNTHの本体ですがwarpsharpパッケージをお勧めします。理由はwarpsharpパッケージに内包されているフィルタ郡が便利だからです。後日AVISYNTHの理解を深めようとしたときにありがたみがわかると思います。

FLV Splitterについてはこちらの記事を参考にしながら進めます。3種類のFLV Splitterを共存させる必要があります。というわけで無断でまとめたものがあるのでこちらから落として下さい。解凍するとこちらの画面のように表示されると思いますのでinst.batを実行して下さい。消したい場合はuninst.batを実行すれば平気です。尚このFLV Splitterはバージョン更新されることもあるかと思いますので参考にしている記事のリンク先のバージョンのチェックをしておいたほうが良いかもしれません。今後もしかすると全てのFLVを平気にするようなFLV Splitterが出てくるかもしれませんしね。

次にffdshowですが、インストール済みな人はこちらの画面の赤部分のコーデック部分を確認して下さい。その赤のようにすればOKです。これでFLV SplitterがffdshowのFLVデコーダを通れるようになりWMPで再生できるようになります。
私のffdshowのバージョンではVP6Fとなっていますが、FLV4となっているバージョンもあるかもしれません。尚、ffdshowは色んなものがありましてFLVデコーダが内臓されてないものもあると話に聞きました。なので参考にしている記事に書いてあるバージョンのものを落としなおす必要もあるかもしれません。こちらのtryout版のffdshowなら私と同じ環境になるかとおもいます。ついでにスクリーンショットの緑の部分はx264動画を再生できるようになるので是非チェックを入れて下さいというだけですw

ここまで出来た人はこちらの画像のようにFLVをWMPで再生することに成功していると思います。これが出来ない場合は再度ffdshowの設定や他に競合して邪魔しているものがないか確認してみて下さい。ついでにDirectShowFileRenderプラグインを使えばAVIUTLでもFLVを読み込むことが出来ます。

最後にオマケのVirtualDubMod本体です。VirtualDubMod_1_5_10_2_All_inclusive.zipを落として下さい。ついでにリンク先にあると日本語化もしておくと良いと思います。理解している人はAVSをffmpegに渡すだけなのに何故VirtualDubMod?と思うかもしれませんがAVSの動作確認用です。次の項目で説明していきます。


準備は整った!早速やってみよう\(^o^)/

お目当てのFLVファイルを変換する準備を段階に入りました。私はニコニコ動画のsm1410944.flvを変換することを仮定して説明していきます。

FLVのフレームレートを知る必要がある

エンコードしたいFLVのフレームレートがいくつなのか知る必要があります。冒頭でDirectShowSourceで開くと説明しましたがこちらのAVISYNTH wikiにありますように、「DirectShow ビデオデコーダは入力ビデオのフレームレートを知らせることさえも要求されません」=フレームレートを明示する必要があるということです。
FLVファイルのフレームレート情報を知るためにはいくつかのアプリケーションがありますが、私はFLV Extractでやっています。理由は小数点まで確実、詳細にフレームレート情報がわかるからです。本来はそういう使い方をするツールでは無いのですがFLVのままで詳細なフレームレートを知ることが出来るアプリケーションは癖があるのでこちらを利用しています。やり方は簡単でFLV Extract.exeを立ち上げてFLVファイルをドラッグするだけです。videoとtimecodeとaudioのチェックを外しておけば余計なファイルは作成されずにフレームレートの情報をしることが出来ると思います。


AVSファイルを作成してVirtualDub Modで確認してみる

FLVのフレームレートはわかりました。sm1410944.flvは23.99978714....まぁ要するに24.0fpsですね。一応23.999fpsと指定することにします。実際は24.000fpsのが正しいです。続いてAVISYNTHのAVSというテキストファイルを作成します。中身はテキストですので新規でtxtファイルを作成して拡張子をavsにして下さい。
続いてavsファイルを開きます。中身はテキストファイルですのでテキストエディター、メモ帖なりで開いてください。私の場合はHドライブのtencフォルダの中にsm1410944.flvがありますので、以下のように書き込みます。

DirectShowSource("H:\tenc\sm1410944.flv",fps=23.999)

最後にVirtualDubModで正常に動作するか確認します。VirtualDubMod本体を立ち上げて作ったAVSファイルをドラッグしてみてください。画面に表示されたら成功です。お疲れ様でした。これでようやく携帯動画変換君で読み込む準備が整いました。画面に表示されない場合は綴りが間違ってないか、flvのリンク先、を疑ってみてください。エラーメッセージも重要です。
AVSファイルはAVIUTLでも開けますしAVS専用のAvsPというものもありますがスクリプトエディターとプレビュー更新とtrim挿入が優秀なのです。それも最後のオマケで補足します。


携帯動画変換君にAVSファイルをドラッグする

私は友人のD904iで再生できる3gp(もしくはmp4)を作る必要がありました。なのでD904i用のプロファイルを作成しました。他の携帯についてはこちらの携帯動画変換君用のWikiで探したり自分で作ることをお勧めします。ついでにPSP用ということでしたら「PSP 携帯動画変換君」で検索すれば沢山でてくるとおもいます。尚、エラーが出た場合は焦らずにエラー番号を確認してその番号で検索するとすぐに原因がわかると思います。
出来たD904i用の3gpファイルをMPCで開いてみたところ音ズレも無く再生出来ました。これでいつでもフタエノキワミアッー!

一度環境さえ揃えてしまえば実際にFLV→目的の動画にするまでの時間はエンコードにかかる時間と変わりません。要するにFLVのFPSを調べて1行のAVSを書くだけで終る作業なのですから1分で終る話です。よく他のやり方紹介で「ニコニコ動画のは一旦AVIにして~」とありますがただの手間でしかありません。少なくとも環境さえ整えてしまえば携帯動画変換君、AVIUTL、AVISYNTH・・・というかんじで何でもエンコードできるわけですから。


オマケ 少しAVISYNTHの理解を深めてみる

せっかくAVISYNTHを使っているのでもっと色んなことをしてみましょう。ここまで出来た人はニコニコ動画のア○メの本編も変換して電車の中で見たい!とか言い出す人もいるでしょう。OPとEDをカットしたい、分割されたFLVを結合したいという欲求がでてくると思います。PSP用に限っては720*480に綺麗に拡大してノイズ除去もしたいという際限のない欲求がでてくると思います。AVISYNTHでそれは簡単に出来ますので、わざわざ一度他のフロントエンドに渡して編集して中間出力する必要はありません。


というわけで分割になっているsm1432748とsm1433818を結合した上で、OPとEDをカットしたAVSのサンプルをここに貼ります。#の行はコメントアウトになり無効になっていますので無視して平気です。
ここでtrimを使い必要な部分だけを抜き出す作業がVirtualDubMod スクリプトエディターが便利なわけです。VirtualDubMod上で指定した範囲をtrim済みの状態でペーストしてくれたり、現在のフレーム番号を挿入してくれたりするわけです。尚且つ文法的な色分けもされるので見やすいです。更新したAVSファイルはF5を押せばプレビュー上でも適用されますので視覚的にも非常にわかりやすいです。ついでに↓のはわかりやすくするために分けて書いてあります。

##Spliceで2個のFLVを結合
UnalignedSplice(DirectShowSource("H:\tenc\12\sm1432748.flv",fps=23.976),DirectShowSource("H:\tenc\12\sm1433818.flv",fps=23.976))
##↓下でもいい詳しくはAVISYNTH WikiでSpliceをチェック
#DirectShowSource("H:\tenc\12\sm1432748.flv",fps=23.976) + #\DirectShowSource("H:\tenc\12\sm1433818.flv",fps=23.976)

##わかりやすいようにtrim+でOPとEDを抜いたフレームを明示
#0~1559冒頭アヴァン、4076~32726本編、34885~35243予告
trim(0,1559)+trim(4076,32726)+trim(34885,35243)


AVISYNTHに出来ることは何でも出来てしまうことはおわかりいただけたでしょうか。Warpsharpパッケージ本体でダウンロードした人はとっても簡単なフィルタ郡も扱えるので動画をより最適化することが出来ますね。これを気にAVISYNTHもついでに覚えてしまうのも悪くないと思います。お勧めはAVISYNTH wikiの入門ページとAVISYNTH wiki管理人のに~やんさんのページを見ながらやることです。最後まで理解できた人は挑戦する価値はあると思いますので是非^ω^

トラックバック 

コメント

携帯動画変換mmctube (2009年12月19日 03:27)

下準備(FLV動画)がととのったら下記サイトでも携帯向けに動画変換することが出来ますよ(*^^)

http://www.mmctube.com/

ビットレートやサンプリングレートの詳細設定もokでした。

Name(必須) :   Email :   URL :
名前などの情報を保存したい場合はチェック(次回から入力が省略可能になります)


左の画像の数字を入力してください(必須):

2010年1月期 冬アニメの私のエンコード事情 (10)
正月はテイルズ オブ ヴェスペリアでリタ三昧 (11)
近況報告2009年11月4日 (3)
FLVを携帯動画変換君でエンコード (1)
2009年10月期 秋アニメの私のエンコード事情 (8)