Photo Gallery

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
twitter.jpg


ブログの更新情報などを配信しています。
新しい記事を書いたら必ずツイートしますので、是非ご利用ください。
一応、RSS もあります。


twitter__.png

RSS.png



引用元:アイドルマスターシンデレラガールズ
URL:http://www.bandainamcogames.co.jp/cs/list/idolmaster/social_m/
(C)窪岡俊之 (C)NBGI
スポンサーサイト
173.png


pulldown_mode が 1 ~ 5 の状態 ( フレーム数が 4/5 ) の状態でも
逆テレシネ前のフレーム番号を表示するようにしました。
ですが、実際には 1.25 倍しているだけなので、どのフレームを間引いているかは不確定で、信用できる数字は 5 の倍数のみとなります。


Import("C:\Program Files (x86)\AviSynth 2.5\avs\TrimClean.avsi")
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\AntiComb.dll")
/*
EasyPulldownCheck v0.2
by potatosub

pulldown_mode(0-6): 0=no pulldown
1=pulldown(0,2)
2=pulldown(1,3)
3=pulldown(2,4)
4=pulldown(0,3)
5=pulldown(1,4)
6=all pulldown preview
select_trim_num(1-): TrimNumber you want to preview
str_trim: TrimString all
*/
function EasyPulldownCheck(clip clip, int "pulldown_mode", int "select_trim_num", string "str_trim") {
Assert(select_trim_num>=1&&TrimCount(str_trim)>=select_trim_num,"Value of select_trim_num is invalid.")
Assert(pulldown_mode>=0&&pulldown_mode<=6,"Value of pulldown_mode is invalid.")
clip
global select_trim=TrimSelect(str_trim,select_trim_num)
select_trim_so_far=(select_trim_num>=2)?TrimsSelect(str_trim=str_trim, last_trim_cnt=select_trim_num - 1):""
global cnt= \
(pulldown_mode==0&&select_trim_so_far!="")?Eval(select_trim_so_far).FrameCount(): \
(pulldown_mode==1&&select_trim_so_far!="")?Eval(select_trim_so_far).DoubleWeave().Pulldown(0,2).FrameCount()-1: \
(pulldown_mode==2&&select_trim_so_far!="")?Eval(select_trim_so_far).DoubleWeave().Pulldown(1,3).FrameCount()-1: \
(pulldown_mode==3&&select_trim_so_far!="")?Eval(select_trim_so_far).DoubleWeave().Pulldown(2,4).FrameCount()-1: \
(pulldown_mode==4&&select_trim_so_far!="")?Eval(select_trim_so_far).DoubleWeave().Pulldown(0,3).FrameCount()-1: \
(pulldown_mode==5&&select_trim_so_far!="")?Eval(select_trim_so_far).DoubleWeave().Pulldown(1,4).FrameCount()-1: \
(pulldown_mode==6&&select_trim_so_far!="")?Eval(select_trim_so_far).DoubleWeave().Pulldown(0,2).FrameCount():-1
Eval(select_trim)
ConvertToYUY2()
AntiComb(checkmode=true)
ConvertToYV12()
last= \
(pulldown_mode==0)?ScriptClip("""SubTitle("Select Pulldown : Nothing", text_color=$ffffff, size=90, y=90*0)"""): \
(pulldown_mode==1)?DoubleWeave().Pulldown(0,2).ScriptClip("""SubTitle("Select Pulldown : Pulldown(0,2)", text_color=$ffffff, size=90, y=90*0)"""): \
(pulldown_mode==2)?DoubleWeave().Pulldown(1,3).ScriptClip("""SubTitle("Select Pulldown : Pulldown(1,3)", text_color=$ffffff, size=90, y=90*0)"""): \
(pulldown_mode==3)?DoubleWeave().Pulldown(2,4).ScriptClip("""SubTitle("Select Pulldown : Pulldown(2,4)", text_color=$ffffff, size=90, y=90*0)"""): \
(pulldown_mode==4)?DoubleWeave().Pulldown(0,3).ScriptClip("""SubTitle("Select Pulldown : Pulldown(0,3)", text_color=$ffffff, size=90, y=90*0)"""): \
(pulldown_mode==5)?DoubleWeave().Pulldown(1,4).ScriptClip("""SubTitle("Select Pulldown : Pulldown(1,4)", text_color=$ffffff, size=90, y=90*0)"""): \
(pulldown_mode==6)? \
ShowFiveVersions( \
DoubleWeave().Pulldown(0, 2).Subtitle("Pulldown(0, 2)", size=90), \
DoubleWeave().Pulldown(1, 3).Subtitle("Pulldown(1, 3)", size=90), \
DoubleWeave().Pulldown(2, 4).Subtitle("Pulldown(2, 4)", size=90), \
DoubleWeave().Pulldown(0 ,3).Subtitle("Pulldown(0, 3)", size=90), \
DoubleWeave().Pulldown(1, 4).Subtitle("Pulldown(1, 4)", size=90)):last
ConvertToYUY2()
AntiComb(checkmode=true)
ConvertToYV12()
(pulldown_mode==0)? \
ScriptClip(last, """SubTitle("Current Frame (5/5) : " + string(cnt + current_frame + 1), text_color=$ffffff, size=90, y=90*2)"""): \
ScriptClip(last, """SubTitle("Current Frame (4/5) : " + string(cnt + current_frame + 1), text_color=$ffffff, size=90, y=90*1)"""). \
ScriptClip("""SubTitle("Current Frame (5/5) : " + string(Floor((cnt + current_frame + 1)*1.25))+" (About)", text_color=$ffffff, size=90, y=90*2)""")

ScriptClip(last, """SubTitle("Current Trim : " + select_trim, text_color=$ffffff, size=90, y=90*3)""")
return last
}

