あれこれほしい

パソコン関係、アニメ、漫画などなどの物欲とレビューもどきとか

TSファイルをH.264(x264)に高画質エンコード avisynthの使い方

avisynthは慣れるまでは難しいですが、エンコードも早いですしお勧めです。
一回エンコード出来てしまえばその設定をいじって流用も出来ますし、なるべく簡単な方法を分かりやすく説明するつもりなのでチャレンジしてみてください。

注:32bit環境を前提に説明をします。

参考にさせて貰ったサイト
動画物置(旧FEZ物置)
http://a-cube.net/fez/2009/01/avsavisynth.html
TSからmp4のメモ
http://calves.jugem.jp/?eid=529


・まずは簡単に流れ
TSファイルを録画

DGIndexでd2vとaac出力

aviutlでCMカット(Trimエクスポート)
PC視聴用にここでチャプターファイルも作っておく

avsPmodでd2vaac読み込みインタレ解除(アニメだったら逆テレシネ化も)リサイズするavsを書く

avisynth→x264エンコード

MP4Boxで音声と映像を結合

手順1~5.は最初の準備なので、
次回エンコードは6.~なので単純で楽です。

iPhoneやiPod touchでも見られるファイルにしたい場合はTSファイルをiPhone4,iPod touchでも見られるH.264(x264)に高画質エンコードを、先に見てください。

1.用意するソフト
ソフト名入手先説明
Avisynthavisynth.infoメインで使います
DGMPGDec(DGIndex)DGMPGDec MPEG1/2 Decoder and Frame Server (Version for Avisynth 2.5)TSをd2v,aacに分離します。
aviutlAviUtlのお部屋CMカット,チャプターファイルを作るのに利用します。
avsPmodAvsPmod 2.0.5 - Doom9's Forumavsの編集に利用します。
avs2wav(seraphy版)avisynth.info - avs2wavwavを書き出します。
Nero AAC CodecNero - Download Nero AAC Codecwavで書き出した音声をaacにします。
x264revision 1745 v2映像をh.264(mp4)にします。
MP4BoxMP4Boxh.264(mp4)とaacを結合します。
まずエンコード出来るようになるまでは最小構成で行きましょう。
TSファイルは録画したままの状態でお願いします。(CMカットとかしていない状態)

CMカットをしているTSファイルだと音がズレるからです。

2.必要なソフトをインストール
avisynthはリンク先に詳しく書いてあるので問題ないでしょう。
以下のソフトはミスをなるべくなくすために書いてある通りにお願いします。
DGIndexはソースコードしか配布されていないので、http://hank315.nl/の下の方の『Download DGMPGDec 1.5.8』から入手して下さい。
解凍してC:\encodeというフォルダを作ってそこに入れてください。
01.png
aviutlも解凍してC:\encodeに入れてください。
02_20101103194727.png
avsPmodも解凍してC:\encodeに入れてください。
03_20101103195235.png

avs2wavはseraphy 版を使うのですが、ここ最近サイトが常にアクセス出来ない状態のようです。
http://www.mediafire.com/file/nwznzqkmymw/avs2wav.exe
ミラーされてあったのでURLをおいて置きます。(自己責任でどうぞ)
NeroAAC Codecは同意するを押してメールアドレス(存在しそうなアドレスなら大丈夫ですが自己責任で)を入れればDL出来ます。
x264は色々なヴァージョンがありますが私が使ってるもので始めはあわせて下さい。「Download 32bit」でDL。
MP4BoxはDownload from mirror (direct link)でDL。
avs2wav,NeroAAC Codec,x264,MP4Boxを解凍して、C:\encodebinというフォルダを作って入れてください。
04.png
MP4Boxに入っているlibgpac.dllも入れてください。

