Simple Mencoder Shell GUI でFLV4へ変換

Simple Mencoder Shell GUI でFLV4へ変換
Simple Mencoder Shell GUIで変換したFLV4は、Web配信用動画として利用可能
(2007.06.19作成, 08.03.xx更新)
Simple Mencoder Shell GUI (SMSG)は、多形式に対応したMencoderのGUI ツール。
動画ファイルをDVD(MPEG-2/AC3)、QuickTime(MOV)、AVI(DivX) などに変換することが出
来、Mencoderのスクリプトを追加したり編集して出力をカスタマイズする事が可能だ。
又、Flash VideoのなかでもFLV4(On2VP6_MP3.flv)に変換する事が可能で、フリーのソフト
の中では貴重な存在だ。
そこで今回、シネスコサイズのMPEG2_MP2.mpg(640x272)を素材として、FLV4に変換して
画質の良し悪しとWeb配信用途に利用可能か試用してみた。
なお、FLV4への変換に特化したコマンドラインの「Mencoder VP6セット」も試用してみた。
Simple Mencoder Shell GUI
 準備
Simple Mencoder Shell GUIこちらから入手 (今回は、v1.0.2.2を使用)。
    SimpleMencoderShellGUI_setup_14-06-2007_1.0.2.2.exeを起動して、型の如く
    インストールする。
   Windows XPの場合は別途、Microsoft .NET Framework v2 が必要。
     Windows Updateのカスタム:追加選択の更新プログラムからインストールするか、
     Microsoft .NET Framework Version 2.0 再頒布可能パッケージ(こちら)から入手
   Windows Vistaの場合は .NET Frameworkを特に用意する必要はない。
Mencoder
    Simple Mencoder Shell GUIのインストール先にもmencoder.exeが存在する
     が、少なくともFLV4への変換には使えない!
    非公式ダウンロード先より入手して使用する。
    http://www.paehl.com/open_source/?Convert_Tools:MPLAYER_MENCODER
    http://oss.netfarm.it/mplayer-win32.php
    http://ffdshow.faireal.net/mirror/mplayer/
    今回は、XviD 1.1.2 - x264 svnのmencoder-p4-svn-23404.7zを使用
     解凍後、手動でC:\Program Filesフォルダ内にコピーする。
VP6 VFW Codec:本家からは入手困難
    http://cowscorpion.com/Codec/VP6VFWCodec.html
    http://www.ogg.cn/software/view-software-309.html
    型の如くインストールするとC:\WINDOWS\system32にインストールされる。

 SMSG設定方法
Simple Mencoder Shell Gui ガイド」や「Mencoderのオプションいろいろ」に丁寧に解説
 されている。
筆者はこの参考サイトに準じて検証したので、 詳細はそちらの方を参照の事。

 SMSG対応フォーマット形式
1)入力
  *.avi *.wmv *.dat *.vob *.mov *.rm *.flv *.mkv *.mpg *.mp4 *.divx *.mpeg *.m1V *.m2V
  *.mpa *.ogm *.ra *.ram *.rmvb *.rv *.wm

  VCD, SVCD, DVD, MPEG-1/2 (ES/PS/PES/VOB), RIFF AVI, , ASF/WMV/WMA format,
  QT/MOV/MP4 format, RealAudio/RealVideo , Ogg/OGM
2)出力
  DVD(MPEG-2/AC3/Pal)、QuickTime(MOV)、AVI(DivX,XVID) がDefaultScriptに登録され
   ている
  DVD出力はPAL形式なので、NTSC用にスクリプトを編集する必要がある。
  スクリプトを追加する事により、FLVやWMVへの変換が可能となる。
今回筆者は、MPEG2→FLV4のみを検証してみた。

 FLV4(On2VP6_MP3.flv)への変換
1. まず最初にSMSGを起動したら
  「Mencoder Location...」ボタンで、mencoder.exeへのパスを指定する。
   今回は、C:\Program Files\mencoder-p4-svn-23404\mencoder.exe
  次に、「Output Directory...」ボタンで、出力先フォルダを設定する。
  なお、「Skin」を SMSGは見にくいので、Cleanに変更した。
2. FLV4圧縮変換用スクリプトの作成
   改行コードを入れずに、以下のようなコマンドスクリプトをメモ帳などに記載する。
   640:272は、出力ファイルの解像度で目的に応じて変更する(今回は640x272のシネスコ
    サイズの素材を用いた)。
   なお、音声サンプリングレートは11025, 22050, 44100 の3つだけだ(今回は44100Hz)。