function TrimsSelect(string "str_trim", int "last_trim_cnt", int "cnt", string "temp") {
cnt=default(cnt,0)
temp=default(temp,"")
cnt=cnt+1
val1=TrimSelect(str_trim, cnt)
val2=(cnt==1?"":"++")
temp=temp+val2+val1
return (cnt>=last_trim_cnt ? temp:TrimsSelect(str_trim, last_trim_cnt, cnt, temp))
}



twitter
↑参考になったという方は、是非記事のツイートをお願いします





関連リンク
メモ置き場 - 文字列のTrimを編集する関数集
Take-Rのメモ帳 - Avisynth + x264 を用いたTSファイルのエンコード - 下準備7 : 逆テレシネの周期チェック

関連記事
ソフトウェア - EasyPulldownCheck v0.1 (簡単な操作でプルダウンチェック)

ダウンロード
EasyPulldownCheck_v0.2.avsi



引用元:TVアニメ「東京レイヴンズ
©あざの耕平・すみ兵/株式会社KADOKAWA 富士見書房/東京レイヴンズ製作委員会


Tag:EasyPulldownCheck AviSynth 関数 Pulldown TrimClean AntiComb 東京レイヴンズ 大連寺鈴鹿 倉橋京子

自作のプルダウンチェッカーです。
結合された Trim を引数として渡し、select_trim_num で切り替えができます。
クリップフレーム番号(先頭 Trim からの通算)を表示します。
pulldown_mode を 0 にすると、プルダウンなし。
pulldown_mode を 6 にすると、Take-R さんの Pulldown_check.avs と同じように並べて表示します。
必要なものは、TrimClean.avsiAntiComb.dll です。
AntiComb.dll は AviSynth v2.5 以降非対応なので、LoadPluginEx を使ってください。

EasyPulldownCheck.jpg



EasyPulldownCheck(pulldown_mode=2, select_trim_num=3, str_trim="Trim(1,4435)++Trim(6235,22507)++Trim(24307,46333)++Trim(48133,48551)")

上記の要領で、3 番目の Trim をプレビューできます。



