2011/07/12

TDFM2EVFR的な何か

Triticalさん万歳!といいつつ、TFMとTDecimateの出力ファイルから適当に24/30/60判定してEasyVFR用のデータを吐くスクリプトを作ってみました。
要はConvEV↓と機能的には大体同じことをやるだけのスクリプト。
EasyVFR & Its 自動記述プログラム 1.10e エンコード初心者の部屋

・Avisynthな人向け
・言語はperlなので何やってるかは見てください しょーもないです
・主にTDecimateの出力を見て差分情報から24/30/60を判定 あとTFMからも何かもらう
・おぶじぇくと嗜好?なにそれおいしぃの
・スパゲティは好きですか?
・自分で使うために作っただけ
・CMカットが面倒でCMもそれなりにエンコードしようとしたらこうなった
なので期待はしないでください。


ダウンロード



更新履歴
110806 30pの判定をもうちょっとちゃんとやるようにした
110716 debug時の出力をコメントアウトするように変更
110712 公開してみる

使い方
1.↓みたいなavsでTFMとTDecimateの情報を出力
MPEG2Source(vsource,idct=4)

TFM(mode=1,order=-1,output="TFMout.txt")
TDecimate(mode=4,output="TDmetrics.txt")
return last


2.EasyVFR用の設定ファイルを出力
perl TDFManalyze.pl TFMout.txt TDmetrics.txt TDFMconf > output.txt



3.こっから先は好きな様にしてください
とりあえずEVFR2でtimecode出力

import(PluginDir+"EasyVFR_ver2.avs")
MPEG2Source(vsource,idct=4)

timecode="timecodev1.tmc"
import("output.txt")
trim(0,-1)
return last

function VFR24(clip clip){
clip
TFM(mode=1,order=-1,PP=7).TDecimate(mode=1)
return last
}

function VFR60(clip clip){
clip
temp1=last
interp=temp1.NNEDI3(field=-2,nns=1,nsize=4)
temp1.Tdeint(mode=1,type=3,mthreshL=8,mthreshC=8,edeint=interp,AP=64,APtype=1)
return last
}
function VFR30(clip clip){
clip
TFM(mode=1,order=-1)
return last
}

4.trim(0,-1)とtimecode="timecodev1.tmc"のところを変えたスクリプトを作り、
x264でtmcを指定してエンコード

x264 --tcfile-in "timecodev1.tmc" --timebase 1001/120000 encode.avs -o output.mp4


'110716
もうavisynth.infoさんに捕捉されてました。

'120429
ちょっとだけバージョンアップしました。
続・TDFM2EVFR的な何か

0 件のコメント:

コメントを投稿