Windows 7 Pro (64 ビット版)で GAVIE.NET 用 H.264 動画を作る

アマレココで撮ったゲームキャプチャ動画から gavie.net - このウェブサイトは販売用です! -&nbspgavie リソースおよび情報H.264 動画を作成する方法をメモする.

動画データ

上が入力,下が出力.

[fez20091224-221100[000].avi]
640x400 32Bit AMV3 Codec 30.00fps 289f 19864.89kb/s
[RIFF(AVI2.0)] 00:00:09.633 (9.633sec) / 23,928,832Bytes

[fez.mp4]
640x400 24Bit AVC/H.264 High@5.1 30.00fps 290f 1494.72kb/s
MP4 AVC
[MPEG4] 00:00:09.666 (9.666sec) / 1,809,836Bytes

真空波動研Lite 090902 / DLL 090902

参考文献

  • Loading... より「旧動画作成ツールの紹介(完全無料のためめんどくさいです・・)」
  • zoome.jp

手順

  1. aviutl を d:\software\av\aviutl に展開
  2. avisynth をインストール(私は関連付けを外した)
  3. ds_input026a.lzh から ds_input.aui と ds_input.ini を d:\software\av\aviutl に展開
  4. x264out09.lzh から tools フォルダと x264out.auo と x264out.ini を d:\software\av\aviutl に展開
  5. NeroAACCodec-1.5.1.zip から win32 以下の neroAacDec.exe と neroAacEnc.exe と neroAacTag.exe を d:\software\av\aviutl\tools に展開
  6. aviutl 起動
    1. 入力プラグインの優先度設定で DirectShow File Reader をトップにする
    2. fez20091224-221100[000].avi を開く
    3. プラグイン出力から x264出力(mp4/mkv) を選ぶ
    4. ビデオ圧縮設定を変更する
      1. テンプレート x264出力(2pass) を選ぶ
      2. 可変フレームレートのチェックを外す
      3. 編集ボタンを押し,!x264出力(2pass) 部分を後述するテキストと置き換える
    5. fez.mp4 として保存する.Windows セキュリティの警告が出るが,これを許可する

x264out.ini

!x264出力(2pass)
# gavie.net
set x264OPT=-B 1500 -b 2 --level 5.1 --sar %PAR% --threads auto --thread-input --analyse p8x8,b8x8,i4x4,p4x4 --keyint 100 --me esa
# original
# set x264OPT=-B 2000 -b 4 --aq-mode 0 --sar %PAR% --threads auto
set AAC=NeroAacEnc.exe -2pass -br 128000 -ignorelength -if "%TMPF%.wav" -of "%TMPF%.m4a"
call :2pass
call :Mux

aviutl が通信しようとして,Windows ファイアウォールが反応する件

AviSynthのTCPDeliver機能を使用しています。
WindowsXP SP2などでファイアウォール機能を使用している場合、
ネットワークをブロックする警告が出ますのでブロックを解除してください。

(x264out09.lzh の 読んでね.txt より抜粋)

TCPDeliver - AviSynth.info を見て,なるほど反応するだろうなと思った.次に src/x264out.cpp を見る.

	// avsファイル作成
	_snprintf(strAvs,MAXPATH,"%s\\tmp%d__x264out.avs",tmppath,pid);
	wfile = fopen(strAvs,"w");
	if(wfile == NULL) return TRUE;
	fprintf(wfile,"TCPSource(\"127.0.0.1\",%d)\n",sport);
	fprintf(wfile,"ConvertToYV12()\n");
	fprintf(wfile,"return last\n");
	fclose(wfile);

通信先は 127.0.0.1 らしいから,安全らしいなと思った.許可しよう.