Import("C:\Program Files (x86)\AviSynth 2.5\avs\TrimClean.avsi")
LoadPlugin("C:\Program Files (x86)\AviSynth 2.5\plugins\AntiComb.dll")
/*
EasyPulldownCheck v0.1
by potatosub

pulldown_mode(0-6): 0=no pulldown
1=pulldown(0,2)
2=pulldown(1,3)
3=pulldown(2,4)
4=pulldown(0,3)
5=pulldown(1,4)
6=all pulldown preview
select_trim_num(1-): TrimNumber you want to preview
str_trim: TrimString all
*/
function EasyPulldownCheck(clip clip, int "pulldown_mode", int "select_trim_num", string "str_trim") {
Assert(select_trim_num>=1&&TrimCount(str_trim)>=select_trim_num,"Value of select_trim_num is invalid.")
Assert(pulldown_mode>=0&&pulldown_mode<=6,"Value of pulldown_mode is invalid.")
clip
global select_trim=TrimSelect(str_trim,select_trim_num)
select_trim_so_far=(select_trim_num>=2)?TrimsSelect(str_trim=str_trim, last_trim_cnt=select_trim_num - 1):""
global cnt= \
(pulldown_mode==0&&select_trim_so_far!="")?Eval(select_trim_so_far).FrameCount(): \
(pulldown_mode==1&&select_trim_so_far!="")?Eval(select_trim_so_far).DoubleWeave().Pulldown(0,2).FrameCount()-1: \
(pulldown_mode==2&&select_trim_so_far!="")?Eval(select_trim_so_far).DoubleWeave().Pulldown(1,3).FrameCount()-1: \
(pulldown_mode==3&&select_trim_so_far!="")?Eval(select_trim_so_far).DoubleWeave().Pulldown(2,4).FrameCount()-1: \
(pulldown_mode==4&&select_trim_so_far!="")?Eval(select_trim_so_far).DoubleWeave().Pulldown(0,3).FrameCount()-1: \
(pulldown_mode==5&&select_trim_so_far!="")?Eval(select_trim_so_far).DoubleWeave().Pulldown(1,4).FrameCount()-1: \
(pulldown_mode==6&&select_trim_so_far!="")?Eval(select_trim_so_far).DoubleWeave().Pulldown(0,2).FrameCount():-1
Eval(select_trim)
ConvertToYUY2()
AntiComb(checkmode=true)
ConvertToYV12()
last= \
(pulldown_mode==0)?ScriptClip("""SubTitle("Select Pulldown : Nothing", text_color=$ffffff, size=90, y=90*0)"""): \
(pulldown_mode==1)?DoubleWeave().Pulldown(0,2).ScriptClip("""SubTitle("Select Pulldown : Pulldown(0,2)", text_color=$ffffff, size=90, y=90*0)"""): \
(pulldown_mode==2)?DoubleWeave().Pulldown(1,3).ScriptClip("""SubTitle("Select Pulldown : Pulldown(1,3)", text_color=$ffffff, size=90, y=90*0)"""): \
(pulldown_mode==3)?DoubleWeave().Pulldown(2,4).ScriptClip("""SubTitle("Select Pulldown : Pulldown(2,4)", text_color=$ffffff, size=90, y=90*0)"""): \
(pulldown_mode==4)?DoubleWeave().Pulldown(0,3).ScriptClip("""SubTitle("Select Pulldown : Pulldown(0,3)", text_color=$ffffff, size=90, y=90*0)"""): \
(pulldown_mode==5)?DoubleWeave().Pulldown(1,4).ScriptClip("""SubTitle("Select Pulldown : Pulldown(1,4)", text_color=$ffffff, size=90, y=90*0)"""): \
(pulldown_mode==6)? \
ShowFiveVersions( \
DoubleWeave().Pulldown(0, 2).SubTitle("Pulldown(0, 2)", size=90), \
DoubleWeave().Pulldown(1, 3).SubTitle("Pulldown(1, 3)", size=90), \
DoubleWeave().Pulldown(2, 4).SubTitle("Pulldown(2, 4)", size=90), \
DoubleWeave().Pulldown(0 ,3).SubTitle("Pulldown(0, 3)", size=90), \
DoubleWeave().Pulldown(1, 4).SubTitle("Pulldown(1, 4)", size=90)):last
ConvertToYUY2()
AntiComb(checkmode=true)
ConvertToYV12()
(pulldown_mode==0)? \
ScriptClip(last, """SubTitle("Current Frame (5/5) : " + string(cnt + current_frame + 1), text_color=$ffffff, size=90, y=90*1)"""): \
ScriptClip(last, """SubTitle("Current Frame (4/5) : " + string(cnt + current_frame + 1), text_color=$ffffff, size=90, y=90*1)""")
ScriptClip(last, """SubTitle("Current Trim : " + select_trim, text_color=$ffffff, size=90, y=90*2)""")
return last
}

function TrimsSelect(string "str_trim", int "last_trim_cnt", int "cnt", string "temp") {
cnt=default(cnt,0)
temp=default(temp,"")
cnt=cnt+1
val1=TrimSelect(str_trim, cnt)
val2=(cnt==1?"":"++")
temp=temp+val2+val1
return (cnt>=last_trim_cnt ? temp:TrimsSelect(str_trim, last_trim_cnt, cnt, temp))
}




twitter
↑参考になったという方は、是非記事のツイートをお願いします





関連リンク
メモ置き場 - 文字列のTrimを編集する関数集
Take-Rのメモ帳 - Avisynth + x264 を用いたTSファイルのエンコード - 下準備7 : 逆テレシネの周期チェック

関連記事
ソフトウェア - EasyPulldownCheck v0.2 (簡単な操作でプルダウンチェック)

ダウンロード
EasyPulldownCheck.avsi