3.avisynthを使うためのDLLのダウンロード、インストール
DLL入手先説明
LoadPluginEx.dllseraphy_mirror互換性のないプラグインを使用できるようにします。
warpsharp.dll同上様々なフィルタが使えます。
Convolution3DYV12.dllConvolution3D Beta for AviSynth 2.5ノイズ除去に使用します。
DGDecode.dllDGIndexに付属d2vを読み込むために使います。
bassAudio.dllBassAudio - New version (2008-03-14) - Doom9's ForumAACを読み込むために使います。
bass.dll同上AACを読み込むために使います。
bass_aac.dll同上AACを読み込むために使います。
EEDI2.dlltritical's Avisynth Filtersインターレース解除、逆テレシネ化に使います。
TDeint.dll同上インターレース解除、逆テレシネ化に使います。
TIVTC.dll同上インターレース解除、逆テレシネ化に使います。

始めはこの構成が分かりやすいです。
私はこれ以外にはEraselogo,UnsharpMask,GradFun2DBmodなどを使用しています。

C:\Program Files\AviSynth 2.5\pluginsに上記のDLLを入れてください。
05.png
分かりやすくする為に関係ないものは塗りつぶしてあります。
画像のものがすべて入っているか確認してください。

4.DGindexを使用する準備
## aviutl用
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\bassAudio.dll")

## 読み込み
video =MPEG2Source("__vid__")
audio =bassAudioSource("__aud__")
AudioDub(video, audio)
DelayAudio(__del__)
をメモ帳に貼り付けて『template.avs』という名前で、DGIndex.exeと同じフォルダ(C:\encode\dgmpgdec158)に保存します。
DGIndexを起動します。
06.png
Options - avs templateをクリックして、Change Template Fileを押してさっき保存した『template.avs』を指定します。
終わったらDGindexを終了してください。

5.aviutlを使う準備
AviUtlプラグイン置き場からAviSynth Script エクスポート ver1.4 (avs_export_14.zip)をダウンロードします。
解凍して中に入っているtrim_export.aufをaviutlがあるフォルダC:\encode\aviutl99i8に入れてください。
ジャンプウィンドウからaviutl_jump_210.lzhをダウンロードしてください。
解凍して中に入っているjump.aufをaviutlがあるフォルダC:\encode\aviutl99i8に入れてください。
aviutlを起動します。
表示 - ジャンプウインドウの表示をクリックでジャンプウインドウが表示されます。
12.png
ファイル - 環境設定 - システムの設定をクリックします。
10.png
最大画像サイズを1920x1080にしてください。
11.png
OKを押してaviutlを終了します。



長かったですが、これでソフトを使用する準備は終わりました。
ここからは楽だと思います



6.TSファイルをDGIndexで読み込んで、d2vとaacに分離する
イカ娘5話をエンコードするという例で行きます。
DGIndexを起動します。
TSファイルを読み込みます。ドラックアンドドロップ可能です。
ファイル確認されるのでOKを押します。
Stream - Detect PIDs: PAT/PMTをクリック。
07.png
一番上にあるAAC Audio on PID ~をクリックして、
Set Audioをクリックして、
Doneをクリックします。
08.png
File - Save Projectクリックで何も変えずに、保存をクリックします。
09.png
d2v,aacが出力されるので終わるまで待ちます。
aac,d2v,avsが保存されているいるのを確認してください。
13.png
保存されたaacを再生してみておかしくなければDGIndexを使った処理は終了です。
aacがおかしかった場合は一度削除して、もう一度DGIndexに読み込ませてStream - Detect PIDs: PAT/PMTで選ぶAAC on Audioを別のものにしてもう一度出力して見てください。

7.CMカット(Trim)
DGIndexで出力されたavsファイルをaviutlに読み込ませます。ドラックアンドドロップ可能です。
14.png
ジャンプウインドウのフレーム間隔を100くらいにするとCMカットしやすいと思います。
CMが終わるところまで来たら右下の→|ってのを使ってCMの範囲を選択して選択範囲を削除をします。
15_20101103222853.png
OPとAパートの間のCM
AパートとBパートの間のCM
BパートとCパートの間のCM
次回予告後のCM
(無論番組に寄って異なります)
すべてをカット出来たら、エクスポート - Trimをクリックします。これでクリップボードにTrimがコピーされました。
間違って他の物をコピーしてしまうと努力が水の泡になるので、メモ帳にでも貼り付けておきます。


