MPEG4 H.264/AVCでエンコード †H.264/AVC解説 - Wikipedia mkvのコーデックID †VFWコーデックを使用してAVIに入れたもの → V_MS/VFW/FOURCC/H264
x264 †x264はオープンソースで開発されているH.264のコーデックです。
コマンドライン(CLI) †入力ファイルはHuffyuv(無劣化のコーデック)等でAVI2.0で出力しておきます。
x264.exe -q 20 -b 2 -o outfile.mp4 infile.avs # infile.avs OpenDMLSource("D:\VideoFiles\infile.avi") ConvertToYV12() return last AVS(AviSynth)でYV12形式で受け渡すようにします。(-b --direct --threads などのオプションはお好みで)
x264.exe -p 1 -B 2000 -b 2 --stats x264.log -o outfile.mp4 infile.avs x264.exe -p 2 -B 2000 -b 2 --stats x264.log -o outfile.mp4 infile.avs # infile.avs OpenDMLSource("D:\VideoFiles\infile.avi") AssumeFPS(29.97) ConvertToYV12() return last 入力ファイルがVFRの場合は平均フレームレートがわからないのでAssumeFPS( )で明示的に指定する。
再生 †ffdshow(コーデック)を入れると出来ます。やっぱり更新が早いです。新しいものを使ってください。 エンコード(mkv) †作成例です。
入力ファイル(%%0)は日本語ファイル名は不可。 cmdex.txt †:MKV/AVC(Chapter) @echo off set IN=%%0 set OUT=%%1 rem 音声のノーマライズ waveflt2 -normal -2.0 "%IN%.wav" "%IN%_nm.wav" rem AviSynthスクリプト作成 echo OpenDMLSource("%IN%.avi") > "%IN%.avs" echo ConvertToYV12() >>"%IN%.avs" echo return last >>"%IN%.avs" rem エンコード oggenc -b 128 "%IN%_nm.wav" -o "%IN%.ogg" x264 -q 23 -b 1 --direct spatial -o "%IN%.mp4" "%IN%".avs --threads auto mkvmerge -o "%IN%_out.mkv" --timecodes "1:%IN%.avi.txt" --aspect-ratio 1:4/3 -A "%IN%.mp4" "%IN%.ogg" --chapter-language jpn --chapters "%IN%.txt" move /y "%IN%_out.mkv" "%OUT%.mkv" rem 一時ファイルを削除(ごみ箱) recycle -y "%IN%.avs" recycle -y "%IN%.ogg" recycle -y "%IN%.mp4" recycle -y "%IN%_nm.wav" エンコード(mp4) †某PS3が出たのでmp4の作成例も追加。(^^;
入力ファイル(%%0)は日本語ファイル名は不可。 cmdex.txt †:MP4/AVC(Chapter) @echo off set IN=%%0 set OUT=%%1 rem 音声のノーマライズ waveflt2 -normal -2.0 "%IN%.wav" "%IN%_nm.wav" rem AviSynthスクリプト作成 echo OpenDMLSource("%IN%.avi") > "%IN%.avs" echo ConvertToYV12() >>"%IN%.avs" echo return last >>"%IN%.avs" rem エンコード NeroAacEnc -br 128000 -if "%IN%_nm.wav" -of "%IN%.m4a" x264 -q 20 -b 1 --level 4 -o "%IN%.mp4" "%IN%".avs --threads auto tc2mp4 -i "%IN%.mp4" -t "%IN%.avi.txt" -o "%IN%_vfr.mp4" mp4box -add "%IN%.m4a" "%IN%_vfr.mp4" mp4box -par 1=1920:2160 -chap "%IN%.txt" -lang jpn "%IN%_vfr.mp4" move /y "%IN%_vfr.mp4" "%OUT%.mp4" rem 一時ファイルを削除(ごみ箱) recycle -y "%IN%.avs" recycle -y "%IN%.m4a" recycle -y "%IN%.mp4" recycle -y "%IN%_nm.wav" ※tc2mp4はこのページに貼ってある修正版を使用しています。 画素アスペクト比(Pixel Aspect Ratio)の設定値 †DAR(Display Aspect Ratio)を4:3、画素数が720*480の場合、 par_x = DAR_x * hight = 4 * 480 = 1920 par_y = DAR_y * width = 3 * 720 = 2160 となり、-par 1=1920:2160 (or 8:9)を設定する。 AviUtl用x264出力プラグイン(mp4/mkv) †x264出力(mp4/mkv)プラグインが可変フレームレート出力のページに置いてあります。 VFR出力用CLI(AviSynthで使用する場合) †それぞれのプラグインに x264itvfr.exe および x264afs.exe が付属しています。 |