引用元:TVアニメ「東京レイヴンズ
©あざの耕平・すみ兵/株式会社KADOKAWA 富士見書房/東京レイヴンズ製作委員会


Tag:EasyPulldownCheck AviSynth 関数 Pulldown TrimClean AntiComb 東京レイヴンズ 大連寺鈴鹿

Import("TrimClean.avsi")
function TrimsSelect(string "str_trim", int "last_trim_cnt", int "cnt", string "temp") {
cnt=default(cnt,0)
temp=default(temp,"")
cnt=cnt+1
val1=TrimSelect(str_trim, cnt)
val2=(cnt==1?"":"++")
temp=temp+val2+val1
return (cnt>=last_trim_cnt ? temp:TrimsSelect(str_trim, last_trim_cnt, cnt, temp))
}

SubTitle(String(TrimsSelect("Trim(1,100)++Trim(201,300)++Trim(401,500)", 2))) = Trim(1,100)++Trim(201,300)

TrimSelect の 結合版
last_trim_cnt 番目までの Trim を返す
Import("TrimClean.avsi")
function TrimFrameCount(string str_trim,int "last_trim",int "total") {
total=default(total,0)
int_s=FindStr(TrimSelect(str_trim,last_trim), "(")
int_c=FindStr(TrimSelect(str_trim,last_trim), ",")
int_e=Findstr(TrimSelect(str_trim,last_trim),")")
int_range1=int_c-int_s-1
int_range2=int_e-int_c-1
val1=int(Value(MidStr(TrimSelect(str_trim,last_trim),int_s+1,int_range1)))
val2=int(Value(MidStr(TrimSelect(str_trim,last_trim),int_c+1,int_range2)))
temp=val2-val1+1
total=total+temp
last_trim=last_trim-1
return (last_trim<=0?total:TrimFrameCount(str_trim,last_trim,total))
}

SubTitle(String(TrimFrameCount("Trim(1,100)++Trim(201,300)", 2))) = 200

Trim コマンドのフレーム数算出
last_trim 番目の Trim コマンドまで集計
反復処理がないから再帰処理するしかない
フォント-凪のあすから
フォント名:FONTWORKS 筑紫書体

やはり多角関係のアニメって面白いですねーー
2 クール目から本領発揮しすぎです。
ちさきちゃん、たまんねぇ

ちさき

この団地妻生活観漂う服装とか、仕草とか、そそるよね…






関連記事
アニメ雑記 - アニメのフォントで遊んでみた
アニメ雑記 - アニメのフォントで遊んでみた 2回目
アニメ雑記 - アニメのフォントで遊んでみた 3回目
アニメ雑記 - アニメのフォントで遊んでみた 5回目

引用元:TVアニメ「凪のあすから」
© Project-118/凪のあすから製作委員会

Tag:フォント 団地妻 凪のあすから 比良平ちさき

あなたのエンコード作業効率を飛躍的に向上させるツール
その名も ATC


ATC とは、DGIndex AVS テンプレート機能を更に便利なものにする補助アプリケーションです。

せっかくなので PR 動画を作りました。
ステマじゃありません。モロマーケティングです。







細かい文字とか見えにくかったら HD 画質に切り替えて視聴してください。
なるべく初見の方でも解かり易いように心がけて作ったつもりですが…拡張編集なんて初めて触ったので四苦八苦でした。


twitter
↑参考になったという方は、是非記事のツイートをお願いします





関連記事
ソフトウェア - AutoTemplateChanger GUI v2.0 (AVSテンプレート機能拡張)
ソフトウェア - AutoTemplateChanger GUI v2.1 (AVSテンプレート機能拡張)
ソフトウェア - AutoTemplateChanger GUI v2.2 (AVSテンプレート機能拡張)
ソフトウェア - AutoTemplateChanger GUI v2.3 (AVSテンプレート機能拡張)
ソフトウェア - AutoTemplateChanger GUI v2.4 (AVSテンプレート機能拡張)
雑記 - AutoVFRを使ったATC2のテンプレートの使用例

ダウンロード
ATC2410_GUI.zip

Tag:ATC ATC2 コマンドプロンプト エンコード GUI CLI 自作 C# DGIndex Avisynth

DGAVCIndex.exe にも対応しました。
② 対応ソースファイル形式は「ts」「m2ts」「vob」「mp4」になりました。
拡張置換文字列を追加しました。
④ ソースファイルのパスに特定の文字列がある場合 (「in」「key」等 ) 正常に動作しないバグ修正しました。
⑤ 拡張置換の連番を廃止しました。( __001__ 等 )
どのように拡張置換されるか、一目で分かるビューを作成しました。
⑦ 「%VID」「__vid__」は、ソースの拡張子によって柔軟に変化するようにしました。