8.avsPmodでavs編集
##### 外部プラグインの読み込み
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\LoadPluginEx.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\warpsharp.dll")
#LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\delogo.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\Convolution3DYV12.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\bassAudio.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\EEDI2.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\TDeint.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\TIVTC.dll")

#####読み込み↓

#####書き換え↑

AssumeTFF()

##### CMカット


##### 透過ロゴ除去。
##透過ロゴ除去フィルターを使用する場合はここに記述
#EraseLOGO(logofile="ここにロゴファイルのフルパス", start=4, fadein=1, fadeout=1, end=2965, interlaced=true)
#EraseLOGO(logofile="ここにロゴファイルのフルパス", start=3001, fadein=0, fadeout=0, end=15791, interlaced=true)
#EraseLOGO(logofile="ここにロゴファイルのフルパス", start=15827, fadein=1, fadeout=0, end=27958, interlaced=true)
#EraseLOGO(logofile="ここにロゴファイルのフルパス", start=27994, fadein=1, fadeout=0, end=43572, interlaced=true)

##### インターレース解除/逆テレシネ変換
### インタレ解除+逆テレシネ
# 自動的にインタレ解除と逆テレシネを実施
# EEDI2.dll、TDeint.dll、TIVTC.dllが必要
TIVTC24P2()

##### インターレース解除/逆テレシネ変換 ここまで-----------------------

##### ノイズ除去
Convolution3D(preset="animeHQ")

##### ノイズ除去 ここまで--------------------------------------------------

##### 映像の縮小
Spline36Resize(1280,720)

##### ワープシャープで輪郭をすっきりさせる
WarpSharp(95,3,85,0)

#UnsharpMask(32,8,38)
UnsharpMask(20,8,26)

##### バンディング処理をする場合はここでする
#GradFun2DBmod()

return last

function TIVTC24P2(clip clip){
Interp = clip.AssumeTFF().SeparateFields().SelectEven().EEDI2(field=1)
Deinted=clip.TDeint(order=1,field=1,edeint=Interp)
clip = clip.TFM(mode=6,order=1,PP=7,slow=2,mChroma=true,clip2=Deinted)
clip = clip.TDecimate(mode=1)
return clip
}

をNew fileに貼り付ける。
CMカットのところにTrimを貼り付けます。
DGIndexで出力した2010 1102 0200 テレビ東京 侵略!イカ娘.avsを開いて
## 読み込みより下の分をコピーして
#####読み込み↓
#####書き換え↑

の間に入れます。
17.png
Saveで保存します。ikamusume5.avsで保存しました。
名前に日本語を入れない、スペースを入れないで下さい。
保存できたらavsPmodを閉じます。

これはアニメエンコードの設定ですので、実写の場合はインターレースの解除をTIVTC24P2()ではなくTdeint(mode=0)などに変えてください。


avsPmodで操作していればavisynthの使い方がなんとなく分かってくると思います。
#の後ろは処理されないなどなど。

9.batの準備
@echo off
cd /d %~dp0


rem ### ソフト類のパス ###
set x264_path="C:\encode\bin\x264.exe"
set avs2wav_path="C:\encode\bin\avs2wav.exe"
set neroaacenc_path="C:\encode\bin\neroAacEnc.exe"
set mp4box_path="C:\encode\bin\MP4Box.exe"

rem 作業開始

echo ***************************************
echo **   音声出力   **
echo ***************************************
%avs2wav_path% "%~1" %~1wav.wav

echo ***************************************
echo ** エンコード中(音声) **
echo ***************************************
%neroaacenc_path% -ignorelength -lc -q 0.5 -if "%~1wav.wav" -of "%~1wav.m4a"

echo ***************************************
echo ** エンコード中(映像) **
echo ***************************************

echo エンコード開始…%time%