-oac mp3lame -ovc vfw -of lavf -vf yadif,scale=640:272,flip -af
lavcresample=44100 -xvfwopts codec=vp6vfw.dll:compdata=dialog -lameopts
cbr:br=64 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -o
"<OUTPUT>_vp6.flv" "<INPUT>"

  「Add..」ボタンをクリックすると「EditScript」が表示されるので、Name欄に新しいスクリプト
   名(今回は、TO->On2VP6(640x272) を記入し、
   Script欄に上記のコマンドスクリプトをコピー&ペーストする。
   「Save」ボタンをクリックすると、「Default Script」のプルダウンメニューに新しいスクリプトが
    追加されている。

3. 素材の読み込み
   新しいスクリプト"TO->On2VP6(640x272)"を選択しておいて、
   「Browse 4 Files 2」ボタンをクリックして、素材(今回はSample.mpg)を読み込む。

4
. 変換
  「Encode」ボタンをクリックすると、「VP6 Configuration Windows」が表示される。
  今回は、2Passエンコードとする(Encodeボタンを2回クリックする必要がある)。
  1回目のモードは、「Two Pass-First Pass」に設定してエンコードする。
  ビットレート:今回は、トータル500kbpsー音声ビットレート64kbps=436kbpsとする。
   すると、出力フォルダに解析ファイルfpf
   も出力される。
  2回目のモードは、「Two Pass-Second Pass-Best Quality」に設定してエンコードする。

  進捗バーが表示され、
  変換が正常に終了すると、「Std Out」欄に「out-Completed Sucessfully」と表記される。

 結果
1)本ソフトは、MencoderをベースとしたマルチコンバータSUPER cMediaCoderと比較
  して非常に使い辛い。自由度は高いようだが、筆者の能力では今回の用途以外の利用
  (DVD用MPEG2やx264AVIへの変換)には多大な労力を必要とする為実用的ではない。
  FLV4の2Passエンコードでは、1回目のエンドードが終了するのを待っていなければならない!
2)トータルビットレートは410kbps位となり、目標の500kbpsから少しばかり外れてしまった!
  ビデオ圧縮のビットレートを想定外の510kbps位に設定しないと目標値にならなかった。
3)FLV Player1.3.3による再生では、
 FLVTool2でメタデータを追加しなく
 てもシーク操作は可能だが・・・
 何故か?ビデオ情報を取得出来ない!

 SMSGで変換したOn2VP6.flvの配信テスト(多分410Kbps,1分)    ここから
Web Serverから疑似ストリーム(Faststart再生)配信が可能だ。
画質はFlash8で変換したOn2VP6圧縮よりもやや悪いが、ビットレートが少ない為と思
われる。しかし、SUPER cなどのSorenson(FLV1)圧縮
よりはるかに良い。
*VP6圧縮のFlash Video(FLV4)を視聴するには、FlashPlayer8以降が必要です。


Mencoder_VP6Set
 入手
  mencoder_vp6set.zipこちらから入手。
   解凍して適当なところに配置すればよい。以下のフルセットから構成されている。
    *FLV4enc_D&D_2pass_4:3.bat
      :普通に512x384へリサイズして2パスエンコードするサンプル

    *FLV4enc_D&D_2pass_16:9.bat
      :512x288へリサイズ後上下に黒べた付加して横長画面でエンコードするサンプル
    *mencoder.exe    :動作本体
    *pthreadGC2.dll    :mencoder側の要求DLL
    *vfw2menc.exe    :設定ファイル作成用ツール
    *codecs\vp6vfw.dll  :v6.4.2.0のコーデック本体。システムC:\WINDOWS\system32
                  にインストールしてある場合はそちらが使われる。
  即ち、自前でMencoderとVP6 VFW Codecを用意する必要は無く、Microsoft .NET Framework
    v2を要求される事もない。

 準備
「FLV4enc_D&D_2pass_4:3.bat」ファイルをコピーし、右クリックで「編集」を選択してメモ帳で開く。
 下方の「その他フィルタオプション」項目の scale=512:384を、目的の解像度(今回は、640x272
  シネスコサイズ)に変更して上書き保存する。
  ファイル名を「FLV4enc_D&D_2pass_640:272.bat」に変えておく。
@echo off
set PATH=%~dp0\codecs;%PATH%
cd /d %~dp0


echo -------------------------------
echo "%~1"のエンコードを開始します。
echo -------------------------------

REM 毎回の指定が面倒なら↓のところコメントアウトして直打ちにでもしちゃってください
echo オーディオのビットレートを指定(kbps) 例:64
set /p ABITRATE=AudioBitrate:
set Audiobitrate=%ABITRATE%

REM 設定ダイアログ呼び出し
echo 1パス目の設定
echo.
vfw2menc.exe -d vp6vfw.dll -f VP62 -s 1stpass.mcf
echo 2パス目の設定
echo.
vfw2menc.exe -d vp6vfw.dll -f VP62 -s 2ndpass.mcf

REM ビデオフォーマット設定(出力拡張子で自動的に確定)
set FORMAT=-of lavf
set FOPT=-lavfopts i_certify_that_my_video_stream_does_not_use_b_frames

REM 一応入力側の名前に合わせてみる
set OUTPUT=-o "%~dpn1_menc.flv"
set INPUT="%~1"