ATC2GUI2400.jpg

view.jpg
ヘルプ > 拡張置換ビュー


2014/3/13 追記 ディレイの置換にバグがあったので修正しました。


関連記事
ソフトウェア - AutoTemplateChanger GUI v2.0 (AVSテンプレート機能拡張)
ソフトウェア - AutoTemplateChanger GUI v2.1 (AVSテンプレート機能拡張)
ソフトウェア - AutoTemplateChanger GUI v2.2 (AVSテンプレート機能拡張)
ソフトウェア - AutoTemplateChanger GUI v2.3 (AVSテンプレート機能拡張)
雑記 - AutoVFRを使ったATC2のテンプレートの使用例

ダウンロード
ATC2400_GUI.zip
ATC2410_GUI.zip


Tag:ATC ATC2 コマンドプロンプト エンコード GUI CLI 自作 C# DGIndex Avisynth

Trim コマンドを変数に代入し、後に Eval でクリップをカットしているタイプの AVS ファイルでも
正常に動作するようにしました。
変数名は任意です。


str_trim="Trim(0,100)++Trim(200,300)++Trim(400,500)"
Eval(str_trim)


同一 AVS ファイル内の Eval より前の行で Trim コマンドが代入されている事が、正常読み込みの条件です。


関連記事
ソフトウェア - TrimLengthRegulator v1.0 (動画の長さを指定時間に調節する)
ソフトウェア - TrimLengthRegulator v1.1 (動画の長さを指定時間に調節する)

ダウンロード
TrimLengthRegulator v1.2.zip


Tag:自作 エンコード コマンドプロンプト CLI Avisynth TrimLengthRegulator

高速化に関して絶対的な正解はなく、環境によって最適な設定が異なるので難しい議題ですが
あくまで私の環境で役に立った情報をまとめてみました。

■ AviSynth

マルチスレッドを活用する

thread.jpg

コア数の多い CPU を使っていても、スレッドを 1 つしか使っていなかったら勿体無いです。
マルチスレッド( 通称 MT )化することによって、持て余しているスレッドを少しでも多く活用しましょう。

 SetMtMode() の追加
 blur(0.1) ⇒ MT("blur(0.1)")
 crop(0, 1, 0, 0) ⇒ crop(0, 1, 0, 0).TreadRequest()

しかし、MT 化することでエンコードが不安定になり、ランタイムエラーなどが発生する確率が上がります。
設定値を変更したり、MT 化する関数の取捨選択、順序の変更などにより解決することもあるので
じっくり調整して最適なスクリプトを組むと良いです。
どうしてもエラーが出る場合は SetMemoryMax() でメモリ領域を抑制することで落ちなくなったりもします。
余談ですが、時間軸に干渉するフィルタに対しては MT 系の処理を加えないほうがいいです。

mt.jpg



フィルタの順序を考え直す

フィルタの種類も重要ですが、種類を厳選したあとに出来ることは "順序" の設定です。
特に、重いフィルタをリサイズの "前" に使うのか "後" に使うのかによって速度に大きく影響します。
広い画像範囲をフィルタ加工するよりも、狭い画像範囲に加工したほうが処理量が少なくて済むからです。
また、 NR も一般的に 3 次元系2 次元系の順番に使うのが良いとされています。


色空間を考える

v2.5 以降からは YUY2(YUV422) や RGB 以外にも YV12(YUV420) という色空間を扱えるようになっています。
YV12 のクリップは最後まで YV12 のまま return しましょう。
途中で RGB などに変換すると速度が落ちます。
また、YV12 以外のクリップを読み込んで、様々なフィルタ加工をする場合は、予め ConvertToYV12() で変換しておいたほうが、エンコードが速くなると思います。
また、ソースの入力関数のオプションで色空間を指定するものも存在するので、そちらを利用するのも手です。

■ AviUtl

キャッシュフレーム数を増やす

AviUtl v1.00 のデフォルト値は 8 ですが、この "キャッシュフレーム数" の値を増やせば出力速度が向上します。
プレビューのシークのサクサク感も向上するので多少盛ることをお勧めします。

system.jpg
ファイル > 環境設定 > システムの設定

しかし、数値を上げすぎるとエンコード中にエラーで落ちる可能性が上がるので、環境に合わせて微調整が必要です。


フィルタの順序を考え直す

理由は AviSynth の同じ項で説明した通りです。