%x264_path% --level 4.1 --crf 21 --aq-mode 1 --aq-strength 0.8 --psy-rd 1.0:0.25 --deadzone-inter 8 --deadzone-intra 6 --ipratio 1.6 --pbratio 1.4 --qcomp 0.7 --qpmin 12 --qpmax 35 --qpstep 8 --scenecut 70 --min-keyint 1 --keyint 300 --partitions p8x8,b8x8,i4x4 --8x8dct --bframes 4 --nal-hrd vbr --vbv-maxrate 30000 --vbv-bufsize 24000 --b-adapt 2 --direct auto --me umh --subme 7 --merange 32 --sar 1:1 --threads auto --trellis 1 --deblock -1:-1 --no-fast-pskip --no-dct-decimate --psnr --ssim --acodec none --output "%~1temp.mp4" %~1


echo ***************************************
echo ** 映像と音声の結合  **
echo ***************************************

%mp4box_path% -fps 23.976025 -add "%~1temp.mp4" -add "%~1wav.m4a":lang=jpn:name=Main -new "%~1.mp4"

echo ***************************************
echo ** 一時ファイルの削除 **
echo ***************************************

del %~1wav.wav
del %~1wav.m4a
del %~1temp.mp4

pause

をテキストファイルにコピーしてavsと同じフォルダに保存して拡張子をbatにしてください。

Tdeint(mode=0)にした場合は
%mp4box_path% -fps 23.976025 -add "%~1temp.mp4" -add "%~1wav.m4a":lang=jpn:name=Main -new "%~1.mp4"

%mp4box_path% -fps 29.970030 -add "%~1temp.mp4" -add "%~1wav.m4a":lang=jpn:name=Main -new "%~1.mp4"
に書き換えて下さい。

これですべての準備は終わりです。


10.エンコード
avsPmodで作ったavsファイル(ここではikamusume5.avs)を先ほど保存したbatファイルにドラックアンドドロップします。
0009.png
するとエンコードが始まります。

以上です。
エンコードが終わるのを待ちましょう。

一度ソフト類の準備が終わってしまえば、次回からは6.から始められるので簡単だと思います。

エンコードしたmp4をiPhone4,iPodから見る場合はTSファイルをiPhone4,iPod touchでも見られるH.264(x264)に高画質エンコードを見てください。



スポンサードリンク

loading...
[ 2010/11/03 21:25 ] エンコード | TB(0) | CM(4)
動画のエンコードについてお聞きしたいことがあります。
動画をエンコードするにあたってとてもわかりやすく書いているので、参考にさせていただきました。
このページの通りやると録画したTSファイルをMP4にすることができました。
ですが、できあがったサイズが1280×720になってしまいます。
これを元のサイズと同じ大きさ(1440×1080)にしたいのですが、どこをいじればいいのかわかりません。
batのx264のところだと思うのですが、自分なりに調べてもわけが分からなくて、、。
すみませんが、もしよろしければ教えていただけないでしょうか。
[ 2013/04/03 15:08 ] [ 編集 ]
返信が遅くてすみません。
avsファイルの

##### 映像の縮小
Spline36Resize(1280,720)


の部分を消すか

##### 映像の縮小
#Spline36Resize(1280,720)


としてください。
その後batファイルから

--sar 1:1

という項目を見つけて

--sar 4:3

としてエンコードしてください。
[ 2013/04/21 18:53 ] [ 編集 ]
承認待ちコメント
このコメントは管理者の承認待ちです
[ 2013/05/16 20:25 ] [ 編集 ]
ありがとうございます!
1440×1080で作れました!
[ 2013/05/19 13:04 ] [ 編集 ]
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL


≪ iTunesからArtwork(アートワーク、ジャケット画像)を取り出す、抜き出す方法 | HOME | TSファイルをiPhone4,iPod touchでも見られるMP4動画、H.264(x264)に高画質エンコード ≫
プロフィール

untan419

Author:untan419
CSS弄り中なので崩れていたらすいません。
閲覧はChromeとSafari推奨。
キャプ画像を交えつつ感想書いたり購入物レビューしたり色々。
コメント、TB大歓迎です。
関係ないものや重複してると思われるものは削除させてもらいます。