REM ビデオコーデック設定
set VCODEC=-ovc vfw
REM set VCOPT=-xvfwopts codec=codecs\vp6vfw.dll:compdata=dialog

REM 音声コーデック設定
set ACODEC=-oac mp3lame
set ACOPT=-lameopts abr:br=%Audiobitrate%

REM その他フィルタオプション
set EXTOPT=-vf flip,scale=512:384 -sws 9 -af resample=44100

REM 2pass用
set VCOPT=-xvfwopts codec=vp6vfw.dll:compdata=1stpass.mcf
mencoder %FORMAT% %FOPT% %VCODEC% %VCOPT% %ACODEC% %ACOPT% %EXTOPT% %OUTPUT% %INPUT%
set VCOPT=-xvfwopts codec=vp6vfw.dll:compdata=2ndpass.mcf

mencoder %FORMAT% %FOPT% %VCODEC% %VCOPT% %ACODEC% %ACOPT% %EXTOPT% %OUTPUT% %INPUT%

pause
exit


 対応フォーマット形式
1)入力:未検討
2)出力:今回のセットは、FLV4用のみに特化。
今回筆者は、MPEG2→FLV4を検証してみた。

 FLV4(On2VP6_MP3.flv)への変換
1.素材(今回は640x272のシネスコサイズのMPEG2動画)を 「FLV4enc_D&D_2pass_640:272.bat」
  にドラッグ&ドロップする。
  なお、解析ファイルfpf類は初めてエンコードした際に、セットフォルダ内に作成される。
  すると、DOSウィンド
  ウが起動し、オーディ
  オのビットレートの指
  定を求められるので
  、入力して 「Enter」
  キーを押す。
   今回は、64kbpsと
   した。
2. ビデオコーデックの設定
   続いて、「VP6 Configuration Windows」が自動的に起動する。
   1回目は、「Two Pass-First Pass」を指定して、下図の如くSimple Mencoder Shell GUI
   と同様に、トータル500kbpsー音声ビットレート64kbps=436kbpsとする。

   「OK」ボタンをクリックすると、再度「VP6 Configuration Windows」が起動するので、
   今度は「TwoPas-SecondPass-Best Quality」を選択して「OK」する。
   引き続いて、DOSウインドウが表示されてエンコードが開始される。
   最後に映像と音声のビットレートが表示される。
   「Enter」キーを押すと、素材と同じフォルダに「○○○○_menc.flv」ファイル
   が出力される。
 結果
1)FLV4のみへの変換目的なら、Simple Mencoder Shell GUI よりも簡便で使い易い。
2)Simple Mencoder Shell GUI と同様に 、トータルビットレートは418kbps位となり、目標
  の500kbpsから少しばかり外れてしまった。ビデオ圧縮のビットレートを想定外の545kbps位
  に設定しないと目標値にならなかった。
3Simple Mencoder Shell GUI と同様に、FLV Player1.3.3でのシーク操作は可能だが、
  ビデオ情報を取得出来ない。 

 Mencoder VP6セットで変換したFLV4の配信テスト(多分418Kbps,1分)    ここから
Web Serverから疑似ストリーム(Faststart再生)配信が可能だ。
画質はFlash8で変換したOn2VP6圧縮よりもやや悪いが、ビットレートが少ない為と思
われる。しかし、SUPER cなどのSorenson(FLV1)圧縮
よりはるかに良い。
*VP6圧縮のFlash Video(FLV4)を視聴するには、FlashPlayer8以降が必要です。

追記(2008/03/xx)
ffmpegファイルセット(flvenc)
概要AviUtl かVirtualDubで、MencoderやVP6 VFWCodecを利用してVP6.aviに変換し、
     ffmpegで映像と音声を合成してFLV4を作成する
入手flvenc.zipの配布先:http://tokyo.cool.ne.jp/keinw/はリンク切れの為、
         http://www8.plala.or.jp/ground-e/download/flvenc.zip から入手。
       又は、flvenc20071002.zipこちら から入手。
  解凍して適当なところに配置すればよい。以下のファイルセットから構成されている。
  サンプルのバッチファイルは次の3種類が用意されている。
    FLV1ENC_D&D.bat:H263+MP3.flv作成用nパスサンプル

    FLV4ENC_D&D.bat:VP6+MP3.flv作成サンプル
    FLV_ffmpegmux_D&D.bat:既存のH263又はVP6のAVI とMP3を合体してflvを作成する
      サンプル
   このうち汎用されているのは、FLV_ffmpegmux_D&D.batで、
    AviUtil かVirtualDubで編集・作成したVP6.avi ファイルとlame.exe等でエンコ済みのmp3
    とを、FLV_ffmpegmux_D&D.batにドラッグ&ドロップしてFLV4ファイルに変換する。
操作方法:「flvenc バッチファイルセットの使い方」を参照。



| Kenのムービー計画へ >動画狂コーナーへ |