order.jpg
設定 > フィルタ順序の設定 > ビデオフィルタ順序の設定

ちなみに、上のスクリーンショットの順序は適当な物が多いので参考になさらないように…


入力プラグインを確認する

AviUtl はソースファイルの入力について、独自ロジックを使用していません。
外部プラグイン経由で読み込んでいるので、プラグインによって読み込み可能なファイル形式も様々です。
長所や短所をよく理解し、最適なプラグインで読み込む必要があります。
どのプラグインを使って読み込んでいるかの確認は、下記のダイアログで出来ます。

info.jpg
その他 > ファイルの情報

また、目的のプラグインを使って読み込みたい場合は、優先度の設定で上位に移動させてください。
読み込んだソースファイルの拡張子によって、上のプラグインから順に使用されます。

input.jpg
ファイル > 環境設定 > 入力プラグイン優先度の設定


■ その他

不要なメモリ使用領域を開放する

エンコードする時、メインメモリの空き領域が少ないと若干ですがエンコード速度に影響します。
メモリの開放ソフトは数多く存在しますが、ここでは Microsoft 純正のメモリ開放ソフト empty.exe をお勧めします。
下記の要領でバッチファイルに組み込めば、不要なメモリ領域を開放してくれます。

 empty.exe * > nul

こまめに使用すれば、常にベストなメモリ状態でのエンコードが望めます。
入手先はこちら


x264 のバージョン(ビルド)を変更する

x264.exe も日々進化しています。
稀にエンコード速度が大幅に改善されることがあるので、こまめにチェックすることをお勧めします。
参考:2ちゃんねる【x264+Avisynth】実用エンコベンチ Part3


マルチパスエンコードの場合、最終パス以外は null 出力する

ファイルに出力をすると、HDD へのアクセスでボトルネックが発生する可能性があります。
最終 pass でファイルが出力されればいいので、N-pass エンコの時は --output nul を活用しましょう。
AutoVFR のログ出力など、エンコードを走らせてログを採取することだけが目的のエンコードでも同じことが言えます。


AutoVFR は分割解析を利用する

ver 0.1.0.5 から、解析に分散処理が出来るようになり、ver 0.1.0.6 で利用方法が簡易化されています。
環境によって分割数の最適値は異なると思います。
私のマシンは 12 スレッドですが、実験を重ねた結果 4 分割が最速でした。
参考:Auto_VFR ver 0.1.0.6


AutoVFR の WriteFile をマルチスレッド化する

AutoVFR は解析した情報をログに出力しますが、Auto_VFR() 関数内でログを出力している部分をマルチスレッド化することによって解析スピードを高速化出来ます。
公式で勧められている方法なので是非活用しましょう。

autovfrmt.jpg

参考:ログの作成が遅い場合




twitter
↑参考になったという方は、是非記事のツイートをお願いします





Tag:エンコード Avisynth Aviutl AutoVFR

音声採取用 AVS

##### LOAD
video =AVCSource("_______.dga")
audio =NicLPCMSource("_______.dga PID 1100 DELAY 0ms.pcm", 48000, -16, 2)
AudioDub(video, audio)

return last



Dup ログ採取用 AVS

#### LOAD
AVCSource("_______.dga")

#### OUTLOG
DupMC(log="_______._dup.avs.log")

return last



AVI 出力用 AVS

SetMemoryMax(512)

##### LOAD
AVCSource("_______.dga")

##### MT
Crop(0, 0, 0, 0).ThreadRequest()

##### RESIZE
spline64resize(1280, last.height)
spline64resize(last.width, 720)

##### DEDUP
DeDup(threshold=0.345, threshold2=0.44, trigger2=100, range2=0, decwhich=3, dec=true, show=false, maxcopies=20, maxdrops=2, log="_______._dup.avs.log", times="_______._raw.tmc")

return last



AVI ファイル MT 化 AVS

SetMtMode(2,0)

##### LOAD
AVISource("_______._raw.avi", audio=false)

Crop(0, 0, 0, 0).ThreadRequest()
ConvertToYV12().ThreadRequest()

return last



バッチファイル

@echo off
cd /d %~dp0
cd C:\encode\encode
setlocal ENABLEDELAYEDEXPANSION

:PARAM
echo .
echo ***************************************
echo ** パラメータ
echo ***************************************
set titlejp=ここにタイトルを入力
set profile=フィルタタイプA
set tv=BD
set bit=1000
set cqm=20120512-04.cfg

echo .
echo ***************************************
echo ** ファイルパス
echo ***************************************
set aud=_______._aud.avs
set dup=_______._dup.avs
set raw=_______._raw.avs
set avi=_______._raw.avi
set avimt=_______._raw.avi.mt.avs
set tmc=_______._raw.tmc
set m2ts=_______.m2ts
set dga=_______.dga
set wav=_______.wav
set nml=_______.normal.wav
set m4a=_______.m4a
set temp=_______.enc.temp.mp4
set mp4=_______.enc.mp4
set npass=_______.x264_2pass.log

set file=%source%.mp4
set num=%file:~-10,2%
set num=%num: =%
set cfile=%titlejp% 第%num%話 (%tv%)HD.mp4

echo .
echo ***************************************
echo ** 実行ファイル
echo ***************************************
set ele="C:\encode\bin\EncLogEditor.exe"
set dgavc=C:\encode\dgavcdec109\DGAVCIndex.exe
set x264="C:\encode\bin\x264.r2358_win32.exe"
set utl="C:\encode\aviutl100\aviutl.exe"
set avs2wav="C:\encode\bin\avs2wav.exe"
set waveflt2="C:\encode\bin\waveflt2.exe"
set qtaacenc="C:\encode\bin\qtaacenc.exe"
set mp4box="C:\encode\bin\MP4Box.exe"
set EasyAlert="C:\encode\bin\EasyAlert.exe"
set Twitter="C:\encode\bin\TweetConsole\twtcnsl.exe"

:INIT
echo .
echo ***************************************
echo ** エンコードログ初期化
echo ***************************************
%ele% --delete_log 1

echo .
echo *****************************************************************************
echo **
echo **
echo ** %cfile% のエンコードを開始します
echo **
echo **
echo *****************************************************************************

:OUT_DGA
echo .
echo ***************************************
echo ** DGA 生成
echo ***************************************
%dgavc% -i %m2ts% -o %dga% -a -h

:DUP
echo .
echo ***************************************
echo ** DeDUPログ作成
echo ***************************************
%ele% --switch "DeDUP用ログ作成"
%x264% --bitrate 50000 --level 2.1 --preset ultrafast --me dia --trellis 0 --fast-pskip --no-weightb --b-adapt 0 --no-mixed-refs --partitions none --no-mbtree --no-dct-decimate --no-chroma-me --qcomp 0 --subme 0 --merange 4 --bframes 0 --ref 0 --aq-mode 0 --aq-strength 0 --psy-rd 0:0 --no-8x8dct --output nul %dup%

:AVI
echo .
echo ***************************************
echo ** 中間ファイル出力
echo ***************************************
%ele% --switch "エンコード(中間ファイル)"
%utl% %raw% -p %profile% -o %avi% -q

:WAV
echo .
echo ***************************************
echo ** 音声出力
echo ***************************************
%ele% --switch "音声出力"
%avs2wav% %aud% %wav%

:NORMAL
echo .
echo ***************************************
echo ** ノーマライズ
echo ***************************************
%ele% --switch "ノーマライズ(主音声)"
%waveflt2% -normal -.1 %wav% %nml%

:M4A
echo .
echo ***************************************
echo ** エンコード(音声)
echo ***************************************
%ele% --switch "エンコード(音声)"
%qtaacenc% --cbr 128 --samplerate auto --highest %nml% %m4a%

:MP4
echo .
echo ***************************************
echo ** エンコード(映像)
echo ***************************************
set OPT_1=--bitrate %bit%
set OPT_2=--ipratio 1.4 --pbratio 1.3 --qcomp 0.6 --qpmin 9 --qpmax 69 --qpstep 12 --scenecut 60 --min-keyint 24 --keyint 320
set OPT_3=--8x8dct --partitions "i4x4,i8x8,p8x8,b8x8" --bframes 6 --b-bias 25 --b-adapt 2 --ref 9 --b-pyramid normal --mixed-refs
set OPT_4=--me umh --subme 9 --merange 32 --direct auto --threads auto --deblock -1:-1 --no-dct-decimate --trellis 2 --cqmfile C:\encode\matrix\%cqm%
set OPT_5=--aq-strength 1.1 --psy-rd 1.0:0.0 --aq-mode 1 --tcfile-in %tmc% --timebase 1001/120000 --stats %npass%
set OPT_6=--level 4.1 --sar 1:1 --demuxer avs --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --asm AVX --ssim

%ele% --switch "エンコード(映像1)"
%x264% %OPT_1% %OPT_2% %OPT_3% %OPT_4% %OPT_5% %OPT_6% --pass 1 --output nul %avimt%

%ele% --switch "エンコード(映像2)"
%x264% %OPT_1% %OPT_2% %OPT_3% %OPT_4% %OPT_5% %OPT_6% --pass 2 --output %temp% %avimt% 2>%temp%.log

:MUX
echo .
echo ***************************************
echo ** MUX
echo ***************************************
%ele% --switch "MUX"
%mp4box% -add %temp%#video -add %m4a%:lang=jpn -new %mp4%

:ELE
echo .
echo ***************************************
echo ** ログ抽出
echo ***************************************
%ele% --in "%temp%.log" --out "%temp%.ele.log" --ssim --psnr --avgqp --8x8dct

:COPY
echo .
echo ***************************************
echo ** コピー
echo ***************************************
call ToFolder.bat %mp4% "%cfile%"
call ToFolder.bat %temp%.ele.log "%cfile%.log"

:ALERT
echo .
echo ***************************************
echo ** アラート
echo ***************************************
%Twitter% /t [自動ツイート] %cfile% のエンコードが完了しました。
%EasyAlert% "C:\encode\bin\finish.wav"

:DEL
echo .
echo ***************************************
echo ** 一時ファイルの削除
echo ***************************************
if exist %mp4% del %wav%
if exist %mp4% del %nml%
if exist %mp4% del %m4a%

if exist %mp4% del %temp%
if exist %mp4% del %temp%.log

if exist %mp4% del %npass%
if exist %mp4% del %npass%.temp
if exist %mp4% del %npass%.mbtree
if exist %mp4% del %npass%.mbtree.temp

rem if exist %mp4% del %avi%

ENDLOCAL



今回は プログレッシブな m2ts ファイルのエンコード用テンプレートをご紹介します。
これらを ATC2 のテンプレートに設定し、bat を叩けば自動でエンコードします。



■関連記事
最近のエンコード事情(工程編)
ソフトウェア - AutoTemplateChanger GUI v2.2 (AVSテンプレート機能拡張)
雑記 - AutoVFRを使ったATC2のテンプレート使用例

■ 関連サイト
DeDup by Loren Merritt


Tag:ATC2

インターレースTS ファイルの場合
DGIndex.exe で DeMux ( d2v + m4a )
d2vAVS(1) に読み込んで AutoVFR逆テレシネ ( 分割採取 )
 ┗ or ② d2v を Pulldown_check に読み込んで 逆テレシネ
③ 逆テレシネ済の AVS(2) を DeDUP重複フレームログ採取
④ DUP ログを読み込んだ状態の AVS(3) で NR 等のフィルタリングをして AviUtl に読み込んで再度フィルタリング
⑤ AviUtl から 可逆圧縮 avi 出力 ( Huffyuv )
⑥ avi を AVS(4) に読み込んで MT 化し、x264エンコード

プログレッシブM2TS ファイルの場合
DGAVCIndex.exe で DeMux ( dga + pcm )
dga を AVS(1) に読み込んで DeDUP で重複フレームログ採取
③ DUP ログを読み込んだ状態の AVS(2) を AviUtl に読み込んでフィルタリング
④ AviUtl から 可逆圧縮 avi 出力 ( Huffyuv )
⑤ avi を AVS(3) に読み込んで MT 化し、x264 でエンコード

■ 某海外サイトのプログレッシブな MP4 ファイルの場合
FLVExtractCL.exe と mp4box.exe で MP4 を再 MUX
② 再 MUX 後 の MP4 を L-SMASH Video Reader で AVS(1) に読み込んで DeDUP で重複フレームログ採取
③ DUP ログを読み込んだ状態の AVS(2) を AviUtl に読み込んでフィルタリング
④ AviUtl から 可逆圧縮 avi 出力 ( Huffyuv )
⑤ avi を AVS(3) に読み込んで MT 化し、x264 でエンコード


多様な AVS ファイルの準備が必要なので、ATC2 を走らせてます。
音声のエンコと 最終 MUX は省略しました。
赤字の工程は手動、それ以外はすべてバッチファイルが自動で処理します。
中間ファイルとして avi を出力している理由は、x264 のエンコード速度を向上させ、コーデックの調整にかかる時間を短縮する為です。


■ 関連記事
最近のエンコード事情(テンプレート編)
ソフトウェア - AutoTemplateChanger GUI v2.2 (AVSテンプレート機能拡張)
雑記 - AutoVFRを使ったATC2のテンプレート使用例

■ 関連サイト
DeDup by Loren Merritt


Tag:Avisynth AviUtl ATC2 CLI DeDup



WHAT'S NEW?

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。