お前らのショボイAvisynthスクリプト貼ってください
1 :
名無しさん@編集中 :
02/08/28 21:27 #も貼れ とっとと張れ
そんなバナナ
4 :
名無しさん@編集中 :02/08/28 22:23
>>3 UZEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
かまいたちの夜2の メインシナリオ「わらべ唄篇」の 犯人はキヨ(小林今日子) 共犯者は村上つとむ(今日子の弟) 動機は亜希(今日子の娘)の仇討ち=みどりの殺害 第一の被害者は正岡慎太郎=しん太郎 第二の被害者は香山夏美=女郎蜘蛛=ソープ嬢 第三の被害者はキヨ=人形 前作はフィクションという設定 最初の分岐はかまいたちの夜をプレイしたかどうか答えるもの
やまだかつてない糞スレですね
7 :
名無しさん@編集中 :02/08/28 22:57
いや名スレ
>>1 ショボイスクリプトとか言うなよ
こんなスレ名じゃ貼る気も起きん
せいぜい荒れるだけ荒れてくれ
#ASYNTHER filter
AVISource("G:\pvwork\T-20020828-004457.avi")
LoadPlugin("C:\FrPrg\Avisynth\_2DCleanYUY2.dll")
LoadPlugin("C:\FrPrg\Avisynth\lanczos3.vdf")
function AddRange(clip clip, int "startframe", int "offset")
{return clip.Trim( default(startframe,0), ((default(offset,0)==0)? 0 : startframe+offset-1) )}
#↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ここ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
AddRange(22456,431)+AddRange(23041,141)+AddRange(23699,370)+AddRange(24204,146)+AddRange(24837,800)
_2DCleanYUY2(1,2,1,1,0,3,3)
TemporalSoften(2,3,4)
#TemporalSoften(1,3,3)
#Lanczos3Resize(704,480)
#BilinearResize(320,240)#
#ResampleAudio(48000)
#
http://cultact-server.novi.dk/kpo/avisynth/avs_cvs.html
LoadPlugin("C:\Program Files\Avisynth\MPEG2DEC.dll") AudioDub(MPEG2Source("D:\Work\Saitama.d2v"),WAVSource("D:\Work\Saitama.wav")) DelayAudio(-0.066) Trim(931,3085)+Trim(4887,16754)+Trim(18913,39651)+Trim(41446,41569)
>10 わけわからん そんな使い方もできるのか わけわからんが aviからしかしないからなぁ
AVISource("foo.avi") Letterbox(60,60) ShowSMPTE(29.97) SelectEvery(30,0) Animate(0,300, "Subtitle", last, "高速度撮影1秒1コマのサンプル", 640,50,0,300,"MS明朝", 24, $00ccff, last, "高速度撮影1秒1コマのサンプル", -350,50,0,300,"MS明朝", 24, $00ccff) AssumeFPS(29.97)
13 :
名無しさん@編集中 :02/08/29 23:25
まじで?
14 :
名無しさん@編集中 :02/08/29 23:27
出島?
マジデジ、、、。
企画はよかったんだけどなあ。
>>1 逝ってよし
LoadPlugin("De.dll") LoadPlugin("lanczos3.vdf") LoadPlugin("warpsharp.dll") LoadPlugin("mpeg2dec.dll") LoadAviUtlInputPlugin("m2v.vfp", "MPEG2VIDEO") function CropBorders(clip clip, int left, int right, int top, int bottom) { return clip.Crop(left, top, clip.width-(left+right), clip.height-(top+bottom)) } AudioDub(MPEG2VIDEO("data.m2v"), WAVSource("data.wav")) trim(437,5321)+trim(7270,22823)+trim(24622,45331) AssumeFrameBased() ComplementParity() DeDot() Auto24FPS(true,24,16,"blend",false) #UVTimingH(0,0) #UVTimingV(0,0) SmartSmoothHiQ(2,256,12,12,6,false) WarpSharp(64) CropBorders(4,4,0,0) Lanczos3Resize(640,480) TemporalSmoother(2,3)
17 :
名無しさん@編集中 :02/08/31 12:54
18 :
名無しさん@編集中 :02/08/31 16:46
出島?
19 :
名無しさん@編集中 :02/08/31 19:09
絵島生島?
20 :
名無しさん@編集中 :02/08/31 20:48
まじでじま?
21 :
名無しさん@編集中 :02/09/01 00:23
TemporalSmootherなんてかけんな
22 :
名無しさん@編集中 :02/09/01 04:55
AVISource("エロ動画.avi") crop(0,7,2,1) # オナニー crop(4,5,4,5) # シコシコ crop(1,9,1,9) # イクイク return last
>>16 やっとカット編集の仕方がわかりましたありがとう
24 :
名無しさん@編集中 :02/09/05 03:11
>>24 人それぞれ。
自分の目でみて、そうしたんだったら、それでいいんじゃない?
どんなプラグインだって、結局ソースを加工するわけだから、
それが嫌いな人はいるもの。
カット編集とはなんでしょうか
ショボイいれないほうがよかったのか。。。 たて逃げしたの忘れてた。。
test
32 :
名無しさん@編集中 :02/09/11 12:09
ヽ、.三 ミニ、_ ___ _,. ‐'´//-─=====-、ヾ /ヽ
,.‐'´ `''‐- 、._ヽ /.i ∠,. -─;==:- 、ゝ‐;----// ヾ.、
[ |、! /' ̄r'bゝ}二. {`´ '´__ (_Y_),. |.r-'‐┬‐l l⌒ | }
゛l |`} ..:ヽ--゛‐´リ ̄ヽd、 ''''  ̄ ̄ |l !ニ! !⌒ //
. i.! l .::::: ソ;;:.. ヽ、._ _,ノ' ゞ)ノ./
` ー==--‐'´(__,. ..、  ̄ ̄ ̄ i/‐'/
i .:::ト、  ̄ ´ l、_/::|
! |: |
ヽ ー‐==:ニニニ⊃ !:: ト、
おれたちはとんでもない思い違いをしていたようだ。これを見てみろ。
まず「クソスレ」を英字で表記する
『KUSOSURE』
これを逆にすると、
『ERUSOSUK』
そしてこれを更に日本語に直すと
『エルソサク』
スレを立てたのが
>>1 と言う事を考えれば末尾に『クソスレ』を加えるのが当然だ。
すると導き出される解は
『エルソサククソスレ』
そして最後の仕上げに意味不明な文字『エルソサク』
これはノイズと考えられるので削除し残りの文字をソート。
するとできあがる言葉は・・・・・・『クソスレ』。
つまり!『クソスレ』とは『まさにこのスレッド』を表す言葉だったのだ!!
33 :
名無しさん@編集中 :02/09/11 12:10
ご苦労
ヽ、.三 ミニ、_ ___ _,. ‐'´//-─=====-、ヾ /ヽ
,.‐'´ `''‐- 、._ヽ /.i ∠,. -─;==:- 、ゝ‐;----// ヾ.、
[ |、! /' ̄r'bゝ}二. {`´ '´__ (_Y_),. |.r-'‐┬‐l l⌒ | }
゛l |`} ..:ヽ--゛‐´リ ̄ヽd、 ''''  ̄ ̄ |l !ニ! !⌒ //
. i.! l .::::: ソ;;:.. ヽ、._ _,ノ' ゞ)ノ./
` ー==--‐'´(__,. ..、  ̄ ̄ ̄ i/‐'/
i .:::ト、  ̄ ´ l、_/::|
! |: |
ヽ ー‐==:ニニニ⊃ !:: ト、
おれたちはとんでもない思い違いをしていたようだ。これを見てみろ。
まず「ワープシャープ」を英字で表記する
『warpsharp』
これを逆にすると、
『prahspraw』
そしてこれを更に日本語に直すと
『プラースプラーウ』
プラグインを作ったのが
>>80 と言う事を考えれば末尾に『80』を加えるのが当然だ。
すると導き出される解は
『プラースプラーウ80』
そして最後の仕上げに意味不明な文字『プラースプラーウ』
これはノイズと考えられるので削除し残りの文字をソート。
するとできあがる言葉は・・・・・・『80』。
つまり!『80』とは『まさにこのプラグイン』を表す言葉だったのだ!!
良スレage
なんでageるの? 馬鹿じゃねーの??お前???
unsharpmaskに惚れたぜ
>>38 神!
でもMSVCP70.dllが無いぞおって怒られるので探してきます。
41 :
名無しさん@編集中 :02/11/18 01:27
warpsharpの11月版きぼんぬ
mtv死んじゃったね・・・。好意でやってたのにヴァカが荒らしすぎたな。
43 :
名無しさん@編集中 :02/11/30 13:53
age
おお、俺の立てたスレだ
ここは古いが、何となくAvisynthの敷居を低くしてくれるから保守でもしておくか。
(^^)
function AddRange(clip clip, int "startframe", int "offset") { return clip.Trim( default(startframe,0), ((default(offset,0)==0)? 0 : startframe+offset-1) ) } AVIsource("C:\Documents and Settings\21\デスクトップ\20030110-215824.avi") LoadPlugin("C:\WINNT\AddRange.dll") AddRange("C:\Documents and Settings\21\デスクトップ\a.vcf") #LoadPlugin("C:\f\_2DCleanYUY2.dll") #_2DCleanYUY2(0,2,2,2,0,2,2) #症状はどうも編集したはずのvcfを読んでるはずなのにぜんぜん編集されてないんです
function AddRange(clip clip, int "startframe", int "offset") {return clip.Trim( default(startframe,0), ((default(offset,0)==0)? 0 : startframe+offset-1) )} AVIsource("C:\Documents and Settings\21\デスクトップ\20030110-220039.avi") LoadPlugin("C:\Documents and Settings\21\デスクトップ\warpsharp\warpsharp.dll") searchghostv(38788,8,48,1,"C:\Documents and Settings\21\デスクトップ\aaa") LoadPlugin("C:\WINNT\AddRange.dll") AddRange("C:\Documents and Settings\21\デスクトップ\a.vcf") LoadPlugin("C:\f\Convolution3D.dll") Convolution3D (0, 3, 4, 3, 4, 2.8, 0) #LoadPlugin("C:\f\_2DCleanYUY2.dll") #_2DCleanYUY2(0,2,2,2,0,2,2)
49 :
名無しさん@編集中 :03/01/26 11:56
addrange.dll
#プラグイン読み込み PluginDir = "C:\Avisynth2.5\" LoadPlugin( PluginDir + "MPEG2DEC3.dll" ) LoadPlugin( PluginDir + "LoadPluginEx.dll") LoadPlugin( PluginDir + "WarpSharp.dll" ) LoadPlugin( PluginDir + "Convolution3DYV12.dll") LoadPlugin( PluginDir + "AddRange_for_25.dll") LoadPlugin( PluginDir + "IT.dll") LoadPlugin( PluginDir + "ColorYUY2_for_25.dll") #映像・音声読み込み SourceDir = "E:\0117\" FileName = "ゴクドーくん (20030127-0645)" MPEG2Source( SourceDir + FileName + ".d2v",CPU=4,iDCT=2 ) AudioDub( last, WavSource( SourceDir + FileName + ".wav" ) )
#CMカット AddRange( SourceDir + FileName + ".vcf" ) #24fps & インターレース解除(不完全) V12toYUY2.FrameCache(9).IT(fps = 24, ref = "TOP", blend = true).ConvertToYV12() #クロップ crop(92,0,528,480) #ノイズリダクション FrameCache(9).Convolution3d(1, 8, 16, 8, 8, 2.8, 0) FrameCache(9).KenKunNRT(176,2,20)#AviUtlノイズ除去(時間軸) #FrameCache(9).KenKunNR(176,1,12)#AviUtlノイズ除去 #ぼかし WarpSharp(depth=64, blur=2, bump=72, cubic=-0.6) #シャープ化 #(ノイズリダクション&ぼかしの前の映像のときのシャープさを基準に設定) Xsharpen(86,7) #帯付加 #addborders(8,0,8,0) #addborders(0,0,0,2) #サイズ調整 LanczosResize(640,480) #色調整 YV12toYUY2.ColorYUY2(gain_y=3,gamma_y=7,cont_y=1,cont_u=8,cont_v=6,debug=1,hscale=50,x=200,y=200) #YV12toYUY2
山崎渉
55 :
名無しさん@編集中 :03/01/28 15:31
IT(fps = 24, ref = "TOP", blend = true)は線が残るぞ。 そんなにノイズフィルタ使うなら LoadPlugin("D:\Avisynth\Decomb.dll") Telecide(chroma=true,dthreshold=13) Decimate(cycle=5) くらいやれよ。
>そんなにノイズフィルタ使うなら ソースがBSデジタルなのだが、古いために 汚いと思われる。みてみたが、 かなりざらざらしてた。 LoadPlugin("D:\Avisynth\Decomb.dll") Telecide(chroma=true,dthreshold=13) Decimate(cycle=5) これってカク付くっていう結論だったと思うが どうたったかなぁ。
IT003() Decimate(cycle=5) これいいぞ
DVD実写(CG含)映画でも、インタレ解除とノイズ系はかなり気を使うのだが・・・ SetMemoryMax(40) LoadPlugin("IT.dll") LoadPlugin("ColorYUY2.dll") LoadPlugin("decomb.dll") LoadPlugin("MPEG2Dec3.dll") LoadPlugin("warpsharp.dll") LoadPlugin ("lanczos3.vdf") LoadPlugin("Convolution3D.dll") Import("aufilters.avs") mpeg2source("D:\SW\SW.d2v",cpu=1,moderate_h=30,moderate_v=50,iDCT=3) crop(8,60,704,360) ColorYUY2(Levels="TV->PC") Telecide(reverse=true,agg=true,swap=false,blend=false,chroma=true,guide=1) IT(fps=24,ref="TOP",blend=false,pthreshold=10000) ConvertYUY2ToAviUtlYC() AU_deint2(50,50,15,60,10,false,true,false,true,true,false,false) ConvertAviUtlYCToYUY2() Convolution3d(preset="movieHQ") FrameCache(5).KenKunNRT(192,2,16) ConvertYUY2ToAviUtlYC() AU_waveletNR_G(2,150,150,125,100,70,40,100,90,70,60,50,10,55,80,0,true,true,true,true) ConvertAviUtlYCToYUY2() WarpSharp(depth=48, blur=3, bump=60, cubic=-0.6) ColorYUY2(off_y=20,cont_y=45,gamma_y=60,gain_y=0) Lanczos3Resize(640,272) return last 2.07でSW-epi1エンコ中、なんだカンダでスクリプツ長くなるんだが。 やりすぎか、んっ?
>>58 ColorYUY2(Levels="TV->PC")はイラネんじゃねえの?
今日からはじめた。なんか映像がのっぺりしてる #プラグイン読み込み LoadPlugin("C:\Avisynth\PlugIn\De.dll") LoadPlugin("C:\Avisynth\PlugIn\mpeg2dec.dll") LoadPlugin("C:\Avisynth\PlugIn\TomsMoComp.dll" ) LoadPlugin("C:\Avisynth\PlugIn\TemporalSoften2.dll") #ソース読み込み MPEG2Source("C:\Avisynth\file\1.d2v") #クロスカラー除去、ドット妨害低減 DeDot(20,20,15,5)#(luma2d,lumaT,chromaT1,chromaT2) #DeDotA(15,8) #アニメ適応(dot,motion2) #インタレース解除 TomsMoComp(1,6,1) #ノイズ除去 #3DNRフィルタ TemporalSoften2 TemporalSoften2(2,6,6) #下のノイズを削るCropBottom(ピクセル数) CropBottom(4) #リサイズ BilinearResize(640,480) return last#おわり
TomsMoComp使ってるから実写なのかな? Lanczos3ResizeかLanczosResize使えば少しは幸せになれるかも
62 :
名無しさん@編集中 :03/03/11 01:39
LoadAviUtlInputPluginを認識してくれないんですが・・(汗
ノペーリはTemporalSoften2でしょ
では3DNRは何がよいのでつかにゃ?
Convolution3Dかな?
66 :
名無しさん@編集中 :03/03/18 20:15
君がいるだけで、、、
Convolution3D TemporalSmoother ウェーブレット・ノイズフィルタType-G(LoadAviUtlFilterPluginにて) の順でNRかけると、すっごく重い。 でも、まぁ、時間がかかる分、よくなった気がした。
気がするだけだってば。時間かける≠綺麗
>>67 それ、細部つぶれてるでしょ?(ここまでして綺麗ってことはアニメだよね?)
雨線とか消えてると思われる。
あと、元ソースがTVのノイズシーンとかだとそこまでNR効いてのっべりしてな
い?
そういうのがきれいだと私も思ってたから否定はしないが…
>>69 パラメータによるが・・・
強いと細い雨の線は微妙に消えてる。でも何か残ってる感じはあるかなぁ。
自分は、アニメならその程度気にしない派だな、きっと。
FilterRangeていうものがあるから、消したくなければ弱めにかければいいし。
まっ_2DCleanYUY2よりはマシと思ったんよ。
ウェーブレット3DNR2(LoadAviUtlFilterPluginにて) TemporalSmoother ウェーブレット・ノイズフィルタType-G(LoadAviUtlFilterPluginにて) の順でNRかけると、さらにとんでもなく重かった。 でも、Convolution3Dより縮むし、綺麗になった気もするし、ウェーブレット3DNR2って凄すぎ。 やっぱ、AviUtlのフィルタは優秀だな。
そこまでするなら、AviUtlのみ使えや
AviUtlだけじゃ糞重いって。 だからAviUtlのフィルタも使えるAvisynthってステキ。
(^^)
∧_∧ ( ^^ )< ぬるぽ(^^)
>>72 AVIutlはまともなYUY2吐かないイヤ
PluginDir = "C:\Avisynth25\Plugins\" LoadPlugin( PluginDir + "warpsharp.dll") LoadPlugin( PluginDir + "LoadPluginEx.dll") LoadPlugin( PluginDir + "mpeg2dec3.dll") mpeg2source("D:\Record\narutoOP.d2v") AssumeFrameBased().ComplementParity() ConvertToYUY2() FrameCache(9).AutoDeint("") ConvertToYV12() FrameCache(6).KenKunNRT(160,1,16) FrameCache(6).KenKunNR(184,1,16) WarpSharp(depth=96, blur=3, bump=96, cubic=-0.6) Crop(8,4,-14,0) Letterbox(0,0,4,4) LanczosResize(640,480) return last 手抜きエンコ。普段Letterbox使わないけどナルトは右端にノイズが残るのでやむをえず。 ちなみにこれで8〜10fpsくらい出ます>Pen4 2.13GHz RAM 1024GB WinXP DivX5.0.2
LoadPlugin("De.dll") LoadPlugin("warpsharp.dll") LoadPlugin("IT.dll") LoadPlugin("Convolution3D.dll") OpenDMLSource("e:\sample.avi") DelayAudio(0.1) AssumeFramebased().ComplementParity() UVTimingH(-2,-2,false) DeDot() FrameCache(9).Auto24fps (false,24,16,"blend",false) FrameCache(9).IT(fps=24,ref="TOP",blend=false,pthreshold=10000) FrameCache(6).Convolution3D("movieLQ") FrameCache(6).KenKunNRT(96,2,20) KenKunNR(128,2,6) FrameCache(8).WarpSharp(depth=64, blur=2, bump=96, cubic=-0.6) return last
79 :
名無しさん@編集中 :03/05/04 23:10
80 :
名無しさん@編集中 :03/05/15 18:02
LoadPlugin( PATH + "MPEG2dec3.dll" ) LoadPlugin( PATH + "Decomb.dll" ) #yv12 LoadPlugin( PATH + "WarpSharp.dll" ) #yv12 LoadPlugin( PATH + "Convolution3DYV12.dll" ) #yv12 LoadPlugin( PATH + "FluxSmooth-2.5.dll" ) #yv12 mpeg2source( "E:sample.d2v" ) Telecide(guide=1,chroma=true,dthreshold=13,blend=false) Decimate(mode=2) FluxSmooth(temporal_threshold=10,spatial_threshold=10)#default=7 Convolution3D(preset="animeHQ") KenKunNRT(128,2,16) KenKunNR(128,2,2) WarpSharp(depth=64,blur=2,bump=72,cubic=-0.6) Crop(4,0,716,480) LanczosResize(640,360) Levels(0,1.050,255,0,255) return last
Levelsなんて過去の遺物みたいな気がするね。問題ありすぎ。 gammaを使いたかったら、ColorYUV(ColorYUY2),Tweakあたりを使えば?
83 :
名無しさん@編集中 :03/05/17 23:21
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
アニメで解像度、FPSを下げず(30->24は除く)に、満足のいく画質で容量を減らすスクリプツきぼんぬ。 DivX5
アフォ
>>85 LanczosResize(512,384)
>>85 Crop(300, 220, 40, 40).AddBorders(300,220,300,220)
>>85 _2DCleanYUY2(0,100,2,2,0,0,0)
10 print"バカ" 20 goto10 30 end run
91 :
名無しさん@編集中 :03/07/06 14:08
バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ バカ
disk I/O Error!! out of memory ok >>■
海苔かえせよ〜
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
保守
96 :
名無しさん@編集中 :03/09/14 02:18
勉強になった
97 :
名無しさん@編集中 :03/09/14 06:58
ConvertYUY2ToAviUtlYC() FrameCache(6).AU_wavelet3DNR2() ConvertAviUtlYCToYUY2()
>>97 それ動くの?
GPUと一緒でConvertYUY2ToAviUtlYC()ーConvertAviUtlYCToYUY2()間は
別フィルタつけられないかと思ってた
99 :
名無しさん@編集中 :03/10/15 17:36
LoadPlugin("C:\Program Files\AviSynth2\plugins\MPEG2Dec\MPEG2DEC3.dll") LoadPlugin("C:\Program Files\AviSynth2\plugins\IT\IT.dll") LoadPlugin("C:\Program Files\AviSynth2\plugins\ws\warpsharp.dll") LoadPlugin("C:\Program Files\AviSynth2\plugins\convolution3dyv\Convolution3DYV12.dll") MPEG2Source("T:\CAPS\n1.d2v") AudioDub(last,WavSource("T:\CAPS\n1.wav")) FrameCache(9).IT(fps=24,ref="TOP",blend=false) FrameCache(9).Crop(8,0,-6,-0) FrameCache(9).Convolution3d (preset="animeHQ") FrameCache(9).KenKunNR(128,2,2) FrameCache(9).BilinearResize(640,480) return last 特徴無いな、、
ホントにショボイな
うっせーハゲ
SetMemoryMax(64)
FrameCache()とIT()組み合わせても速度変わらんぞ。 FrameCache()使用時のほうが若干(1%程)遅くなる。
FrameCacheの値を変えてもダメ? ウチの環境だと5で最速、4でも6でも目に見えて遅くなるんだが
>>104 いろいろ試してみたが、最終的な時間は変わらない。
ただ、値によってエンコ中の速度変化がある。
IT()とAuto24FPS()の併用だからまずいのかも。
Auto24fps(false,24,16,"",false) IT(fps = 24, ref = "TOP", blend = false, diMode = 2)
107 :
名無しさん@編集中 :03/10/28 18:37
LoadPlugin("C:\Program Files\Avisynth2\Plugins\MPEGDecoder.dll") LoadPlugin("C:\Program Files\Avisynth2\Plugins\De.dll") LoadPlugin("C:\Program Files\Avisynth2\Plugins\Convolution3D.dll") LoadPlugin("C:\Program Files\Avisynth2\Plugins\TomsMoComp.dll") LoadPlugin("C:\Program Files\Avisynth2\Plugins\IT.dll" ) LoadPlugin("C:\Program Files\Avisynth2\Plugins\ColorYUY2.dll" ) LoadPlugin("C:\Program Files\Avisynth2\Plugins\warpsharp.dll" ) DeDot(20,20,15,5) TomsMoComp(1,5,0) Convolution3D (0, 32, 128, 16, 64, 10, 0) TemporalSoften(3,6,8) WarpSharp(depth=62, blur=2, bump=72, cubic=-0.6) LanczosResize(640,480) letterbox(0, 8, 0) 主にエロビデ、エロDVDをエンコしてまつ・・・ 特徴なしですが。 何か入れたほうがイイってやつありましたらキボン。
このスレはぼくが立てました ショボイを抜かせばもっと盛り上がった気がしてなりません 若気の至りでした
>>107 こんなにかけててろてろにならないんかな
ぼくちんもConvolution3DとTemporalSoftenでまんねりだから
なんか新しいのがほしいよね
110 :
名無しさん@編集中 :03/10/29 20:08
>110 う〜ん・・・ TemporalSoftenを外して、Convolution3Dだけでノイズ系はOKでしょうか? mtv2000使ってるんだけど、キャプチャ時にMTVでノイズリダクション掛けて あれば必要なしですか?
ソースが綺麗なら掛けなくてもいいぐらい
えっ、その目で見てどうだか判らんの? 見て判らんのなら好きなようにしてくれ。
114 :
名無しさん@編集中 :03/11/01 21:24
すみません、質問なんですが・・・ LoadPlugin("C:\Program Files\Avisynth2\Plugins\MPEGDecoder.dll") LoadPlugin("C:\Program Files\Avisynth2\Plugins\De.dll") LoadPlugin("C:\Program Files\Avisynth2\Plugins\mpeg2dec.dll") LoadPlugin("C:\Program Files\Avisynth2\Plugins\Convolution3D.dll") LoadPlugin("C:\Program Files\Avisynth2\Plugins\TomsMoComp.dll") LoadPlugin("C:\Program Files\Avisynth2\Plugins\IT.dll" ) LoadPlugin("C:\Program Files\Avisynth2\Plugins\ColorYUY2.dll" ) LoadPlugin("C:\Program Files\Avisynth2\Plugins\warpsharp.dll" ) ###2.ソースの読み込み### #---映像(AVI)ソースの読み込み--- AVISource("E:\UNTITLED\1_d2v_vfapi.avi") #---音声(WAVE)ソースの読み込み--- WavSource("E:\UNTITLED\1 AC3 T01 2_0ch 192Kbps 48KHz.wav") #---映像と音声の合成--- AudioDubAVISource("E:\UNTITLED\1_d2v_vfapi.avi"),WavSource("E:\UNTITLED\1 AC3 T01 2_0ch 192Kbps 48KHz.wav")) DVD Decrypterでリッピングし、DVD2AVI でプロジェクトを吐き出し、 VFAPIConvでさらにプロジェクトファイル1_d2v_vfapi.aviを吐き出して、 上記のようなスクリプトにしていますが、VirtualdubMODでAVISYNTH経由で 読み込もうとすると、上手く読み込めずにVirtualdub自体が落ちて消えてしまいます。 DVDリップしたものを、Avisynth経由でvirtualdubでエンコしたい場合、 どのようにすればよいのでしょうか?
>>114 それ、わけわからん。
それだと、Avisynth2.0系でも2.5系でもダメだろう。
フィルタがゴッチャ。
読み込み行く前に落ちてるはず。
また、例えフィルタのロードをクリアしても、読み込みが酷くてエラーになる。
めちゃくちゃ。
マニュアルをまず読め。
にーやんとこ行ってサンプル使え。
>115 いちおう、カノプーのボードからキャプったMPEGソースとかだと、 普通にAvisynth経由でエンコ出来ているんですけど・・・ 新しくなっているようなので、にーやんのページを読んで一から 出直してきます。ありがとうございました。
>>114 でつ・・・。
にーやんさんの所を読み、Avisynth2.5に乗り換えてみました。
前回と同じことなんですが・・・
DVD Decrypterでリッピングし、DVD2AVI(ver1.76) でプロジェクトファイル
(・・・d2v)を吐き出し、 下記のようなスクリプトにしていますが、VirtualdubMOD
でAVISYNTH経由で 読み込もうとすると、上手く読み込めずにエラーが出ます。
(mpegソースを開くことが出来ませんって感じのメッセージが出ます)
DVDリップしたものを、Avisynth経由でvirtualdubでエンコしたい場合、
どのように訂正すればよいのでしょうか?
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\MPEG2DEC.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\De.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mpasource.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\TomsMoComp.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\IT.dll" )
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\Convolution3D.dll" )
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\warpsharp.dll" )
MPEG2Source("E:\CAP\1.d2v")
#AVISource("E:\Cap\映像ファイルの名前.avi")
AudioDub(last,WavSource("E:\Cap\1 AC3 T01 2_0ch 192Kbps 48KHz.wav"))
DeDot(20,20,15,5)
TomsMoComp(1,5,0)
#Crop(8,0,704,480)
WarpSharp(depth=64, blur=2, bump=72, cubic=-0.6)
#LanczosResize(640,480)
return last
119 :
名無しさん@編集中 :03/11/03 22:17
綺麗なソース用です #--- プラグイン読み込み --- LoadPlugin("C:\Avisynth\mpeg2dec3.dll") LoadPlugin("C:\warpsharp_2003_0910\WarpSharp.dll") LoadPlugin("C:\Avisynth\Plugins\DEEN.dll") LoadPlugin("C:\Avisynth\Plugins\Convolution3dYV12.dll") LoadPlugin("C:\Avisynth\Plugins\ColorYUY2_for_25.dll") MPEG2Source("G:\test.d2v") Crop(4,0,-4,0) Convolution3d(0, 0, 0, 5, 3, 2.8, 0) DEEN("a2d",2,3,3) #--- シャープ・ぼかし --- WarpSharp(depth=50, blur=3, bump=50, cubic=-0.6) #--- 色調補正 --- ColorYUY2(0,0,0,0, 0,0,0,100, 0,0,0,100) #y u vの順に(gain,off,gamma,cont) #ヒストグラム表示(YUV) #--- リサイズ --- LanczosResize(640,480) return last
>>114 です。
こちらは人も少ないようなので、絶賛しようよスレの方でお尋ね
させていただこうと思います。
すみません・・・、スレ汚しご勘弁を。
saturation = 1.07 cu = - (1-saturation)*256 ColorYUY2(off_y=-3, gain_y=-6, gamma_y=0, off_u=-2, off_v=-0, cont_u=cu, cont_v = cu)
ColorYUY2(off_y=-3, gain_y=-6, gamma_y=0, off_u=-2, off_v=-0, cont_u=cu, cont_v = cu, opt="16-254")
function CR(clip"clip", int"start", int"end", int"left", int"top", int"WidthC", int"HeightC", \ string"Type", int"WidthR", int"HeightR") { WidthL = \Type == "VGA" ? 640 : \Type=="Wide"? 704 : \Type=="XGA"? 1024 : \Type=="HDWide"? 1024 : WidthR HeightL = \Type == "VGA" ? 480 : \Type=="Wide"? 396 : \Type=="XGA"? 768 : \Type=="HDWide"? 576 : HeightR clip=clip.Trim(start,end).crop(left,top,WidthC,HeightC).LanczosResize(WidthL,HeightL) return clip } c1 = clip1.CR(0,100, 4,0,712,480,"VGA") c2 = clip1.CR(101,200, 8,0,704,480,"VGA") c3 = clip1.CR(201,0, 4,0,712,480,"VGA") last = c1 ++ c2 ++ c3 無駄なことしてる気がしないでも... 異なるcrop値を扱う場合はクリップを別にするしかないのかな
function YUY2(clip clip, string "filter", bool "interlaced", string "return_color", bool "return_interlaced") { color_space = clip.IsYV12() ? "YV12" : clip.IsYUY2() ? "YUY2" : clip.IsRGB32() ? "RGB32" : \ clip.IsRGB24() ? "RGB24" : clip.IsRGB() ? "RGB" : "UnKnown" assert(color_space != "UnKnown","YUY2(): UnKnownColorSpace") yuy2filter = clip.IsYUY2() ? clip : clip.ConvertToYUY2(default(interlaced, false)) yuy2filter = Eval("yuy2filter." + filter) return_color = default(return_color, color_space) return return_color == "YUY2" ? yuy2filter : \ return_color == "YV12" ? yuy2filter.ConvertToYV12(default(default(return_interlaced,interlaced), false)) : \ return_color == "RGB24" || return_color == "RGB" ? yv12filter.ConvertToRGB24() : \ return_color == "RGB32" ? yuy2filter.ConvertToRGB32() : \ yuy2filter } 微妙に使いづらいかも
function Recrop(clip"clip", int"start", int"end", int"left", int"right", int"top", int"bottom") { WidthT = clip.width() HeightT = clip.height() c1 = start < 2 ? clip.trim(0, -1) : clip.trim(0, start - 1) c2 = clip.Trim(start,end).crop(left,top,width(clip)-(left+right),height(clip)-(top+bottom)).LanczosResize(WidthT,HeightT) c3 = clip.Trim(end+1,0) c = start == 0 ? c2 : c1 ++ c2 c = end == 0 ? c : c ++ c3 return c } nullinfoのFilterRangeを改造してみました。 これでcropの範囲指定が出来ますが、 一回リサイズ噛んでるから良くないかもしれません...
ユーザー定義関数を開発する人なんか凄い
function YV12(clip clip, string "filter", string "return_color", bool "interlaced", bool "return_interlaced") { color_space = clip.IsYV12() ? "YV12" : clip.IsYUY2() ? "YUY2" : clip.IsRGB32() ? "RGB32" : \ clip.IsRGB24() ? "RGB24" : clip.IsRGB() ? "RGB" : "UnKnown" assert(color_space != "UnKnown","YV12(): UnKnownColorSpace") yv12filter = clip.IsYV12() ? clip : clip.ConvertToYV12(default(interlaced, false)) yv12filter = Eval("yv12filter." + filter) return_color = default(return_color, color_space) return return_color == "YV12" ? yv12filter : \ return_color == "YUY2" ? yv12filter.ConvertToYUY2(default(default(return_interlaced,interlaced), false)) : \ return_color == "RGB24" || return_color == "RGB" ? yv12filter.ConvertToRGB24() : \ return_color == "RGB32" ? yv12filter.ConvertToRGB32() : \ yv12filter } YV12専用フィルタ用に
>>127 今ならお手本に出来るのがいっぱいあるのでそんなに難しく無いですよ
改造からはじめてみると新しい世界が開けるかもしれませんよん
というかプログラム言語の知識とか全然ないし・・・
逃げの言い訳は誰も聞いていない。 とにかく触ってみることだ。 あんたは赤ん坊以下か
そもそもAviSynthのスクリプトがちょっとでも書けるってことは知識があるってことだ はなから努力をしようともしない(以下略
133 :
名無しさん@編集中 :03/11/20 22:35
function AU_Filter(clip clip, string "filter", string "return_color") { color_space = clip.IsYV12() ? "YV12" : clip.IsYUY2() ? "YUY2" : clip.IsRGB32() ? "RGB32" : \ clip.IsRGB24() ? "RGB24" : clip.IsRGB() ? "RGB" : "UnKnown" assert(color_space != "UnKnown","AU_Filter: UnKnownColorSpace") clip = clip.IsYUY2 ? clip.ConvertYUY2ToAviUtlYC() : \ clip.ConvertToYUY2().ConvertYUY2ToAviUtlYC() clip = Eval("clip." + filter + ".ConvertAviUtlYCToYUY2()") return_color = default(return_color, color_space) return return_color == "YUY2" ? clip : \ return_color == "YV12" ? clip.ConvertToYV12() : \ return_color == "RGB24" || return_color == "RGB" ? clip.ConvertToRGB24() : \ return_color == "RGB32" ? clip.ConvertToRGB32() : \ clip } AVIUTLの色変換を楽にするための関数 強制的にYUY2変換をしてからAVIUTLYCに変換をし 処理後指定が無い場合は元の色空間にもどします。 例 AU_Filter("AU_RingingCanceller(0,0,10)","YV12") YUY2とかこんなスクリプトばっかりだけど需要あるのかなぁ
134 :
名無しさん@編集中 :03/11/22 21:22
age
漏れのscriptを晒して燃料投下 for mpeg2 source --------------------------------------- MPEG2source("hoge.d2v",cpu2="ooooxx") UVTimingH Auto24fps or IT MipSmooth(preset="movieHQ",Spatial=1~2) crop + WarpSharp + LanczosResize --------------------------------------- 軽い。リアルタイム再生可能。MipSmoothマンセー。 for huffyuv source --------------------------------------- UVTimingH FilterRange(,,"AU_DotErase2") #ドット妨害 FilterRange(,,"DeDotA") #クロスカラー Auto24fps or IT FaeryDust(2) crop + WarpSharp + LanczosResize --------------------------------------- インタレ解除を入念に。2DNRは無し。
あまりなじみのない文法の解説 3項演算子(式) (条件式) ? (真の場合に実行される式) : (偽の場合に実行される式) 例 clip = (clip.IsYUY2()) ? clip : clip.ConvertToYUY2() 2項演算子 (A) == (B) 比較(等しい) (A) != (B) 比較(等しくない) (A) && (B) 条件式のAND (A) || (B) 条件式のOR 式の途中改行 式 \ 式の続き 又は 式 \ 式の続き
>>136 非常にありがたい
これのおかげでスレ全体を読む気になってかなり理解が深まった
# 初期設定 LoadPlugin("MPEG2Dec3.dll") LoadPlugin("warpsharp.dll") LoadPlugin("IT.dll") LoadPlugin("ColorYUY2.dll") # ソース読み込み MPEG2Source("src.d2v") #Trim(0, 2700) AssumeFrameBased().ComplementParity() # 編集作業 YV12ToYUY2(true) Auto24FPS(false, 24, 16, "blend").IT(fps=24, ref="TOP", blend=false, diMode=0) Crop(24, 16, 672, 448) UnsharpMask(40, 2, 40) LanczosResize(640, 360) ColorYUY2(levels="TV->PC") return last ※ノイズ除去済みソースなのでその類は使わない。 ※WarpSharp()は時間がかかるのと線が痩せ細る割には効果が薄いと思う ※XSharpen()は効果不明 DivX5.1.1にしてから余裕ができたのでもう少しフィルタ考えるか。
X ノイズ除去済みソース O ノイズ未混入ソース
>>136 構文の例からするとYUY2、YV12、AUFilterを貼ってくださった方でしょうか?
もし返答いただけるなら嬉しいのですが、
引き数としてclipを定義したとして( function NR(clip clip)等)
これを引き数省略して実際に使用させることって可能でしょうか?
例えば、
function NR(clip clip)
{
clip = clip.KenKunNR(64,2,64).ColorYUY2(off_u=1,off_v=1)
return clip
}
と定義して
NR()
とだけ記述すれば当たり前ですがInvalid argumentが出てしまうので...
defaultを使えば出来るのかな、と思いましたが
ヘタレなためdefaultを使いこなせません_| ̄|○
(clip = default(clip, last)ではイケナイ??)
MipSmoothもいいが、KenKUNNR->KenKUNNRTだとビートノイズも激減するんだよなぁ・・・
>>140 warpsharp.dllとColorYUY2.dllをちゃんとロードしてる?
>>142 しています。LoadしなければInvalid argumentにはたどり着きませんし。
自分で省略するために関数を定義するなら適当でいいんだけど、
それを人に渡すなら、様々な使い方を想定しなくちゃいけないから
解決しなくちゃいけない問題が山積み・・・
その意味で125氏のはよく出来ているなぁ、と思う今日この頃
>>140 一応私のところでは正常に動くんですけどねぇ…
default(x, y)
xが定義されて無い場合yの値を返す
>>140 clipにdefault式は不要です。何故なら、clipは省略時lastが使われるからです。
AVISource("foobar.avi")
NR
return last
これでちゃんと動作しましたよ。
>>144-145 助言ありがとうございます。
何か間抜けなことしていそうなので自分のスクリプト見直してきます。
正常に動きました。 原因は、引き数の定義の際、clip"clip" としていたことです(ヴァ わざわざ""で括ろうとしたのはもう馬鹿というか・・・ お騒がせしてすみません。もう消えます...
解説 第2弾 ●引数を""で括るのと括らないのとの違い 名前付けられた引数かどうかである。 int "n":名前付け引数 呼び出し側でのパラメタは省略できる。 また、名前付きパラメタ n=Value という記述が可能。 int n :名前無し引数 呼び出し側でのパラメタは省略できない。 ●コメント clipの場合は、名前無し引数でパラメタを省略できてるように見えるが、 実際はパラメタlastが指定されているのである。 名前付け引数の場合、パラメタの省略が可能なので、NR()とするとパラメタが省略された と見なされて、clipが受け渡されない。 呼び出し側では、NR(last)又はNR(clip=last)と記述する必要がある。 上記の説明で良いとは思うが、ちょっと例外があった。 function Fnc(clip "clip", int "n") { n = default(n, 0) return (n==0) ? clip : ColorBars(640,480) } というように、clipをそのまま返す場合は、呼び出し関数でパラメタを省略してもエラーにならない。
# TV アニメエンコ用スリプト pluginDir = "C:\app\AviSynth\dll\" LoadPlugin(pluginDir + "MPEG2Dec3.dll") LoadPlugin(pluginDir + "warpsharp.dll") LoadPlugin(pluginDir + "IT.dll") LoadPlugin(pluginDir + "LoadPluginEx.dll") LoadPlugin(pluginDir + "cc.dll") LoadPlugin(pluginDir + "Convolution3D.dll") LoadPlugin(pluginDir + "ColorYUY2.dll") AVISource("src.avi", false, "YUY2") AssumeFrameBased().ComplementParity() UVTimingH(3, -1, false) FrameCache(9).cc FrameCache(9).Auto24FPS(false, 24, 16, "blend") FrameCache(9).IT(fps=24, ref="TOP", blend=false, diMode=0) FrameCache(6).Convolution3D(preset="animeHQ") FrameCache(6).KenKunNRT(26, 2, 16) WarpSharp(96, 2, 96) XSharpen(80) ColorYUY2(levels="TV->PC") return last cc()個人的に至高のY/C分離機構。 MipSmooth()はビート障害除去のためにKenKunNRT()と併用するととても重いので様子見。 電波状態が悪いから仕方ないけどのっぺり。 ところでFrameCache()って3次元処理を行うフィルタを複数使わないと効果出ないね。
>>149 AVIソースなのに、タイミングが縦方向にズレてるの?
FrameCacheとConvolution3Dを組み合わせるとDubでランダムアクセスしてると
たまにキャッシュズレを起こさない?
最後にTV->PCしてるのは何故?爆弾作ってる気がする。
KenKunNRTそれで効果あるの?Convolution3Dの後にそんな低い強度で?
シャープ強すぎ。
UVTimingHは水平方向だと思われ。
>>138 ,
>>149 共にAuto24fpsで"blend"しちゃってるけど
細部が潰れちゃうのは気にしないのかな?
アニメはもういいよ
Blend使わないな。まだしも縞解除漏れの方が好み。 そもそもAuto24FPSは使わないけど。
>
>>139 、
>>153 コーミング縞を恐れての設定だったがソースが良いと私の節穴では確認できないので止めた。
ColorYUY2()もデコーダ設定で好みに変えられるので止め。
ご指摘どうも。
>>138 ITのdiMode=3の方が解除漏れは少ないと思う。
でも縦ゆれ・縦スクロールに致命的に弱いので
Auto24fpsと使い分けるといいかも。
>>155 解除漏れが少ないが画が汚くなったりする事があるので
diMode=2の方がいい
スクロール等でもばっちりです
>>156 diMode=2をつかうくらいならauto24fpsのblend使ったほうが
絵がなめらかでいいようなきがするのですが。
>>150 コントラスト補正は無駄にサイズを増やすので止めました。
KenKunNRTはビートノイズを誤魔化す為に使ってるんです。強さ1でも効果出ます。
シャープフィルタは確かに強すぎるのでUnsharpMask(32,2)に変えました。
>>151 >>153 確かにblend使うとボケる上にノイズが拡散するので止めました。
ところでインタレ解除ってa60224()やTelecide()もありますけどどういう特徴があるのか今一わからない・・・
やはりAviUtl使ったほうが良いのでしょうか?
>>169 AutoDeint()って線が残りません?
結局、縞が残ってるのより、動きがカクカクの方が気に障るのでIT()に戻ってしまった。 30fpsのテロップがあれば特に。
>>162 動きがカクカクするのは間引きの問題では?
時間的には Auto24FPS<IT<DoubleWeave.a60224 なんだがな・・・
>>160 たぶんフィールド指定してないからだと思われ。
間引きはITが一番苦手がが少ないと思う。 あとはシーンチェンジ直後がカクカク。
間引きはdecombのmode=3が良い感じですよ
>>170 どっちのDecimate?Decomb?IVTC?
IT(fps=30, diMode=3) のあとに間引きいれると何を使ってもスムーズ・・・不思議だ。
Decimate()、quality3にしてもIT()と大差ない気が。 それよりAuto24FPS()と組み合わせると落ちるほうが問題・・・。
そういえばゴースト除去のスクリプツって見ないんですけど、 皆さん録画時に設定してるんですか?それとも出ないの?
ふつ〜GRT、とかいってしまう。ゴーストよりもリンギングのほうが 問題だなぁ。
>>176 AU_Filter("AU_RingingCanceller(0,0,10)")
うちの場合これでリンギング消してます
AutoDeint()は30pな30pソース用。 24pソースだと間引き後でも線が出まくる。
>>157 IT()のdiMode=2とAuto24FPS()の"blend"じゃボケ具合が違う。
試してみ。
おまいら! リサイズ前に保持するべきアスペクト比は横3:縦2ではなく横40:縦27だぞ。 ピクセルのアスペクト比が横0.9:縦1から重みは横1:縦0.9、 横4:3から算出される値は4x2.7、正規化して40x27。 かくいう漏れもついさっき知ったんだがナ・・・ DVDは3:2であってるような気がするけど。
何言ってるんだ? 電波君か?
LoadPlugin(PluginDir + "WarpSharp.dll") LoadPlugin(PluginDir + "MPEG2Dec.dll") LoadPlugin(PluginDir + "TomsMoComp.dll") LoadPlugin(PluginDir + "Convolution3D.dll") LoadPlugin(PluginDir + "De.dll") LoadPlugin(PluginDir + "AddRange_for_25.dll") LoadPlugin(PluginDir + "ColorYUY2_for_25.dll") LoadPlugin(PluginDir + "LoadPluginEx.dll") LoadPlugin(PluginDir + "DustV5.dll") MPEG2Source( SourceDir + VideoName + ".d2v" ) AssumeFrameBased().ComplementParity() AddRange(SourceDir + "987.vcf") DeDot(15,30,20,5) UVTimingH(-2,-2,false) TomsMoComp(1,5,0) crop(12,4,-12,-4) Convolution3D(0, 4, 4, 4, 4, 2.5, 0) FaeryDust(2) ColorYUY2(3,1,0,-20, 6,0,0,20, 1,0,0,20) LanczosResize(640,480) TVキャプ用です。ソースは良くないと思います(ケーブルなのに。。)
縦方向にcropして、480に引き伸ばしてるけど画質悪くなるよ。 縦は弄らない方が良い。 crop(8,0,-8,0).letterbox(4,4) ・・・ LanczosResize(640,480)
crop(8,4,-8,-4) ・・・ LanczosResize(640,472) もありかな。
>>182 CATVでもキャプ板の性能とケーブル周りの具合でソースが悪くなる。
元から悪いTV局もある。 KIDS STATIONなんか最悪。VHS並。
WarpSharpのデフォルトって、 WarpSharp(depth=128, blur=3, bump=128, cubic=-0.6) だったんだな・・・
DVDアニメエンコ初めて一週間。 色々なサイトを巡って、今の設定はこんなもの。 LoadPlugin("warpsharp.dll") LoadPlugin("IT.dll") LoadPlugin("MipSmooth.dll") LoadPlugin("UnDot.dll") #LoadPlugin("DCTFilter.dll") LoadAviUtlInputPlugin(pluginDir + "m2v.vfp", "MPEG2Video") LoadPlugin(pluginDir + "LoadPluginEx.dll") LoadPlugin(pluginDir + "Lanczos3.vdf") # ソース読み込み MPEG2Video("xxx.vob") AssumeFrameBased.ComplementParity #Trim(0, 2700) #エンコテスト用 # フィルタリング Crop(24, 18, -24, -14) #先にクロップしたほうがインタレ解除の精度があがるみたい FrameCache(9).Auto24FPS(drop=false) FrameCache(9).IT(fps=24, diMode=0) FrameCache(6).MipSmooth(preset="animeHQ") UnDot Lanczos3Resize(640, 360) #先にリサイズしたほうが綺麗、閾値はコントラストが弱いところとノイズを見て決定 UnsharpMask(strength=16, threshold=4) #ノイズがでないかチェックするためのフィルタ #AddBorders(0, 4, 0, 4) #DCTFilter(1, 1, 1, 1, 1, 1, 0.5, 0) return last
age
>>179 はい、ボケるのは分かっているのですが、
IT()のdiMode=2の線がガタガタに2重化されるのが嫌いなんです。
好みの問題ですね。
>先にクロップしたほうがインタレ解除の精度があがるみたい >先にリサイズしたほうが綺麗 ホンマかいな
>>189 Auto24FPSプログレ構築>IT逆テレシネ化だとカクカクするからおすすめできない。
ITのdiMode=3かIT(fps=24, diMode=0).Auto24FPS(drop=false)がおすすめ。
Auto24FPS(drop=false).Decimate(cycle=5,mode=0) これじゃだめですか?
>IT(fps=24, diMode=0).Auto24FPS(drop=false) これ意味ある? ITで縞が見逃された場合の対処なんだろうけど、 その場合には、その前後の綺麗なフレームが削除されちゃってて、もはや取り返しがつかないと思う。
ためしにまぶらほOPをAuto24FPSプログレ構築>IT24fps化でやってみた。 カクカクしすぎ
>>195 君の言うことももっともだが、
ITのdiMode=2以外でプログレ構築よりスムーズなんだよな、漏れの実験結果では。
ソースによるけど。
diMode=2でなくて3
>>189 >>192 >先にクロップしたほうが精度が云々
IT()のreadmeに確かにそう書いてあるけど、詳細は不明。
試しにエンコしてみたがAuto24FPS()、IT()ともに変わらなかった。
ただ、縦方向を偶数単位でクロップするなら無効領域を縞なしと判定しないから、とは思うが。
でも、そういうことするなら無効領域ギリギリまでクロップ>プログレ構築と間引き>アスペクト比正規化クロップが正解かと思われる。
>先にリサイズしたほうが綺麗
アンシャープマスクは飛蝿症と角化症の発症因子だから非可逆圧縮するならもっと弱くかけないと駄目。
いくらなんでも閾値4は低杉。
それじゃせっかく丁寧にノイズ除去かけても復活するぞ。
WMVにするのでもなければかけなくてもいいんでないの?
IT(diMode=0)って縞の除去無しだけでプログレッシブフレームになるんだよなぁ・・・ Auto24FPS()よりAntiComb()のほうがイクない?
貴様ら、閲覧にAviSynth使わないの? # YC伸張用スクリプト DirectShowSource("movie.wmv") ColorYUV(levels="TV->PC") return last
Auto24FPS+ITでカクカクが取れて縞も出ないって過去の話だったんだな・・・
ffdshowででか?
>>201 素直にffdshow内蔵のLevelsを使う。
>>200 AntiCombはテロップに難あり。インターレース解除は多少のジャギーが
出てもAuto24fpsが全般には好結果を出す。
あと、Auto24fpsのフレーム間引きはどうにもカクつく。間引きはIT (dimode=0)
にまかせちゃうのがやっぱりいい。
あと、Decombも以前のバージョンに比べてだいぶよくなってきてはいるんで、
5.10を試しに使ってみるのもいいと思う。少なくとも、以前のカクカクDecimateは
もう完全に過去の話で、Auto24fpsよりも上のレベル。
IT(diMode=1)ってモスキートノイズ出てるところで激しく崩壊するよな・・・ そういうところはAuto24FPS(mode="blend")よりIT(diMode=2)のほうが綺麗な気がする。 ITだとインタレ解除よりも、間引きよりも先に時間軸ノイズを取るべきなんだけど。
DecimateはAuto24FPSの後に使うと一般保護違反出すし
動きが12fpsの場合はITよりもAuto24FPSの方がいいよ あとAuto24FPSはblendやdotで解除よりは何もしないほうがいい どっちにしろカクつくがblendやdotはカクツキが1フレーム遅れてくるのでタチが悪い うちではmode=""だとITよりも結果は↑
Crop先行させたら落ちた。 何故だろう?
KenKunNRT()を先行させてdiMode=1でIT()試行したら、 縞出ない上に動きと線ともにスムーズになった。(diMode=2よりも) フェードなどでの副作用もあまり出てない様子。 一度試してみては?
Cropする前に縞検出式インタレ解除かけて無効領域が縦奇数ピクセルだと、 妙な解除されるもんでつい。 blendしなければ後に回したほうが良いか。
Auto24FPS.Decimate試してみた。 動きが速いところでカクカクするなぁ・・・
>KenKunNRT後にIT フラッシュみたいな残像が出やすいところで少し間引きミスってるけど、確かに縞は見えにくい。 あと、縦スクロールも不味いような気がするけど。
>>220 2にしたらAuto24FPS並にカクカクだったが。
3だとIT(diMode=1)並の解除残し。
1は問題外。
>>212 普通Cropは最優先だろ。(ただし上は偶数ライン数しか指定しちゃだめ。その結果下も偶数ライン数指定になるけど。)
俺は読み込み直後にいつもCropを置くよ。
そもそもYUY2だと横は4の倍数縦は2の倍数になるようにしかCropできない
ダブって描画位置を(1,1)から始めてるんできちんと設定が合ってるのか気になるときがありますよね・・・ あと、アイキャッチだけ黒淵が残ってしまうときはどうしてます>クロップ
>>225 AviUtlのクリッピングフィルタで確認。
YUY2、YV12の場合は横方向も偶数ピクセル開始で切らないと駄目。
>>223 YUY2のCropの横は4の倍数ってのは、2.5xからで、2.0xじゃ2の倍数でOKよ。
さらに2.5xでも、開始、終了位置だと2の倍数でもOKよ。合計が4の倍数なら。
それに縦は奇数でもOKだし。(YUY2にラインの制限は無い)
>>226 >フレーム単位でクロップ
本当か?
フィルタリング後にリサイズ>結合は面倒だと思うんだが。
特にDust系。
需要は不明ですがアスペクト比を狂わせずにクロップする関数です。 function AspectCrop(clip "clip", int "left", int "top", int "right", int "bottom", \int "minwidth", int "minheight", int "aspectx", int "aspecty", \string "clrfmt", bool "interlaced", bool "cutOff", bool "debug") { left = default(left, 0) top = default(top, 0) right = Abs(default(right, 0)) bottom = Abs(default(bottom, 0)) minWidth = default(minWidth, 0) minHeight = default(minHeight, 0) aspectx = default(aspectx, 711) aspecty = default(aspecty, 485) clrfmt = default(clrfmt, "") interlaced = default(interlaced, true) cutOff = default(cutOff, true) debug = default(debug, false) unitx = (clip.IsYV12 || clip.IsYUY2 || clrfmt == "YV12" || clrfmt == "YUY2") ? 2 : 1 unity = (interlaced || clip.IsYV12 || clrfmt == "YV12") ? 2 : 1 rleft = Floor((left + (cutOff ? unitx - 1 : 0)) / unitx) * unitx rtop = Floor((top + (cutOff ? unity - 1 : 0)) / unity) * unity rright = Floor((right + (cutOff ? unitx - 1 : 0)) / unitx) * unitx rbottom = Floor((bottom + (cutOff ? unity - 1 : 0)) / unity) * unity w = clip.Width - rleft - rright h = clip.Height - rtop - rbottom wy = w * aspecty hx = h * aspectx amul = cutOff ? (wy < hx ? wy : hx) : (wy < hx ? hx : wy)
rw = amul / aspecty rh = amul / aspectx rw = Floor((rw + (cutOff ? 0 : 3)) / 4) * 4 rh = Floor((rh + (cutOff ? 0 : 1)) / 2) * 2 offset = (w - rw) / 2 rleft = Floor((left + offset) / unitx) * unitx rright = clip.Width - rw - rleft offset = (h - rh) / 2 rtop = Floor((top + offset) / unity) * unity rbottom = clip.Height - rh - rtop clip = clip.Crop(rleft, rtop, -rright, -rbottom) clip = debug ? clip.SubTitle("unitx : " + String(unitx), 10, 20) : clip clip = debug ? clip.SubTitle("unity : " + String(unity), 10, 40) : clip clip = debug ? clip.SubTitle("left : " + String(rleft), 10, 60) : clip clip = debug ? clip.SubTitle("top : " + String(rtop), 10, 80) : clip clip = debug ? clip.SubTitle("right : " + String(rright), 10, 100) : clip clip = debug ? clip.SubTitle("bottom : " + String(rbottom), 10, 120) : clip clip = debug ? clip.SubTitle("width : " + String(clip.Width), 10, 140) : clip clip = debug ? clip.SubTitle("height : " + String(clip.Height), 10, 160) : clip return clip }
一部抜けてました、申し訳ありません。
>>230 と
>>231 の間に以下の文を挿入してください。
wy = minwidth * aspecty
hx = minheight * aspectx
amul = amul < wy ? wy : (amul < hx ? hx : amul)
wy = clip.Width * aspecty
hx = clip.Height * aspectx
amul = amul > wy ? wy : (amul > hx ? hx : amul)
使い方について。 Crop(left, top, -right, -bottom)はそのままAspectCrop(left, top, -right, -bottom)で使えます。 left : 切り抜く左端の長さ。デフォルトは0です top : 切り抜く上端の長さ。デフォルトは0です right : 切り抜く右端の長さ。デフォルトは0です bottom : 切り抜く下端の長さ。デフォルトは0です minwidth : 最低限保持する幅。デフォルトは0です minheight : 最低限保持する高さ。デフォルトは0です aspectx, aspecty : アスペクト比の指定。縦横比がaspectx:aspectyになるように調整します。デフォルトは711:485です clrfmt : クロップする際、現在の色空間の制限以外にこの色空間の制限を加えます。デフォルトでは特に指定されません interlaced : trueだと縦の切り抜き開始終了位置を偶数にします。YV12だと意味無しです。デフォルトはtrueです cutOff : trueだと黒淵がなくなるまで切り抜き、falseだと黒淵をギリギリまで削ります。デフォルトはtrueです debug : trueだとクロップする際に使った引数などを表示します。デフォルトはfalseです
分かっている人には分かってるとは思うんですが、内部の一部の解説。 ((n + m) / unitx) * unitx てのはここで使っているのは本来C系言語だと (n + 1) & (unitx >> 1) と書くことが薦められている文で、特定の数値の倍数に丸めてます。 アスペクト比の計算や調整には初等数学の比の法則、 n:m==x:yならm*x==n*y を使ってます。
大変おもしろい 関数ですね。 使う機会は結構限られると思いますが、重宝するかとおもいます。
試してみたんだが、720x480を引数無しで処理させたら、700x480にされたんだけど? 本来は704x480か702x480になるはず。
>>236 AspectCrop(left=100, right=100, cutOff=false, debug=true)
でやって下さい。
AviSynth2.0系列なら4の倍数でなくても良いんですがちと手を抜いてあります。
1ラインぐらいあまっても良いというなら
rw = Floor((rw + (cutOff ? 0 : 3)) / 4) * 4
のところを
rw = Floor((rw + (cutOff ? 1 : 3)) / 4) * 4
と書き換えてくれれば2捨3入するようになります。
ここに来てフィルタがけの最後でクロップする意味がようやくわかった。 一部のフィルタ(特にSIMD化されてる奴)は縦16の倍数とか横8の倍数とかいう制限があるんだな・・・。 ということでAspectCrop(debug=true)を計算機として利用しているリトル愚かな漏れ。
>>230 勝手ながら、私のページでも紹介させていただきました。
>>239 いえ、光栄です。
ちなみにrightとbottomは内部で絶対値に変換してるだけです。
Crop(8, 0, -8, 0)はAspectCrop(8, 0, -8, 0)ですが、
Crop(8, 0, 704, 0)はAspectCrop(8, 0, 704, 0)にはなりません。
まぁ、サイズ指定でクロップする人はあまり見ないし画面が数ピクセル幅になるので確認しやすいし、
特に問題は出ないかもしれませんが。
IT(diMode=0)もなかなかに綺麗だ 見落としてた
IT(fps=24, diMode=0).Auto24FPS(drop=false) よりも IT(fps=24, diMode=0) のみのほうが綺麗なのって何故?
X IT(fps=24, diMode=0).Auto24FPS(drop=false) O IT(fps=24, diMode=1) でした、スマソ
diMode インターレース解除の方法を指定する 0 : 解除しない 1 : IT v0.051 のインターレース解除を利用する (default) 2 : 簡易 2重化 3 : フィールド補完 解除しないほうが綺麗だというのか? IT()って正確なんだな
>>234 は大嘘突くな。
「2の整数乗」の倍数に丸めるのは
((n + 1) & (unitx)) & ~(unitx - 1)
だボケ
diMode=0、簡易二重化よりも綺麗なのでこちらを使うことにしますた
n=63 , unitx=16の時、
>>234 の式 (n + 1) & (unitx >> 1)
= (63+1) & (16
>>1 ) = 64 & 8 = 0
>>246 の式 ((n + 1) & (unitx)) & ~(unitx - 1)
= ((63+1)&(16)) & ~(16-1) = (64&16) & ~(15) = (0) & 0xfff0 = 0 (shortの場合)
どっちも間違ってないか?
>>248 ((63+1)&16)&~(16-1)
=(64&16)&~(15)
=(0x40&0x10)&~(0xf)
=0x40&0xfff0
=0x40
=16
答えの一つ手前が間違ってる。
切り上げで良いならこれで合ってるだろ。
ちなみに丸めには普通ビットシフト使わない
>>246 0x40 & 0x10 = 0x40 ?
どういう計算なの。
0x00になると思うが。
間違えたのはこっちだったか。正解は (n + 1) & ~(unitx - 1) だったな。
この人の作ったツールあまり使いたくないですね・・・
>>246 n=MAXの時(short時は、0x7fff)、その式は破綻する。
このときどうするのかは問題だが、画像処理では、結果は0x7ff0となるのが望ましい。
int32であふれる数にはまだお世話になったことがないなぁ・・・
>>256 そういう考えが原因不明、再現性不明のバグを作りこむ。
>>255 ある音声加工を使う場合、normalyzeはmaxじゃなくて、ほんの少し小さくしておかないと
convertやencodeでノイズが発生するなんてのは、まさにこの場合だね。
RPGの資金などである数値を超えるとマイナスになるのもこんな場合ですか。
>>259 こんなミスを犯す香具師はスクリプト系高級言語でも使っとけ。
ある程度まで尻を拭ってくれるから。
>>256 画像処理では、MMX/SSEが使われるように、1ピクセルに対して8bitや16bitで計算することも多い。
アセンブラ使う場合、特に注意が必要。
こういう境界値での挙動はバグのもと。
テストにも必ず境界値でのテスト項目が盛り込まれるはず。
>>258 あるソフトなんてぼかさないでも、Avisynthでもこれが言えるぞ。
audioを16bitから8bitに変換する際の四捨五入の処理なんてモロこれ。
kiraru氏のbefaの8bit音声の場合の丸め処理なんかはきちんとされてて大丈夫。
>>256 今は少々スピードを犠牲にしても安全性を重視する。
1クロックでも高速化したいわけでもないなら全て丁寧に処理すること。
例えばmemcpy()とmemmove()なら特に問題が無いならmemmove()を使うとか。
ちと修正しました。 function AspectCrop(clip "clip", int "left", int "top", int "right", int "bottom", \int "minwidth", int "minheight", int "aspectx", int "aspecty", \string "clrfmt", bool "interlaced", bool "cutoff", bool "debug") { left = default(left, 0) top = default(top, 0) right = Abs(default(right, 0)) bottom = Abs(default(bottom, 0)) minwidth = default(minwidth, 0) minheight = default(minheight, 0) aspectx = default(aspectx, 711) aspecty = default(aspecty, 485) clrfmt = default(clrfmt, "") interlaced = default(interlaced, true) cutoff = default(cutoff, true) debug = default(debug, false) unitx = clrfmt == "I420" ? 4 : ((clip.IsYV12 || clip.IsYUY2 || clrfmt == "YV12" || clrfmt == "YUY2") ? 2 : 1) unity = (interlaced || clip.IsYV12 || clrfmt == "YV12") ? 2 : 1 rleft = Floor((left + (cutoff ? unitx - 1 : 0)) / unitx) * unitx rtop = Floor((top + (cutoff ? unity - 1 : 0)) / unity) * unity rright = Floor((right + (cutoff ? unitx - 1 : 0)) / unitx) * unitx rbottom = Floor((bottom + (cutoff ? unity - 1 : 0)) / unity) * unity w = clip.Width - left - right h = clip.Height - top - bottom wy = w * aspecty hx = h * aspectx amul = cutoff ? (wy < hx ? wy : hx) : (wy < hx ? hx : wy)
wy = minwidth * aspecty hx = minheight * aspectx amul = amul < wy ? wy : (amul < hx ? hx : amul) wy = clip.Width * aspecty hx = clip.Height * aspectx amul = amul > wy ? wy : (amul > hx ? hx : amul) rw = amul / aspecty rh = amul / aspectx rw = Floor((rw + (cutoff ? (((w - rw) > 3) ? 3 : w - rw) : 3)) / 4) * 4 rh = Floor((rh + ((cutoff && rh > h) ? 0 : 1)) / 2) * 2 rw = rw < minwidth ? minwidth : rw rh = rh < minheight ? minheight : rh rleft = Floor((rleft + (w - rw) / 2) / unitx) * unitx rright = clip.Width - rw - rleft rtop = Floor((rtop + (h - rh) / 2) / unity) * unity rbottom = clip.Height - rh - rtop clip = clip.Crop(rleft, rtop, rw, rh) clip = debug ? clip.SubTitle("unitx : " + String(unitx), 10, 20) : clip clip = debug ? clip.SubTitle("unity : " + String(unity), 10, 40) : clip clip = debug ? clip.SubTitle("left : " + String(rleft), 10, 60) : clip clip = debug ? clip.SubTitle("top : " + String(rtop), 10, 80) : clip clip = debug ? clip.SubTitle("right : " + String(rright), 10, 100) : clip clip = debug ? clip.SubTitle("bottom : " + String(rbottom), 10, 120) : clip clip = debug ? clip.SubTitle("width : " + String(clip.Width) + "(" + String(Float(amul) / aspecty) + ")", 10, 140) : clip clip = debug ? clip.SubTitle("height : " + String(clip.Height) + "(" + String(Float(amul) / aspectx) + ")", 10, 160) : clip return clip }
minwidthとminheightが指定されてる場合はアスペクト比よりそれを優先するようにしました。 debug=trueで丸める手前の幅と高さを表示するようにしました。
全然ついて行けねぇ どういうときに使うのかもよく分からん・・・
>>262 勘違い。別のソフトと間違った。
Avisynthじゃconvertはそもそも切り捨てで四捨五入さえしてなかった。
忘れてました... clrfmtにI420を追加しました。(幅を4px単位でクロップ開始終了 cutoff=trueでも指定した長さより短くなる場合のみ幅、高さを切り上げるようにしました。 現状、debug=trueでアスペクト比計算ツールとして使うのが一番かと。
ついで。 引数を全て名前で指定したり省略したりするとエラーを吐かれるのは仕様です。 ・・・多分AviSynthの。 仕方ないので、 last.AspectCrop(...) でやって下さい。
>>266 clip clip
と先頭のclipパラメタだけは、unnamed argumentにしてください。
>>148 参照のこと。
>>271 どうもありがとうございます。
だそうなのでにーやん氏、見られていたら先頭の引数リストを
function AspectCrop(clip clip, int "left", int "top", int "right", int "bottom",
\int "minwidth", int "minheight", int "aspectx", int "aspecty",
\string "clrfmt", bool "interlaced", bool "cutoff", bool "debug")
にしておいて下さい。
パラメタ(parameters)と引数(arguments)を混同してしまった..._| ̄|○
なお
>>148 で最後に書いた【例】についてはちょっと解説不能(理解できない)。
最初は、パラメタ渡しと参照渡しの差かと思ったんだが。
せっかくの関数だが、アスペクト比計算ツールなら他に便利なのはいくつかある。 俺はGordianKnotを使ってるけど。 音声とMUXを考慮しての2passのファイルサイズ計算(ビットレート)も出来るので。
たのむよ、「しょぼい」スクリプト貼ってくれよ さっぱりわかんねーよ、つかえねーよ お前ら、すごいな
ふふふん おれは すごいんだよ ふふん
BlankClip(length=300, width=640, height=480, pixel_type="YUY2", fps=29.97, audio_rate=48000, stereo=true, color=$000000) SubTitle("Hello World!") return last
メディアンフィルタを使ったDVDエンコスクリプトのさんぷるぅ〜 LoadPlugin("warpsharp.dll") LoadAviUtlInputPlugin("m2v.vfp", "MPEG2Video") LoadPlugin("IT.dll") LoadPlugin("_2DCleanYUY2.dll") LoadPlugin("STMedianFilter.dll") # ソース読み込み MPEG2Video("src.vob") AssumeFrameBased.ComplementParity # フィルタリング Crop(16, 8, -16, -8) IT(fps=24, diMode=0) Crop(6, 2, -6, 0) _2DCleanYUY2(interlaced=0, thresholdY=2, thresholdU=2, radiusX=2, radiusY=2, dmode=4) STMedianFilter(8, 15, 4, 7) LanczosResize(640, 360) return last
遅すぎ onepass だけでしょう
dvdも色々有るからね 長物にはm2vはちょっと辛い 内の環境だとd2vとの綺麗差はほとんど区別がつかない
綺麗差って何だよw
少なくとも、LanczosResizeとLanczos3Resizeぐらいの違いはあると思うのだが・・・
lanczos3resizeにcropも実装されていたら、lanczos3resizeに戻るんだけどなぁ。 YUY2やYV12だとcrop().lanczos3resizeだと横は偶数dot分しかcrop効かないけど、 lanczosresizeなら1dot単位で効くんで嬉しい。
>>284 LanczosResizeとLanczos3Resizeってどう違うの?
流れに関係ないけど知りたい
お互いにね
>>286 lanczos3resize: まるもさんのAviUtlフィルターの移植版。純粋に
リサイズ機能のみ。
lanczosresize: crop機能あり。多少アルゴリズムが変更され高速化されている。
そのかわり、わずかに眠い感じの画質に。
>>289 神の目をもってるね。
俺の目じゃ違いがわからん。泣
>>292 左右とか上下にして見比べると、右の方がまた下の方が高画質に見えるよー。
AVSPreview使えよ
295 :
名無しさん@編集中 :03/12/15 10:03
それ出した時点で臭いアニオタ決定だな DVDの話だろうエロか 馬鹿みたく何回も見比べるな
誤爆か?
いろいろ試したがこれがBESTだったな。ぐだぐだフィルタかけても綺麗になる とこもありゃ汚くなるところもある。速さ、容量、見た目のバランスをとるとこうなる。 シンプルイズベストっつうことで。 OpenDMLSource("xxx.avi") AssumeFrameBased() Trim(XXX,YYY) TomsMoComp(0,5,1) Convolution3d(preset="movieLQ") LanczosResize(480,360,8,0,704,480) ResampleAudio(44100) return last
実写ならそれでもいいが、アニメだとその設定は糞確実だぞ
アニメはエンコしないんで分からんが、どの辺がまずいっすかね?
480x360と44khz
>>300 > 480x360と44khz
どこが不味い?アニメ用の解像度なんてあるの?まぁ、別に352でも320でも
いいんだが。音も48khzでも44khzでもいいと思うんだが。
本人がそれでいいのなら無問題かと。
まぁな、アニメなんてみないし。
まぁな、実写厨みたいにショボイエンコなんてしたくないし。
アニメなんて見てる奴はキモイから死んでいいよ
どうでもいいが何故わざわざResampleするのかが分からん 48→44.1でしょ? 無駄に劣化させるだけでほとんど意味ないよね
>>297 まさにスレタイ通りのスクリプトだな(w
44.1KHzでキャプチャした方が高音質だよ。 もし48KHzでしかキャプチャできないのなら、48KHzのままで我慢すること。 TomsMoCompは細い線(スタッフロールなんか)がジリジリと動くから、 気になるなら、AutoDeint()に変える。 ちなみに俺だったら、多少遅くなるけど、 Crop(8,0,-8,0) _2DCleanYUY2(1,3,2,1,3,3) AutoDeint() LanczosResize(480,360) KenkunNRT(48,2,8) にしてるな。
>>308 同じデータ良なら「高音質」だね
でも圧縮するなら1クラス上にすれば良いと思うのだが
>>309 あくまでも>297の意向に沿って回答したつもりだが?
MP3 128Kbpsの制限なら、44.1KHzもありかと思う。
160Kbpsとか192Kbpsとか使うなら48KHzにすればよいだろう。
または、AACとか他の圧縮を使って、AVIとはおさらばするか。
>>308 3DNRより2DNR先にかけてる時点で糞スクリプト決定だな。w
>>311 別に良いと思うけど。
くだらん思い込みじゃねーの?
Auto24fps (false,24,16,"blend",false) IT(fps=24, ref="TOP",diMode=0) ( ゚Д゚)ウマー
アニヲタはどっか逝け
フィルタの特質によって変わると思うんだけど・・・ 2DNRと3DNRという属性以外にも特質があるわけで。
アニメ=漫画の塗り絵だろう 馬鹿見たくフイルター掛け捲り 馬鹿は市ね
ぶw バカはどっちだよ オタキングの本でも読んで勉強して来い
フィルタの使い方も知らないエロペグ厨がいきがってるスレはここですか?
違います。ここはアニヲタの中でも性質の悪い連中が集う場所です。
変態コミック野郎 人間の女相手せい ああ--きもきも
どうやら何か当たりたくなるようなことがあったんだろうな・・・
心中察します
>>321 たん
アニオタ漫画でマスか?終りだな
んにゃ知識を総動員した仮想人格でマスですが何か? 正直、2Dか3Dの違いだけで作り物には変わりないよな・・・ 人間は記憶を改変する動物なんだから。
ここってアニ専?実写メインの人いないの?
そんなことは無いよ・・・
貼る者が正義
よくわからんがアニメで抜いてる人は そのアニメキャラに自分が挿入してるのを想像して抜いてるのか? アイドルヲタがアイドルと仮想セクースして抜くのはわかるが アニメキャラと実写である自分の合体がかなり難しいと思うんだが
####################### 変数設定 ############################## #開始フレーム start=479 #終了フレーム end=126267 #上クロップ(偶数) top_crop=0 #下クロップ(偶数) bottom_crop=0 #左クロップ(4の倍数) left_crop=8 #右クロップ(4の倍数) right_crop=8 ################### ソースの読み込み ########################## #DV-AVI(Type2) OpenDMLSource("e:\capture\source\***.AVI") ####################### 処 理 ################################# #フィールドオーダーの指定 AssumeFrameBased() #編集 Trim(start,end)
#クロッピング crop(left_crop,top_crop,-right_crop,-bottom_crop) #ドット妨害・クロスカラー除去 DeDot(20,40,60,5) #フィールド分離 SeparateFields() top=SelectOdd() bottom=SelectEven() #ノイズリダクション top=Convolution3D(top,0,8,32,4,16,4,0) bottom=Convolution3D(bottom,0,8,32,4,16,4,0) #リサイズ top=LanczosResize(top,4*round((720-left_crop-right_crop)*160/704),(480-top_crop-bottom_crop)/2) bottom=LanczosResize(bottom,4*round((720-left_crop-right_crop)*160/704),(480-top_crop-bottom_crop)/2) #シャープフィルタ top=sharpen(top,0.1) bottom=sharpen(bottom,0.1) #フィールド結合 Interleave(bottom,top) AssumeFieldBased() Weave() #終了処理 return last →WMV9でインタレエンコ ウマー!! 所要時間は実時間の約2倍
TMPGEncでAVSを直接食えることが今わかった
なにを今更・・・ WMPとかでも直接再生できるの知ってるか?
>>333 WMP7.1or9では再生出来ませんが、何か?つうかXP使えや。
WMP9で再生出来ましたが、何か?win2kだけどナー
334は何を言ってるんだろうか
>>336 D&Dでは再生出来ないってことを言いたいんだろ。察してやれや。
334 名前:名無しさん@編集中[sage] 投稿日:03/12/18 17:47
>>333 WMP7.1or9では再生出来ませんが、何か?つうかXP使えや。
AUTO24FPSって何か精度悪くない?映画エンコしたらカクカクするとこ 多すぎ。ITだとスムースなんだけどなぁ。
>>340-341 なので
Auto24fps (false,24,16,"blend",false)
IT(fps=24, ref="TOP",diMode=0)
んで、Auto24fpsのblendが嫌って人はdotで。
>>342 俺が最初バカにしてた逆順も結構面白いかも。
IT(fps=24, ref="TOP").Auto24FPS(false)
プログレ化のみだったらどれがいいかね? あ、ソースは実写で。
人に物を尋ねるときは口の利き方に気をつけろや、ヴォケ
>>331 DeDot(20,40,60,5)
Convolution3D(top,0,8,32,4,16,4,0)
LanczosResize(640,480)
XSharpen() #別に他のシャープフィルタでいいが
return last
わざわざフィールド分離しなくてもインタレエンコできるぞ?アフォですか?
>>346 それはインタレ「風」エンコですw
縞が見えてればインタレ、という物じゃないよ
( ´,_ゝ`)
縦スクロールのカクカウがイヤだ。
Auto24fps (false,24,16,"blend",false) Decimate(cycle=5, mode=0, quality=3) 俺はこれでやってる。 変なfpsじゃない限りめったにカクつかない。
5.1.0 キャプ環境がたまたまDecimate向けなのかも知れんが。
>>354 thanks
フレーム間引きの場合キャプ環境云々は関係ないので、おそらくDecombの
mode=0アルゴリズムが5.xになってマシになったということでしょう。
4.1のころはmode=2じゃないとカクついて使い物にならなかったし、mode=2
でもときどき破綻していたから結局ITをつかうようになったヲレ。
アニヲタは大変そうですね
それは激励の言葉と取っておこう。
というかアニメのエンコなんてスゲェ楽じゃん
>358 スゲェ楽だよ だが、おまえがエンコしたものは絶対流すなよ
360 :
名無しさん@編集中 :04/01/21 07:05
#--pluginの読み込み ------------------------------ For Avisynth2.5 Video only PluginDir = "c:\Avisynth\plugin25\" m2v_vfpDir = "c:\avisynth\MP2VfapiPlugIn\bin\" LoadPlugin( PluginDir + "LoadPluginEx.dll") LoadPlugin("c:\Avisynth\warpsharp\warpsharp.dll") LoadAviUtlInputPlugin( m2v_vfpDir + "m2v.vfp","MPEG2VIDEO" ) LoadPlugin( PluginDir + "mpeg2dec.dll") LoadPlugin( PluginDir + "AddRange_for_25.dll" ) LoadPlugin( PluginDir + "Convolution3Dyv12.dll" ) LoadPlugin( PluginDir + "_2DCleanYUY2_for_25.dll" ) LoadPlugin( PluginDir + "ColorYUY2_for_25.dll" ) LoadPlugin( PluginDir + "MSharpen.dll" ) LoadPlugin( PluginDir + "lanczos3.vdf" ) LoadPlugin( "c:\avisynth\Plugin20\IT.dll",1 ) LoadPlugin( "c:\avisynth\Plugin20\De.dll" ) #--MPEG2を開く ソース指定 --- MPEG2VIDEO("d:\aaa.m2v" ) #DVD2AVI + MPEG2DEC #--- CM編集 --- AddRange("d:\aaa.vcf") #--- クロスカラー除去 ------------------ YUY2 > ConvertToYUY2().DeDot(20,20,15,5) #ConvertToYUY2().DeDotA(15,8) #インタレ解除&24fps --- AssumeFrameBased().ComplementParity() IT(fps=30,ref="TOP",blend=false,pthreshold=10000).ConvertToYV12()
361 :
名無しさん@編集中 :04/01/21 07:06
#--- ノイズ除去 時間軸系 -> 2DNR ----------------------------------------------------------------- converttoyv12().FrameCache(6).Convolution3d(0,4,4,4,4,2.5,0) FrameCache(5).KenKunNRT(192,2,18) #strength(256はやりすぎ),radius(できるだけ2以下),threshold(20以下) # 2DNR -- None 3'57-23M > KenKun 256,2,2 4'58-21M > _2DClean 0,2,2,2,0,2,2-22M FrameCache(5).KenKunNR(128,2,2) # ぼかし depth /ワープの深度 blur /凹凸をぼかす回数。増やすと遅くなる。最低1回はぼかさないと駄目。 # bump /凹凸検出時の閾値。増やすと効き目が鋭くなる。cubic /三次補間の係数。いじる必要は無い。 WarpSharp(depth=56, blur=2, bump=96, cubic=-0.6) #シャープフィルタ converttoyuy2().MSharpen(10,30,true,false,false) #- クリッピング Crop(8,0,704,480) #(左,上,720-(左+右),480-(上+下)) #- リサイズ Lanczos3Resize(640,480) #lanczos3.vdf使用 #色調補正 ---------------------------------------------------------------------------------- #ColorYUY2(Levels="TV->PC") #ColorYUY2(gamma_y=8,cont_y=12,cont_u=12,cont_v=12) return last #おわり ガンダムSEEDをエンコードするのに使ってた設定で、 これでZガンダムをエンコードしはじめようと思ってるんですが、 つっこみ、アドバイスあったらお願いしたいです。 CDexでエンコードしたMP3をあとで合成してるんですが、VirtualDubで マキシマイズとかノーマライズってできるんでしょうか。
> # ぼかし depth /ワープの深度 blur /凹凸をぼかす回数。増やすと遅くなる。最低1回はぼかさないと駄目。 > # bump /凹凸検出時の閾値。増やすと効き目が鋭くなる。cubic /三次補間の係数。いじる必要は無い。 > WarpSharp(depth=56, blur=2, bump=96, cubic=-0.6) > > #シャープフィルタ > converttoyuy2().MSharpen(10,30,true,false,false) モノにもよるとは思うけど逆の方がイイと思ふ。
クロスカラー除去はDeCrossのほうが副作用少なくてイイ ドット妨害は消してくれないけど。
ノーマライズなんてしないで入力側で調整すればいいじゃん
最近avisynthさわりはじめてエンコしてみたんだけど aviutlと似たような設定でQBを似たような値にしてみたんですができた動画のサイズがaviutilの倍以上になってしまいました。 Convolution3D(preset="movieLQ") ってやってるのがわるいんですかね。
>360 RipならNR強すぎ 容量縮めたいなら全篇30fpsでやらないで間引くと良いかも SEEDって縮みにくいけど あと、DeDotA以外YV12でいける
367 :
名無しさん@編集中 :04/01/21 15:45
>365 Convolution3Dは副作用少ないけど縮みにくい。 AviutlでType-GとかWNR3D2とか使ってたなら、AvisynthのNRフィルタ色々試してみて 仕上がりと時間で妥協できる組み合わせを探せば良いと思う ソースによってはAviutlより短時間で仕上がりも容量も似たようになるのもあるし
>>367 ヘタレマシンだからエンコ遅いのでaviutlでかけるフィルタってノイズ除去くらいしかしてないから
avisynthにしていろいろフィルタ使ってみようかなと思ってたんですが
いろいろ試すしかないようですね。
QBを似たような値じゃなくて小数点以下も全く同じ値で全く同じソースを使え 標準NRだけでサイズが倍違うなんてありえないぞ
標準ノイズ除去を馬鹿みたいに強くかけたボケボケの画像だったからじゃない?
>275 キャプチャカード側の録音レベルは最大にしてるんですが、音割れ防止のためか CDExを通した状態と比べるとかなり音が小さくて、見るときに結構音量がばらつくのが きになってしまいます。 >274 277 TV放映とRipの時はこれでやってたんですが、やはり強すぎですか・・。 取り逃したときやZはDVDがあまり在庫ないのでレンタルビデオがソースで、その時だけ KenkunNRを二回かけてやってました。 ご指摘のとおりSEEDはまったく縮まず、本編300MB近くがざら、という状態でした。 間引きについての情報収集とDedotをDecrossに変えるとどうなるか、もう一度詰め直してみます。 アドバイス、ありがとうございます。
スレッドがちゃんと取得できてませんでした。 275氏でなく364氏 274氏、277氏が363氏、366氏です。すみません。
###########縦線色ゴースト検出(要Warpsharp.dll)########## function SearchCVG(clip clip,int frame,int top,int bottom,string dir) { u=clip.UtoY() u=u.SearchGhostV(frame,top,bottom,1,dir + "U") v=clip.VtoY() v=v.SearchGhostV(frame,top,bottom,1,dir + "V") C=YtoUV(u,v) return Mergechroma(C) } ###########縦線色ゴースト除去######### function EraseCVG(clip clip,int str,string file) { u=clip.UtoY() u=u.eraseghostV(str,file + "U") v=clip.VtoY() v=v.eraseghostV(str,file + "V") C=YtoUV(u,v) return Mergechroma(C) } Warpsharp使って色ゴーストも消せないかなと思って書いてみたんだけど、 微妙に違う命令を重複して使ってるので非効率な書き方になってしまった。もう少し効率的な書き方は無いかな。
しまったこれじゃ動かなかった… それぞれの最後の行を clip=clip.mergechroma(C) return clip に訂正… そもそも色ゴーストなんてものが出る環境でキャプチャする自体まずいかな…。
375 :
名無しさん@編集中 :04/02/22 21:02
保守
>>374 GRT付きのチューナー買った方が良いぞ
色ゴーストも消えるし、ゴースト除去の調整に時間も掛からないし、エンコ時間も短くできるし
超お勧め
LoadAviUtlInputPlugin("????????????????????\m2v.vfp","MPEG2VIDEO")
MPEG2VIDEO("demuxed.m2v")#
[email protected] AssumeTFF()#トップファースト
#AssumeBFF()#ボトムファースト
SeparateFields()#
[email protected] last = SelectEven#
[email protected] lanczosresize(960,540)
#info()
379 :
名無しさん@編集中 :04/02/26 08:54
ところで、別の映像を上下に並べるフィルターって無い?
任意の数だけ上下左右に並べる関数なら自分で書いたのがあるけど あまりに汚い&長いので貼る気になんない Layerを使うといいよ
StackVertical(a,b)
382 :
名無しさん@編集中 :04/02/26 21:46
ConverFPSで十分かも。
385 :
名無しさん@編集中 :04/02/28 17:05
a=AVISource("normal pre.avi") b=AVISource("close-up pre.avi") b=b.trim(0,188)+BlankClip(length=42,width=b.width(),height=b.height(),pixel_type="yuy2",fps=23.976,color=$000000).KillAudio()+b.trim(189,0) stackvertical(a,b) crop(8, 0, 704, 640)#crop(左,上,横,縦) lanczosresize(640,640) AudioDub(last, WavSource("CD v 調整.wav" )) DelayAudio(0)#方向はVirtualDubと同じ
ConvertToYUY2() ChromaShift(U=-6, V=-6)
寂れてるなこのスレ
ColorYUV(off_y=-16) ColorYUV(off_y=32) ColorYUV(off_y=-16) これオススメ、マジ、けっこちぢむ
>>388 実際は縮むかでかくなるかのばくちのようなものです
>>388 そんなことするくらいなら
ColorYUY2(opt = "coring")
でもやった方が早い
392 :
名無しさん@編集中 :04/04/17 23:07
ほしゅ
393 :
名無しさん@編集中 :04/04/22 23:45
保守
>ColorYUY2(opt = "coring") これじゃ、UVも影響されるし、Yの範囲も違う。 全く同じ効果を求めるなら、 ColorYUY2(opt="Y:16-240")
>>394 まずUVが影響されるようなソースには御目にかかれないけどね
自作CGか?
396 :
名無しさん@編集中 :04/04/25 07:25
avisynthであるフォルダに置いてあるPCM音声のaviファイル全部を 自動でMP3に音声だけ再エンコすることってできますか?
AVISynthはMP3変換ソフトじゃありません
>>396 DOSのbatchファイルとコマンドラインAPLのdemux,enc,muxソフト使え
すげぇ
誤爆しますた
緑にならないKenkunNR function KenkunNR2(clip clip,int "strength",int "radius",int "threshold"){ A = clip.ColorYUV(off_y=1,off_u=1,off_v=1) B = Layer(clip,A,"fast") return B.KenkunNR(strength,radius,threshold) }
>>401 なるほど、KenkunNRは四捨五入じゃなくて切り捨てだってことかな?
だったら、単純に
ColorYUV(off_y=1,off_u=1,off_v=1).KenkunNR()
でも良さそうなものだが。
>402 それも試してみたんだが、それだと逆に紫がかる。 それにしてもLayerの挙動が微妙によくわからない。
>>403 あ、そうか。確かにダメだろうな。
>=128の時はOKでも、<128の場合は逆にColorYUV(off_y=1,off_u=-1,off_v=-1)としなきゃならんのか。
保守
LanczosResize(320,240) LanczosResize(640,480) これオススメ、マジ、最強インタレ解除
407 :
名無しさん@編集中 :04/05/28 02:08
>>406 LanczosResize(320,480)
LanczosResize(640,480)
408 :
名無しさん@編集中 :04/05/28 02:08
>>407 間違えた。
LanczosResize(640,240)
LanczosResize(640,480)
/⌒彡 /⌒彡
/ 冫、) / 冫、)
/ ` / / ` /
/:::::::::::\ /::::::::::::;\
//:::::::::::: l | //´|::::::::::::l |
//|::::::::::::/|
>>406-408 / /::::::::::::/| |
U |::::::::::/. U ↓ U |::::::::::/ U
|::::||::| | | /⌒ヽ/ |::::||::|
| / | | | / ´_ゝ`) | / | |
// .| | / __ ,/ // | |
// | | | / | | // | |
U U U U U U
ワロタ
ていうか、kenkenNR以外も緑にならないか? Dedot、DeBlot・・・
412 :
名無しさん@編集中 :04/05/29 21:09
>>411 色信号を小数点以下切り捨てにしているプラグインだと漏れなくそうなる。
AviUtlプラグインだと10bit精度で演算していることが前提なので、小数点以下を
切り捨てても問題ないんだけど、それをそのまんまAvisynthに移植すると問題が
出てくる。
もちろん、ネイティブなAvisynthプラグインでも小数点以下のことをなにも
考えずに切り捨てるプラグインだと同様。そういえば、XviDのRGB<->YUY2の
変換とかも、今はどうなっているのか知らないけど、以前は小数点以下
切り捨てだったような気が。
AviUtlは12bit精度を16bit使って計算してるよ・・・
>>413 そんな問題より、YUVで周囲の点とブレンドすれば緑(センター128)に寄ることが原因だと思うが。
ちょっと分かり難いかも知れないので補足すると、 UV成分は、0(128)を中心に-128(0)〜+127(255)の値を取る。 どういうことかと言うと、波のように+-方向に振幅するとでも考えてみてくれ。 平均化する(周りの点とブレンド)ということは、 この波の高さを滑らかにして、その結果ピーク値は下げられるわけで 振幅の幅が小さくなる。 つまり色が弱くなり緑に近づく。 NRとかインタレ解除の殆どはこれに該当するのでは?
ピーク値が下がるだけならのっぺりした部分ではそれほど緑にならないはず。 それより問題なのは小数点以下を切り捨てにしているために全体的にU,Vが0(緑)に近づくこと。
U,V=0 は緑じゃなくて色が完全に抜けた状態だよ
>418 U,Vの中心は128だっつーの
>>401 FrameCacheみたいにどのフィルタでも使えるようにするには
どういう風に書けばいいの?
>>420 それ単にその時点でのクリップをキャッシュするだけなのでは?
filter-A
cache
filter-B
とあったら、filter-A適用後でfilter-B適用前の画をキャッシュするだけ。
あと、OOP表記も勉強しる Filer-A.Filter-B.filter-C.filter-D
誰も居ないようだから愚痴らせてくれ。 Avisynth使ってるにもかかわらず色空間とそのデータ形式理解してない奴多すぎ。 それでマトモに使えるのか? 間違った理解のまま講釈たれてる奴もいるし…はぁ。
##### プラグイン読み込み ##### LoadPlugin(PluginDir + "MPEG2Dec.dll") LoadPlugin(PluginDir + "LoadPluginEx.dll") LoadPlugin(PluginDir + "warpsharp.dll") LoadPlugin(PluginDir + "De.dll") LoadPlugin(PluginDir + "TomsMoComp.dll") LoadPlugin(PluginDir + "IT.dll") LoadPlugin(PluginDir + "dec60.dll") LoadPlugin(PluginDir + "Convolution3D.dll") LoadPlugin(PluginDir + "MSharpen.dll") LoadPlugin(PluginDir + "delogo.dll") LoadPlugin(PluginDir + "ColorYUY2_for_25.dll") ##### ソース読み込み ##### MPEG2Source(SourceDir + "ファイル名.d2v") AudioDub(last,WavSource(SourceDir + "ファイル名.wav")) ##### スクリプト ##### function AddRange(clip clip, int "startframe", int "offset") {return clip.Trim( default(startframe,0), ((default(offset,0)==0)? 0 : startframe+offset-1) )} ##### ロゴ除去 ##### #ConvertToYUY2() #EraseLOGO(logofile="C:\Program Files\AviSynth 2.5\logodata\ファイル名.lgd",pos_x=0, pos_y=0, depth=128,start=0, fadein=0, fadeout=0, end=-1) #ConvertToYV12()
425 :
名無しさん@編集中 :04/07/02 17:22
##### CMカット ##### #AddRange(開始フレーム,フレーム数) ##### フィールドオーダー ##### #AssumeFrameBased()ComplementParity() ##### ドット妨害・クロスカラー除去 ##### #DeDot(20,40,60,5) ##### インターレース解除 ###### #FrameCache(9).TomsMoComp(1,5,1) #IT(fps=24,ref="TOP",blend=false,diMode=1) ##### テレシネ解除情報取得 ###### #Dec60(idxfile="L:\ファイル名.idx",deint=false)
##### フィルタ ##### #FrameCache(9).Convolution3D(preset="movieHQ") #FrameCache(5)KenKunNRT(128,2,24) #WarpSharp(depth=60, blur=2, bump=96, cubic=-0.6) #UnsharpMask(strength=80, radius=3, threshold=5) #MSharpen(10,30,true,false,false) ##### サイズ変更 ##### #Crop(0,0,-0,-0) #LanczosResize(640,480) ##### 色調補正 ##### #ColorYUY2(Levels="TV->PC") #ColorYUY2(gamma_y=8,cont_y=12,cont_u=12,cont_v=12) ###### 終了 ##### return last
2度もsage忘れた_| ̄|○ どうもインタレ解除が納得いく仕上がりで出来ないんだが如何すれば良いのでしょうか?
コメントアウトしてあるんだからうまくいくわけないだろ?
>>428 さすがにそういう問題じゃないだろ。
>>427 見づらいから貼る時は必要ない部分を削るべき。
##### 色調補正 #####
LoadPlugin(PluginDir + "MPEG2Dec.dll")
↑こういうのとかね。
にしてもどっかおかしいね。
誰も居ないようだから愚痴らせてくれ。 Avisynth使ってるにもかかわらず色空間とそのデータ形式理解してない奴多すぎ。 それでマトモに使えるのか? 間違った理解のまま講釈たれてる奴もいるし…はぁ。
そのコピペ流行ってるの?
##### 終了 #####
>>427 60p->60iなソースはTomsMoComp以上のものはないのであきらめるしかない。
IVTCはITのみだとインターレース解除しそこねることが多いんで、
Auto24fps (false,24,10,"blend",false)
IT (fps=24,ref="TOP",blend=false,diMode=0)
ってやって、Auto24fpsでインターレース解除をし、ITでフレーム間引きをしたほうが
好結果が出る。
warpsharpの作者たん、インタレ解除2いつになったら移植してくれるんだろう・・・
>>433 なんで逆テレシネのフィルタを二段階掛けしてんの?
たまーに電波なHPでそういう書式見かけるけど管理人の人か?
>>435 お前がAuto24fps (false,24,10,"blend",false)やIT(diMode=0)の意味を
理解できない包茎なのはよくわかったから消えろ
438 :
名無しさん@編集中 :04/08/04 21:58
保守age
いいかげんさ初心者でも簡単に出来るGUIつくれよ なにやってんだよ!
バカが湧いて出てきたな
>841 名前:名無しさん@編集中[] 投稿日:04/08/05(木) 01:34 >一つの動画ファイルからタイル状に並べたサムネイル画像を敷き詰めて >一枚の静止画にしてくれるフリーのツールってありませんか? function ThumbView(clip clip, int "f1", int "f2", int "f3", int "f4") { f1 = default(f1, 0) f2 = default(f2, -1) f3 = default(f3, -1) f4 = default(f4, -1) thumb1 = clip.Trim(0,-1).LanczosResize(Width(clip)/2, Height(clip)/2) thumb2 = (f2<0) ? BlankClip(clip, 1, Width(clip)/2, Height(clip)/2) \ : clip.Trim(f2,-1).LanczosResize(Width(clip)/2, Height(clip)/2) thumb3 = (f3<0) ? BlankClip(clip, 1, Width(clip)/2, Height(clip)/2) \ : clip.Trim(f3,-1).LanczosResize(Width(clip)/2, Height(clip)/2) thumb4 = (f4<0) ? BlankClip(clip, 1, Width(clip)/2, Height(clip)/2) \ : clip.Trim(f4,-1).LanczosResize(Width(clip)/2, Height(clip)/2) top = StackHorizontal(thumb1, thumb2) bottom = StackHorizontal(thumb3, thumb4) thumbs = StackVertical(top, bottom) return thumbs }
#argument f1-f4/サムネイルにしたいフレーム #example ColorBars(640,480) #source ThumbView(0,1,2) ConvertToRGB24() ImageWriter("C:\", 0, 0, "jpg") return last
これ似たようなの作ったなぁ 縦横の行列数も指定できるようなの 無駄に再生まで出来るぞw 全く使ってないけどな
http://pc5.2ch.net/test/read.cgi/avi/1091905498/43 AudioDVD作成支援っぽいの…(for 2.54)
-----
sound_track=WAVSource("C:\Documents and Settings\All Users\My Documents\My Music\[シスタープリンセス TV OP]Love Destiny{堀江由衣}.wav").SSRC(48000)
music_title="Love Destiny"
music_artist="堀江由衣"
ColorBars(640,480)
GreyScale()
Subtitle(music_title,x=64,y=96,font="MS UI GOTHIC",size=64,text_color=$ffffff,halo_color=$000000)
Subtitle(music_artist,x=360,y=150,font="MS UI GOTHIC",size=48,text_color=$ffffff,halo_color=$000000)
#下2行削ると時間表示はなくなるけど格段に速くなる(__;
time_overlay=BlankClip(last,width=116,height=22,pixel_type="RGB32").ShowSMPTE().crop(28,0,56,22)
Overlay(last,time_overlay,x=292,y=400)
BilinearResize(704,480)
AddBorders(8,0,8,0)
AudioDub(last,sound_track)
Trim(0,int( (sound_track.Audiolength/sound_track.Audiorate)*29.97) + 5)
FadeIn(60,$000000)
FadeOut(120,$000000)
return last
-----
現在のフレームナンバ(時間でもいいけど)を知る方法ってあるのかな?
>>447 framecountでは総フレーム数しか取得できないような
ShowFrameNumber
>>449 画面に直接書かれちゃ利用のしようがないのでは?
多分446は時間表示に使いたいんだろうし
ShowSMPTE 文句言うだけじゃなくてマニュアル読めよ
せめて位置指定くらいできればいいのにねぇ > ShowSMPTE()
レイヤー使えば強引だが位置移動くらいはできるだろ
>>454 >>446 それはもうやってます
layerやOverlayを使うとガクっと遅くなるのでデータとして取得したいのですが…
俺も昔音楽DVD用に関数作ったなぁ 現時間と総時間とプログレスバーと歌詞が表示ができるようなの 歌詞表示って言っても切り替わったりするわけじゃなくて ずっと全歌詞が固定表示されてるから文字ちっちゃくなっちゃうんだけどねw 縦にスクロールしていくの作ったら無茶苦茶重くなっちゃったんでw で例のごとく全く使ってないけどな
ちなみにScriptClipを使うといいと思うよ
ScriptClip("subtitle(string(current_frame))") ってわけか
>>457 >>458 なるほど〜
ScriptClipはいぢったことが無かったのでこれから勉強しようと思います
Thx!
>>459 本スレの過去ログに似たようなのが載ってる
保守
保守
null
po
465 :
名無しさん@編集中 :04/10/04 17:04:42 ID:DiZvftgI
galtu
AVISource(".avi") #AudioDub(last, WavSource("wav")) Trim() ++ Trim() ++ Trim() ++ Trim() ++ Trim() IT(fps = 24, ref = "TOP", diMode = 0) FrameCache(9).Auto24fps (false,24,16,"blend",false) #FrameCache(5).YV12ToYUY2(true) _2DCleanYUY2(interlaced=0, thresholdY=2, thresholdU=2, radiusX=2, radiusY=2, dmode=4) FrameCache(5).FaeryDust(2) FrameCache(9).LanczosResize(640,480,8,0,704,480) Xsharpen(70) WarpSharp(depth=40, blur=2, bump=80, cubic=-0.6) UnsharpMask(strength=50, threshold=4) DVDのアニメなどを主にエンコ
2DCleaner使うとFaeryDustの意味が無いような
シャープ掛け過ぎだろ ファイルサイズえらいことになりそうだ
>468に同意。 最後のUnsharpMaskはいらないな。
470 :
名無しさん@編集中 :04/10/08 20:11:19 ID:+b1yi20K
>>466 >_2DCleanYUY2(interlaced=0, thresholdY=2, thresholdU=2, radiusX=2, radiusY=2, dmode=4)
>FrameCache(5).FaeryDust(2)
は順番逆にした方が良いな
>>470 うほっ同じ事を考えてる人がいるとは(w
シャープに関しては、プレビューしながら決めてるんだろうから他人が口だし
する所じゃないな。 あえて言うなら、シャープでサイズが増える分Quantizerを落としたら
汚くなって元も子も無いって事と、そこまでかけるならmfToon使った方がいい。
>>471 他人に口出すななんて言っといて、テメーは言いたいこと言ってるじゃねえかw
古い作品なら、DVDソースでもシャープをキツく掛けたくなるのも分からなくは
ないが、その割りにNR(ぼかしでもいいが)が弱いんじゃねえか?
これじゃ見た目にもギラギラしそうな気がする。
おまえら一見罵倒しあってるようにみえて すげえ参考になる話ししてるじゃねえか 良スレgood
スレタイが悪すぎるな
基本は良ソースを素エンコ
XsharpenやMSharpenは輪郭ギザギザにならない? SharpenやUnFilterの方が自然な気がするけど。
画面からちょっと離れると綺麗になるよ。
478 :
名無しさん@編集中 :04/10/20 02:36:58 ID:+Dmv6yPg
PluginDir = "C:\AviSynth\plugins\" #プラグインのディレクトリ SourceDir = "C:\AviSynth\sources\" #ソースディレクトリ LoadPlugin(PluginDir + "MPEG2Dec3.dll") LoadPlugin(PluginDir + "De.dll") LoadPlugin(PluginDir + "IT.dll") LoadPlugin(PluginDir + "NoMoSmooth.dll") LoadPlugin(PluginDir + "ColorYUY2_for_25.dll") MPEG2Source(SourceDir + "xxx.d2v") AudioDub(last,WavSource(SourceDir + "xxx LPCM T01 48KHz.wav")) AssumeFrameBased() Trim(aaa,bbb) ++ Trim(ccc,ddd) ++ Trim(eee,fff) ++ Trim(ggg,hhh) ++ Trim(iii,jjj) DeDot(20,20,15,5) IT(fps = 24, ref = "TOP", blend = true, diMode = 3, pthreshold=10000) ConvertToYUY2.NoMoSmooth(40,1,6,1,3,false) ColorYUY2(Levels="TV->PC") Crop(4,0,704,480).LanczosResize(640,480) AmplifydB(8.5) return last #インタレ解除&ドット妨害除去に成功。
MPEG2Dec3.dllって0フレームと最終フレーム削られなかった? 前試したら削られたからMPEG2Dec3dg.dllの1.1.0使ってるんだけどdgの方が水差ししてるのかな
ソースは子供駅です DirectShowSource("xxx.avi",audio=false) ConvertToYUY2(interlaced=true) AddRange("xxx.vcf") DeDot() DeCross() UVTimingH(2,2,false) ColorYUY2(gain_y=10,off_y=-8,off_g=-3) AssumeTFF() IT(ref="TOP") DeGrainMedian() Convolution3D("animeHQ") WarpSharp(depth=84, blur=2, bump=84, cubic=-0.6) Crop(8,0,-8,-4) Lanczos4Resize(512, 384) FadeIn(5) FadeOut(5) もろ環境依存だな
>>480 RGB補正してるの初めて見た。でもYUY2とRGBの関係上RGBは4倍程度敏感だから
3とか小さな数字だとあまり意味が無いかも。(補正しないのと同程度じゃない?)
warpsharpはdepthが大きすぎて線が細くなりすぎない?(64程度で良いと思う。俺はもっと小さいけど)
cropは微妙だな。俺ならcrop(8,0,-8,0).letterbox(0,4)とする。
真っ黒なフレームで、ヒストグラム見て調整してる キャプボの特徴が出るんだよね WarpSharpは一種のノイズ除去として使ってる 元があれなので DirectShowSourceはffdshowのブロック低減目的で使ってる まじで糞ソース専用スクリプト
>>478 Crop(4,0,704,480).LanczosResize(640,480)は
LanczosResize(640,480,4,0,704,480)
でいいんじゃない?それと、
ColorYUY2(Levels="TV->PC")
ってやる必要ある?d2vをYV12で読み込んでるんだから、
白飛びとか黒つぶれしちゃうような気がするんだけど。
横レスだが LanczosResizeにそんな技があるなんて知らなかったありがとう どうでもいいっちゃどうでもいいんだけど
>>484 さらに横レスだが
どうでもいい?
んな訳無い。横奇数cropできるので漏れの場合必須。
>>483 それってYV12で読む事が関係あるの?YUY2だったら伸張していいって事なのか?
>>485 失礼、何か変な事書いちゃったな。
YUV系なら再生時にYC伸長されるから
わざわざエンコ時に伸長する必要ないんじゃない?
って事言いたかった。別にYV12に限定した話ではないです。
あ、もしかして再生にGeforce使ってるのかな?だとしたら
再生時のYC伸長は無いからそれで良いと思う。
>>486 GeforceはYC伸張してくれるし、ドライバのバージョンによっては
Overlayだとコントラストと黒レベルもメリハリが効いた状態になるはず。
どちらにしても、後々面倒にならないようにYC伸張はとりあえずせずに
OverlayとGDI表示の両方で色が同じになるようにOverlayの調整をしてから
色調補正したほうがいいと思うけど。
ただ、これを言い出したら、GDI表示が正しい色を表示しているかどうかも
問題になるのが面倒だよね。
俺はそこまではしたくないので色調補正はソースと同じになるようにしかしてない。
488 :
名無しさん@編集中 :04/10/23 16:41:11 ID:M2W1/LHq
非オーバーレイ=GDIではないのだが と余計な突込みをしてみる
VMRっていうDirect3Dを使った表示が出てきたので混乱の度は増すばかり。 これも各チップで色が変化する模様。 YC伸張しないだとかの意見も見られる。 まあ最近のオーバーレイほどは伸張しないことは確か。
Lanczos4Resize
PluginDir = "C:\plugins\" SourceDir = "E:\" LoadPlugin(PluginDir + "LoadPluginEx.dll") LoadPlugin(PluginDir + "AddRange.dll") LoadPlugin(PluginDir + "warpsharp.dll") LoadPlugin(PluginDir + "_2DCleanYUY2.dll") LoadPlugin(PluginDir + "lanczos3.vdf") Import(PluginDir + "colcontrolc.avs") Import(PluginDir + "iir_3dnr.avs") AVISource(SourceDir + "***.avi") AddRange(SourceDir + "***.vcf") AssumeTFF() FrameCache(9).Auto24FPS(true,24,16,"blend",false) Crop(8,2,704,478) _2DCleanYUY2(0,4,2,2,0,4,4) Lanczos3Resize(640,478) ConvertYUY2ToAviUtlYC() AU_colcontrolc(2,94,-6,3,92,-8,2,94,-6,3,95,-5,true,false)#TBS #AU_colcontrolc(1,96,-4,0,100,0,0,98,-2,-3,98,-2,true,false)#TV_TOKYO AU_iir_3dnr(30,15,128,0,20,0,false) ConvertAviUtlYCToYUY2() AddBorders(0,2,0,0) return last
1.5倍速再生用スクリプト自動生成→再生 set magnif=1.5 set player="C:\Program Files\Windows Media Player\mplayer2.exe" set avsfile=%TEMP%\temp.avs if not exist %1 goto :EOF echo AviSource("%~1")> %avsfile% echo EnsureVBRMP3Sync()>> %avsfile% echo SelectEvery(Int(Framerate()/30)+1,0)>> %avsfile% echo AssumeFPS(Framerate()*%magnif%)>> %avsfile% echo TimeStretch(tempo=100*%magnif%)>> %avsfile% echo return last>> %avsfile% if not exist %avsfile% goto :EOF %player% %avsfile% del %avsfile%
>>493 このスレはAvisynthスクリプトのスレだからバッチスクリプトにする必要は無いよ
>>494 いや再生用にわざわざスクリプトを用意しなくても良いし、見終わってもスクリプトを削除する必要もない
結構有用な技だよ。
497 :
492 :04/10/27 02:10:29 ID:AMaX+O68
なんか突っ込み入れて欲しい(´・ω・`)
ああ何となく分かった でもthere is no function named "TimeStretch"ってエラーが出る
ああバージョンの問題か TimeStretchは2.55以降なのね
応用すればソースファイルをD&Dするだけで自動エンコなんてこともできるかな。
>>496 必要なのは、再生するファイルを渡すだけ。(バッチファイル自体は拡張子.cmdとした方が良いかも)
あとは、デスクトップやSendToにショートカット作成するんで良いのでは?
ファイルの関連付けで、再生するアプリをこのバッチファイルに関連付けしちゃえば、
エクスプローラからダブルクリックだけで良いけどこれはやりすぎかも。
専用のソフト使わなくてもD&Dだけでそのファイルを読み込めるAVSを作れる方法が
あると分かっただけでも俺にはかなりありがたい
いろんな応用も効きそうだし
>>493 サンクス
>>497 別に取り立てて突っ込むところが無いせいじゃない?
>>500 そんなバッチ、需要なんて無いんじゃない?Reena!とかあるし。
Reena!やdougaαとか知らずにmpeg2ソースからXviD+oggのogmを自動で作成するバッチ組んだ漏れ・・ orz
>>497 じゃ突っ込むよ
Auto24FPSの"blend"は嫌
*dust|*smooth|colorYUY2 などは試した?
代替が利かなければaviutl呼び出せばいいけど
そうでないならどちらか一方で完結させた方が...
>>492 Lanczos3Resizeよりも内蔵のLanczosResize使った方が速度的にいい
精度どうこう言っても見た目は変わらん
あとリサイズ後にNRはしない方がいい
やるならリサイズより前にもってこい
間引きがイマイチなAuto24FPSでBlendは好ましく無い
他のフィルタでの間引いて解除漏れをBlendで消すとかの使い方の方がいい
突っ込むならこれくらいか?
>>492 そのスクリプトだったらAviUtl使った方がいいよな
508 :
名無しさん@編集中 :04/10/28 13:54:35 ID:ayg9nf9L
120fpsって、24と30を一旦別々に出力するしか無いんでしょ〜か?
ITVFR
>>509 >>508 の聞きたいのは、スクリプト上で24fpsと30fpsをtrim等で分けて記述して、
出力する時に1本の動画ファイルとして出せないかという事だと推測してみる
出力プラグインとセットで作ればできそうな気もするけど・・・漏れはWMV9のVFRを
吐けるような物を作って欲しいとか言ってみるテスト
Reena!とかdougaαでもいいんだけど、Reena!はasfコンテナ使えないし、
dougaαだと縞表示が無い、asfコンテナが最近の環境で何故か使えなくなってる。
フレームレートの異なるクリップを繋げて出力するのは不可能。 エラーが出る。
512 :
492 :04/10/28 21:32:05 ID:EHJ1h31Y
>>505 >>506 Thx!!とても参考になったYO!!上に書いたやつを
IT(fps=24,ref="TOP",blend=false,diMode=0).Auto24FPS(false,24,16,"blend",false)
に置き換えてITで間引いてAuto24FPSで縞部分を二重化することにした。
あとNRだの何ので散々画像を弄っておきながら、拡大縮小の微々たる精度が
どうもこうも無いと今更ながらに気付かされて
LanczosResize(640,478)
に置き換え。
以前はFaeryDustを使ってたけど時間との兼ね合いで排除。
MipSmoothの導入も検討してたけど思いっきり緑がかった色になったから却下。
で一転してIIR-3DNRに。
IIR系は画像を落ち着ける効果があると認識しているので、フィルタリング後にリサイズを
咬ませた場合、効果が落ちることが無いか気になっているのですがどうなんでしょうか?
イマイチIIR系NRの動作が分かっていないので、そのうち気合入れてソ−ス読んでみます。
画像処理の知識が殆ど無いからきつそうだ(;´Д`)
>>507 ごもっともで∧||∧
>>511 Aviutlで無理矢理結合できない?
60fpsのシーンがある動画をvfrで作りたくて、
Aviutlで無理矢理結合して、タイムコード書いて
mkvで作成したことがあるよ。
って、Avisynthで出力する場合の話か。勘違いしてた、スマン。
515 :
508 :04/10/29 02:13:26 ID:9RY/TtM2
>>510 Reenaかdougaα使えば出来るんでしょうか?
2.5なんで、dougaαを入れてみたんですけど、どこで120f指定するのかよくわかりません。
出来れば、24/30/60混合をまとめて120一本でだしたりしたいんですが…。
>>515 Reena!は24-60、24-30等、2種類までなら違fpsの混合設定ができる。
24-30-60みたいに3種類はできない。
dougaαはまともに触ってないからわからないけど、Reena!と同じくできないんじゃないかと。
というか、
>2.5なんで、dougaαを入れてみたんですけど、どこで120f指定するのかよくわかりません。
この程度の事を人に聞くようなら、あきらめた方がいい。
517 :
508 :04/10/29 17:49:13 ID:9RY/TtM2
>>516 初心者でスマン。
AVI60のパスを指定する場所はあるのに、
どこでどう呼び出すのかがわかんないんです。
#周期判別不能=半分位適当/テロ欠け各話対応要/TFF用 # function MaihimeED24(clip p) { p=p.DoubleWeave d=p.Pulldown(0,3) e=p.Pulldown(1,4) return (d.trim(0,275)+e.trim(276,0)) \.ac(275,296).ac(526,537).ac(803,825).ac(1688,1699) } # function ac(clip c, int st,en) { r= c.trim(st,en).AntiComb r= (st>0)? c.trim(0,st-1)+r : r return (en<c.framecount-1)? r+c.trim(en+1,0) : r }
>>519 Its使ってみたら?
でも舞-HIME EDの切り方って俺と全然違うのは何故なんだろう?
0- 349 <10010>
350- 1019 <01001>
1020- 1369 <00101>
1370- <01001>
>>520 どもです。切り方違うのは、うちの受信環境では縞がよく見えずほぼ適当なのと、
30の段階で切るか24化してから切るか、でフレーム番号が違うため、
とクロスのどこで周期替えるか、でしょう
そちらの切り方では、
{ p=p.DoubleWeave c=p.Pulldown(2,4) d=p.Pulldown(0,3) e=p.Pulldown(1,4)
return (d.trim(0,281)+e.trim(282,817)+c.trim(818,1097)+e.trim(1098,0))
…
になると思う。(こちらより正確だと思われます)
itsは、Encの自動24にも誤爆がある、だったらsynthだけで手動24…
ということで今回はパスです
>>520 <10010>の部分、Itsのdefの構文ですよね。
法則性がわからないのですが意味を教えてください。
>>522 まずDoubleWeaveの説明だが、Tをトップフィールド、Bをボトムフィールドとすると、
0(0T0B) 1(1T1B) 2(2T2B) 3(3T3B) ・・・
を
0(0T0B) 1(0T1B) 2(1T1B) 3(1T2B) 4(2T2B) 5(2T3B) 6(3T3B 3T4B) ・・・
と倍のフレーム数に拡張する(つまり間にフィールドオーダーの入れ替わったフレームを挟んでいる)
IVTCするのは、ソース5フレーム中4フレーム選択するということだから、
doubleweave後だと、5フレーム中2フレーム(10フレーム中4フレーム)を選択すれば良いことになる。
<10010>とは、つまりTMPGEncのパターン指定と同じであり、
選択の指定で、1は選択、0は捨てることを意味している。
<10010>は、つまり 5フレーム間隔で、選択、捨て、捨て、選択、捨て、というパターンで
以降フレームを取捨選択してくことを意味する。
Avisynthだと、SelectEvery(5,0,3)とかPulldown(0,3)と同じ意味となる。
なお、<10>だと2フレーム間隔で選択、捨てとなるから、結局元のままとなることはわかるだろうか?
>>524 今回のようにEDだけのソースを用意して出力も24fpsにするのなら、
>>520 の4行だけ書けばそれで良いんだよ。
もし本編も付いているなら、
0-29999 'IT()'
offset 30000
0- 349 <10010>
350- 1019 <01001>
1020- 1369 <00101>
1370- <01001>
とかにしてEDの先頭を0にずらせば良い。
それと実際にはこの4行だけでは、フェードアウトしてる部分に縞が残るので 1370-とか最後を誤魔化してるけど、微細加工するか、 この後に縞解除用のフィルタを適用するかしないといけないのでした。
手間かけて手動24化してもフェード縞の為にボカす いい手はないでしょうかね? AntiComb -> 縞の部分だけしか影響されないが、ソースによってはゴミが出る Auto24fps("blend") -> よけいなフィールド操作される時がある EquLines -> 発想はいいと思うけど、ほとんど効果なし
Auto24fpsの閾値を256にする
FilterRangeEx(100, 102, 500, 504, "IT(fps=30, diMode=3)")
# 選択範囲のフレーム削除 # DelFrames(削除開始フレーム番号, 終了フレーム番号) # DelFrames(削除開始フレーム番号, -フレーム数) function DelFrames(clip clip, int "first_frame", int "last_frame") { first_frame = default(first_frame,0) last_frame = default(last_frame,0) all = ((first_frame<0) && (last_frame<0) && (first_frame-last_frame)<= 0) ? 1 : 0 last_frame = ((first_frame<0) && (last_frame<0) && (first_frame-last_frame) > 0) ? (first_frame-last_frame-1) : last_frame first_frame = (first_frame<0) ? 0 : first_frame # 0以下なら0にする all = (first_frame>=clip.Framecount) ? 1 : all last_frame = (last_frame==0) ? (clip.Framecount-1) : last_frame last_frame = ((last_frame<0) ? (-last_frame-1 + first_frame) : last_frame) last_frame = (last_frame < first_frame) ? first_frame : last_frame # first_frame以下ならfirst_frameにする Assert(!(first_frame == 0 && last_frame >= (clip.Framecount-1)), "DelFrames : Error") # 全フレーム削除は出来ない。 index = (clip.Framecount-1)<=last_frame ? 2 : (first_frame==0) ? 0 : 1 index = (all == 0) ? index : 3 return Select(index, clip.Trim(last_frame+1, 0), clip.Trim(0,-first_frame) ++ clip.Trim(last_frame+1, 0), clip.Trim(0, -first_frame), clip) } 1箇所削除するのにTrimを2回使うのが少し面倒だったんで ユーザー定義関数作ってみた。 範囲指定方法はTrimとほぼ同じです。 使用例 DelFrames(100,149) # 100番から149番までの50フレームを削除 [ Trim(0,99) ++ Trim(150,0)と同じ ] DelFrames(100,0) # フレーム100番以降を全て削除。 DelFrames(100,-100) # 100番から199番までの100フレームを削除。 DelFrames(0,-1) # 最初の1フレームのみ削除。
>>531 どういう目的?
CMカットならVDとかVDMとかで済むし?
内部関数でApplyRangeがあるのを、FilterRangeEx調べるまで知らなかった……恥 function KannaOp24(clip p) { p=p.DoubleWeave a=p.Pulldown(0,2) b=p.Pulldown(1,3) c=p.Pulldown(2,4) d=p.Pulldown(0,3) e=p.Pulldown(1,4) f=p.SelectEvery(10, 0,2,6,8) # return a.u(e,570,"d0").u(d,767).u(b,915,"be").u(a,1065,"be").u(b,1106) \.u(c,1236).u(f,1257).u(b,1279).u(e,1385).u(b,1495).u(e,1558,"be").u(d,1620,"be") \.u(d,1718,"de").u(e,1772).u(a,1797,"be") \.FilterRangeEx(640,648, 1770,1775,"""Auto24fps(false,256,16,"blend")""") } # # クリップ2つをフレーム番号nで繋げる function u(clip p,q, int n, val "fnc") { s=(n>1)? p.trim(0,n-1):p.trim(0,-1) r=q.trim(n,0) return defined(fnc)? Eval(fnc+"(s,r)"):s+r } # 上の補助関数(主に片フィールド処理用) # 前クリップの最終フレームを破棄(その前のフレームで補完 function de(clip c,d) { return c.freezeframe(c.framecount-1,c.framecount-1,c.framecount-2)+d } # 前クリップの最終フレームを二重化 function be(clip c,d) { return c.ApplyRange(c.framecount-1,c.framecount-1,"Auto24fps",false,256,16,"blend" )+d } # 後クリップの先頭フレームを破棄(次のフレームで補完 function d0(clip c,d) { return c+d.trim(1,0).DuplicateFrame(0) } # 後クリップの先頭フレームを二重化 function b0(clip c,d) { return c+d.ApplyRange(0,0,"Auto24fps",false,256,16,"blend" ) }
>>532 ちょいカット用です。
VDで.vcfファイル作る程のカット数でもないなーってときに使うつもり。
削除範囲指定のほうが後で見たときに分かりやすい場合もあるかなと。 まぁ好みの問題ですが。
あヴぃsyんth
あヴぃsyんth
537 :
名無しさん@編集中 :05/01/21 22:59:35 ID:4zc3maQ3
ほす
スレタイどおりに貼りますね PluginDir = "C:\Program Files\AviSynth 2.5\plugins\" FileName = "アニメ" FileDir = "D:\source\" LoadPlugin(PluginDir + "LoadPluginEx.dll") LoadPlugin(PluginDir + "MPEG2DEC2.dll") LoadPlugin(PluginDir + "MpaSource.dll") LoadPlugin(PluginDir + "AddRange.dll") LoadPlugin(PluginDir + "a60224.dll") Import(PluginDir + "RingingCanceller.avs") LoadPlugin(PluginDir + "cc.dll") LoadPlugin(PluginDir + "hqdn3d.dll") LoadPlugin(PluginDir + "_2DCleanYUY2.dll") #video = MPEG2Source(FileDir + FileName + ".d2v") #Audio = MPASource(FileDir + FileName + " MPA T01 DELAY -66ms.mpa").DelayAudio(-0.066) #AudioDub(Video,Audio) AddRange(FileDir + "アニメ.vcf") AssumeTFF() DoubleWeave() a60224(fast=false, blur_rate=0.027, x1=8, x2=8, y1=6, y2=6) Crop(16, 6, -16, -6, true) cc() ConvertToYV12 hqdn3d() ConvertToYUY2 _2DCleanYUY2(0, 2, 2, 2, 0, 2, 2) LanczosResize(640, 480) return last
スレタイどおりにショボイですね。
ソースファイル名を変数にするのは気付かなかった・・・ あと、2.5系でMPEG2Sourceで読み出した場合、色空間はデフォルトでYV12だから ConvertToYV12要らないんじゃないの?
>>MPEG2DEC2.dll 見れ
542 :
538 :05/01/22 02:52:23 ID:l9PNrVtW
もういろいろ試すの疲れた。ファイルサイズが小さくて
鑑賞に堪えうるならそれでOK。XviD1Passだし。
>>540 DVD2AVI 1.76 Plusなので色空間はYUY2ですよ。たぶん。
スクリプトって自作関数の話じゃなく、 エンコに普段使ってるやつの事なのかい
Avisynthはスクリプト言語だからスクリプトでしょ。 スレの最初の方ではこういう流れだったと思うけど
最後に何でYUY2にするの? _2DCleanYUY2を使いたいという理由だけで、そんなことするの?
>>542 > DVD2AVI 1.76 Plusなので色空間はYUY2ですよ。たぶん。
>>541
LoadPlugIn ("e:\AVSplug\VSFilter.dll") # Read files "01.jpg" through "47.jpg" ImageSource("e:\pic\%02d.jpg", start = 1, end = 47, fps = 1) Lanczos4Resize( 320, 240 ) textsub("e:\AVS\Word.ass") return last
>>545 まぁ、そういうことかな。早いし、他のYV12のに変えると、
また設定とかやらないといけないし。メンドクセ。
>>546 ツッコミサンクス。MPEG2DEC2がYUY2にするんだった。
Avisynth2.5はYV12に対応しただけの代物。 デフォルト色空間がYV12ってワケじゃない。
>>547 それで出力される color space は RGB でしょうか?
_2DCleanYUY2のYV12対応版は使わんの?
今確かめたら、YV12対応の_2DCleanYUY2使ってた。 俺ってバカだ・・・。ort
>>550 最後にinfo()をつけて貰えばわかるけど、RGB24です。
っていうかMPEG2DEC3使えば最初から最後までYV12で通せるんだし、変えたら?
>>554 思い出したよ、以前はTemporalSmoother使ってたからMPEG2DEC2
使ってたんだよ。TemporalSmootherはアニメだとガシガシ容量減るから
MPEG2DEC3使うことにする。レスサンクス
時代はもはや DGDecode です。
DGDecodeってDGIndex以外は確か使えないんだろ。 DGDecodeっていろいろバグ持ちだったけど、直ったの? そもそもドナルドたんだし。
ドナルドってフォーラムでの発言が痛いだけで嫌われてるんでしょ。 プラグイン自体のバグはReadMeに書いてあるし、不安な要素はないと思うが。
>>562 LOLI-Jのは先頭のBフレ二枚がなくなるバグあるしIDCT処理のバグも放置だけど?
なんだかんだとまあいってるうちにDGdecode1.10でましたよ。
>>560 そんな酷いバグなんてあったか?
使ってても無いように思えるんだが
1枚や2枚減ったぐらいで皆、ガタガタ言うな。
566 :
test :05/01/23 23:08:19 ID:XLJg71I9
echo off DGIndex -ia=3 -FO=0 -YR=1 -TN=1 -OM=1 -AIF=[%1] -DRC=2 -OF=[%1] -Exit exit
おまいらまるもつかえよまるも
俺はおまるものリンギング低減使ってるよ
569 :
名無しさん@編集中 :05/02/10 03:01:27 ID:FQhBVlD9
あげるぜよ
インターレース解除したあとに、 true120fpsにして、1フレームずつチェック、 前のフレームと比較してまったく同じなら次フレームチェック、 違うなら、それまでの同じフレームを1フレにまとめ、120で割ったfpsに変更(vfr)。もしくはNullを仕込む。 こんなのがあれば復元や再編集は面倒だけど、 混合もダイジョウブ。 と、初心者的妄想、およびチラシの裏。
>570 問題はノイズの切り分けだな。 下手すると全部120で吐き出されかねない。
##### ディレクトリ指定 ##### PluginDir = "C:\AviSynth\plugins\" SourceDir = "C:\AviSynth\sources\" ##### プラグイン読み込み ##### LoadPlugin(PluginDir + "MPEG2Dec3.dll") LoadPlugin(PluginDir + "GuavaComb.dll") LoadPlugin(PluginDir + "FluxSmooth.dll") ##### ソース指定 ##### MPEG2Source(SourceDir + "xxx.d2v") AudioDub(last,WavSource(SourceDir + "xxx LPCM T01 48KHz.wav")) YV12toYUY2() # 色空間をYUY2にする AssumeTFF() # フィールド・オーダー指定 GuavaComb(Mode = "NTSC") # クロスカラー除去 InterlacedFluxSmoothST(7,7) # ノイズ除去 Crop(6,0,-10,-0) # 無効領域を切り落とす ConvertToYV12(interlaced=true) # 色空間をYV12へ変換 Normalize() # 音声正規化 ##### ユーザ定義関数 ##### function InterlacedFluxSmoothST(clip clip,int s,int t) { clip = clip.SeparateFields() Top = clip.SelectEven().FluxSmoothST(s,t) Bottom = clip.SelectOdd().FluxSmoothST(s,t) clip = Interleave(Top,Bottom).Weave() return clip } return last
FluxSmoothって初めて聞いた
>>572 GuavaCombって副作用が大きい割には効果低いと思う。
DeCrossの方が遥かにいい。
あとカラースペースの変換タイミングとかが微妙に不明。
フィールド分離とかインターレース解除の際のYUY2変換はわかるけど。
>>573 大分前からあるから無名じゃないと思うが。
名称が変わってからは多少よくなったような感じだけど、
いかんせん、もっといいフィルタがあるから使う気になれん。
ごめん、GuavaCombはドット妨害除去か。 クロスカラー除去と間違えた。
FluxSmoothとTemporalSmootherの効果的な違いって何ですか? 副作用の違いも教えてください。
>>576 ソースが実写かアニメかでもだいぶ違ってくるし、アニメでものっぺりした方がいいとかいろいろあるから、
結局は自分の好みでって事だ。AvsPreview2とかでノイズの除去具合とか確かめながらパラメタを決めて
1分ぐらいのソースでエンコしてみ。TemporalSmootherについては過去ログとかでもよく出てるから、そこら
へんを参考にしてみれば。
DVDからリプル場合を想定した、ブロックノイズを綺麗さっぱり消して ノッペリさせるのと、Mpeg2エンコ時に微妙にエッジにでるリンギング を消し去るショボイスクリプトおながいします。
過去ログあさるか、片っ端から試せ。
漏れならわざわざそんなソース、エンコして保存しないで、まんま寝かす。
>>577 FluxSmoothはTemporalSmootherに比べフェードが滑らかですね。
TemporalSmootherの何か、ベールが剥がれる様にフェードする副作用?
そいつが少ない感じです。
2D機能は排除して色ノイズ用のパラメータが加われば速度効果比が高く、
処理速度もTemporalSmootherとほぼ同じなので良いフィルタと思うのですが・・・。
他に処理速度が速く効果的なフィルタが存在するのですよね?あまり詳しくなくってスマソ。
582 :
574 :05/02/24 20:56:26 ID:wzmfQmTQ
>>581 >他に処理速度が速く効果的なフィルタが存在するのですよね?あまり詳しくなくってスマソ。
漏れの書きこみの事か?誰も処理速度が速いなんて一言も言ってないが。
時間軸NRでDust以上の物は知らん。
お手軽に速く、そこそこの効果って言うのならKenKunNRT、RemoveDirt、HQDN3D等を
使ったら?特にRemoveDirtは速度の割にはかなり綺麗になると思うが。 >サイズが縮まないが
はっきり言ってTemporalSmootherは過去の遺物。比較すべきフィルタでは無いと思う。
俺はアニメソースには以前TemporalSmootherを愛用してたぞ。結構サイズも縮むしな。でもHQDN3Dで 俺の見た目で同じようなパラメタ設定にすると、HQDN3Dの方が縮む方が多いし、速度もそんなにかわらんしな。 だから今ではHQDN3D。それにTemporalSmootherってYUY2しか使えなかったんじゃなかったっけ?
>>583 以前って言うなら漏れも愛用してたよ。
KenKunNRTが出てから完全に入れ替わったけど。 >現在はDust
そういやTemporalSmootherはYV12版が無いな。
Dustって2.5でうごかねーぢゃん!!
アニメの画風にもよるけど、ノッペリした画風の場合は_2DCleanYUY2も併用する。 それ以外はFluxSmoothSTだけを掛ける。
チラシが両面刷だったので書き込みますね。 ちなみに実写のDVDエンコのためのもの。 なんか突っ込んでください! name = "hogehoge" desktop = "C:\Documents and Settings\Admin\Desktop\" puraguin = "C:\Program Files\AviSynth\plugins\" LoadPlugin(puraguin + "MPEG2Dec3.dll") LoadPlugin(puraguin + "TomsMoComp.dll") LoadPlugin(puraguin + "De.dll") AudioDub(mpeg2source(desktop + name + ".d2v"),WavSource(desktop + name + " LPCM T01 48KHz.wav")) DeDot(20,20,15,5) TomsMoComp(1,5,0) yv12toyuy2() Crop(0,60,720,355) LanczosResize(704,396)
実写DVDをわざわざインタレ解除するのか (´ー`)
なんで?するだろ。しなかったら縞縞じゃん。
>>587 僕の場合はFluxSmoothTだけど上手くビートノイズを除去しれくれてるような気がします。
サイズの縮み具合はTemporalSmootherの方がいいと思うけど副作用が少ないので
強めにかけてもいいような気がします。
>なんで?するだろ。しなかったら縞縞じゃん。 >なんで?するだろ。しなかったら縞縞じゃん。 >なんで?するだろ。しなかったら縞縞じゃん。 ( ´д)ヒソ(´д`)ヒソ(д` )
どっちでも正しい
>>588 突っ込みどころ多すぎるなこりゃ・・・
実写のDVDというがフィルム映画だったりしたらその設定だと最悪だな
フィルムじゃないならインタレ解除よりも保持してインタレエンコの方がいい
DVDなのになんでDedotしてるの?
無駄にYUY2変換してるのはなぜ?
なんで奇数クロップしてるの?
奇数クロップしてリサイズするならLanczosResizeで範囲指定
あとはアス比がヤバそう
実写DVDを60→30fpsにしようが、インタレ解除しようが、そんなのは人の勝手。
大体、実写=60iって決め付けるのはどうよ?
それよか縦を引き伸ばししてる上に計算上はアス比がちょっと狂ってるな。
>>594 はアス比からフィルム映画の可能性を指摘してるが、
確かにその場合は最悪かも。
しかしDVDなのにDeDotが要らないってのは、DVDのエンコードの
経験が少ないんだろうな。
>>595 普通、映画のことを実写はと言わない。
映画は映画。
>>596 それはあんたの普通。
映画でも実写とアニメは分けて考えるからな。
それにビデオ撮影された物でもPVなら24-30-60が混じった
物だってあるだろうに。
それとも今度はPVはPV、実写は実写とでも言うのか?
実写にはいろいろあるのに
>>588 に実写としか書いてないのが問題だったな
hogehogeなんて認めない
homohomo
601 :
588 :05/02/26 15:16:00 ID:36RrRlPy
>>598 エンコしようとしてたのは30-60の混ざったPVです。
>>594 YUY2変換したのはしないとCrop使えないから。
奇数クロップしたのは下の帯が65だったからだけど、
LanczosResizeの範囲指定知らなかった、スマソ。
今までいろいろ試してきたけど結局シンプルなのにたどり着いたけど
まだまだだったんだなorz
>>601 漏れYV12でソース読み込んでるが、変換しなくてもクロップできるぞ。
それに、DeDot、TomsMoCompはYUY2でも可能だからはじめからMPEG2DEC2
でYUY2で読み込めばいいだけだし。
YUY2でもYV12でも結局エンコするときにRGBになるんだからかわらないんじゃないと思ったんだけど
MPEG2がRGBか、初耳だなそんな話。
エンコするときに × aviにエンコした後 ○
( ・ω・)モニュ?
>>606 お前、おもしろすぎ。もう1回ぐらい訂正してくれ。
次はCMYKか
なに!?DivXとかWMV9のaviにエンコしたらRGBじゃないの? もいっかい勉強しなおしたほうがよろしいですね、俺。でなおしてきまつ。
名前欄ミスった。。。
狼住人を代表してお詫びします
ということはJPEGもRGBなわけだな。勉強になる。
R・G・B!R・G・B!
色空間のことサッパリわからん 勉強するのにおすすめのサイトあったら教えてクレ
>>616 ありがとう
ここで勉強して出直してくるよ
まったくショボイぜ
ほしゅ
mkv(vfr/チャプター打ち)前提のを晒してみる…… # # プラグイン/ソース読み込み部分略 # PriF # S0=trim(673,1921).f24p #オープニング S1=trim(1922,2371).f30p S2=trim(2372,2502).f24p S3=trim(2503,2638).f30p S4=trim(2639,2739).f24p S5=trim(2740,3037).f30p S6=trim(3038,3372).f24p S7=trim(5468,22969).f24 #Aパート S8=trim(25668,45927).f24 #Bパート S9=trim(45928,48627).Ed #エンディング S10=trim(50573,51472).f24 #次回予告 S99=trim(51916,51920).PostF.f1.Loop(2) #エンドフリップ # (S0+S1+S2+S3+S4+S5+S6+S7+S8+S9+S10).PostF+S99 return last # function f24(clip c) { c=c.Auto24FPS(true,24,0,"blend") return c } function f24p(clip c) { c=c.Decimate(cycle=5) return c } function f30p(clip c) { return c.assumefps(2997,125,false) } function f1(clip c,int "no") { return c.trim(default(no,c.framecount-3),-1).assumefps(2997,125,false) }
#function Ed(clip c) # 長いんで略 # function PriF(clip c) { c=c.AssumeTFF c=c.DeCross(30,60,1,false) c=c.EraseGhostV(256,"G:\work\GF08"+"_SearchGhostV.log") c=c.Crop(10,60,704,360) c=c.FluxSmoothT(5) return c } # function PostF(clip c) { c=c.ConvertToYUY2.ConvertYUY2ToAviUtlYC c=c._AU_nijimi(80,32,-40,32) c=c._AU_RingingCanceller(-4,-2,8) c=c.ConvertAviUtlYCToYUY2.ConvertToYV12 c=c.HQDN3D(3,3,3,2.25,4) c=c.Crop(0,2,704,358).AddBorders(0,0,0,2) c=c.UnSharpMask(12,3,9) c=c.WarpSharp(35,2,50,-0.6) c=c.LanczosResize(640,360) c=c.ColorYUY2(0,0,10,0,0,0,0,0,0,0,0,0,debug=0) return c }
タイムコード # timecode format v1 assume 23.976 998,998,19.98 999,1448,29.97 1552,1552,13.32 1553,1688,29.97 1768,1768,13.32 1769,2066,29.97 16335,16335,14.985 チャプター CHAPTER01=00:00:00.000 CHAPTER01NAME=オープニング CHAPTER02=00:01:30.090 CHAPTER02NAME=Aパート CHAPTER03=00:11:14.074 CHAPTER03NAME=Bパート CHAPTER04=00:22:30.083 CHAPTER04NAME=エンディング CHAPTER05=00:24:00.174 CHAPTER05NAME=次回予告 CHAPTER06=00:24:30.204 CHAPTER06NAME=エンドフリップ
チラシのウラ…… タイムコード中のおかしなfpsは24fps部分の終端補正 例えば、30fps1249フレームを24fps化する場合、 あるべきフレーム数は 1249x24/30= 999.2フレーム 実際には小数点以下切捨て 999フレームになるので、 0.2フレーム分の再生時間が足りなくなる で、最終フレームの時間(fps)を補正して、 0,997,23.976 998,998,19.98 #23.976fps/1.2=19.98fps 小数点以下が切り捨て/切り上げのどちらになるかは多分… Auto24Fps/IT/Decimate等…切捨て SelecEvery/PullDown等…パラメータによる(VDMにかけて確認したほうが早い?) Weave/Layer等 …切り上げ 範囲を結合してから24fps化しない( (trim + trim ).f24 にしない)のは チャプター打ちの都合 範囲の先頭にチャプターを打つ事にすれば、 単純にソースのフレーム数から経過時間が計算できるんで (終端補正は必要)
チラシのウラ2…… エンコ手順 @Reena! : CMカット&音声出力/ゴースト除去設定/fpsとチャプターで範囲分割 Aサクラエディタ : Reena!の範囲指定をマクロで整形/Excelとavsにコピペ BVMD1.4.13+スクリプトエディタ : avs整形/手動部分周期切&フレーム数確認/aviにエンコ CExce l: fps修正/チャプタータイトル打ち/タイムコード&チャプター出力 Dmkvmerge : 全部mux 長文スマン
アニオタ恐るべし
ここにも局長様のようなネ申が・・・
DeDotやDeCrossってインタレ解除やクロップする前にやるもんだよな? で、似たようなのにccてのがあるけど、DeDotやDeCrossはインタレ解除 クロップの前においてもエラー起きないんだが、ccはエラーが起きる。 エラーは Evaluate : Unrecognized exception ! ていうやつ。エラーの行数は 最後のノイズ処理のフィルタの行数。俺の環境ではクロップしてからじゃないと 正常に動かねぇ。俺と似たようなエラーが起こる香具師いる?
インタレ解除、クロップの前にcc置いてるけどエラー起きたことなんて無いよ。 きちんと引数で interlaced=true と指定してる?
AVIUTL変換の誤差とかフィルタの数で結構色がやばい事になっていそうだな ノイズ除去とシャープ化しすぎで細部がどうなってるやら
>>628 readme.txtに書いてあったから、すでにやってみてるんだが、それでもダメ。同じ現象。
それに、interlacedはYV12の時だけ有効じゃなかったっけ?FearyDust使うからYUY2
で読み込んでるんだが。ちなみに実写ソース。インタレ解除はTomsMoComp。
↑ID変わってるけど627です。
>>630 自分のはMPEG2dec3.allで読み込んでYV12toYUY2()でYUY2にして編集。
インタレ解除はIT。
ccのバージョンは2004/05/22
パラメータは説明書からコピペして
cc(y1=8,y2=8,c1=12,c2=112,interlaced=true,yc=2.,ylimit=true,climit=true)
のまま使ってる。
>interlacedはYV12の時だけ有効
そうでした。最初はYV12で使ってて、後からYUY2で使うようになったから
外すの忘れてた。
DEC2からDEC3でFearyDustはずしてcc(interlaced=true)にしてみたら、今度は画像が思いっきり乱れてる。 やはり、クロップの後にしたら正常に動作する。ccはインタレの前に置けとか書いてないから インタレ、クロップ後でもいいのか?俺は一応cc()とcc(interlaced=true)と、そのreadme.txtの やつを試してみたがどれも同じ。DeDotの場合はDEC2でインタレ前でも正常に動作するんだが。 DeDot、ccに比べたら少し遅いんだよなぁ。DeDot使えっていう暗示か?
>>633 今試してみたけど、ウチは問題無く使える。
cc()最新でdec3dgでYV12読み。ITの前に持って来てる。ITの後に
カラースペース変換してDustかけてるけど・・・
>>634 レスthx
どうもいじってみたら、LGhostをクロップ後に持ってくると、エラーが起こる。
クロップ前に持ってきたら、インタレ解除前でもcc()使えた。で、便乗で悪いんだが
LGhostって、インタレ解除やクロップより先に持ってくるものなの?
cc() TomsMoComp(1, 5, 0) UVtimingH(4,0,false) ColorMatrix() FrameCache(9).LGhost(1, 4, 20, 1, -2, 20, 3, 7, 16, 4, 7, 8) Crop(16, 6, -16, -6, true) FaeryDust(2) LanczosResize(640, 480) とりあえず、実写720x480MPEG2ソースをDEC2で読み込み。 上のような順番でフィルタかけてるんだが。
>>635 LGhostはDeenの後に持ってくるとおかしくなるけど
基本的にリサイズ前、インターレース解除後にかけてる。
それからcrop使わないでLanczosResizeでResizeとcropを
同時に行ってくれ。これでcrop絡みのミスは減ると思う。
LanczosResize(640,480,8,4,704,480)
こんな感じ。
ついでにccは作者様には悪いがどんなに弱く掛けても特定のシーンで
残像がバリバリ出るので使えん。a60224は動きが少ない処でミスるが
ソースによっては他の物よりいい結果が出るので多用させてもらってるが。
じゃ、そろそろ出かけるわ。
>>637 >LGhostはDeenの後に持ってくるとおかしくなるけど
Deenの前の間違え
AssumeTFF() SeparateFields() hage=Trim(0,-5) hoge=hage.Trim(4,-1) hoge=hoge.LanczosResize(hoge.Width(), hoge.Height() * 2) hoge=hoge.SeparateFields() hoge=hoge.AssumeFPS(hage.Framerate()) hage=hage.Trim(0,-(hage.Framecount()-1)) hage = hage ++ hoge hage ++ last.Trim(6,0) Weave() 前後のシーンがかぶってるわ。ああいやだ。 そうだ前のフレームの縦を二倍にしてみよう。 そのときにLanczosResizeを使おう。 これで気分的に縦の解像度が単純二重化より上の気がする。
スレが活性化してきましたな
そのレスはどこかで見た
漏れもCropの後にノイズフィルタかけてるんだがダメなのかな。 なんとなくサイズが小さくなった分、速度も上がってる気がするんだが。 cc以外のものって何使ってる?漏れは、thejam79のDeDot使ってるんだが、 GuavaCombもそこそこいい気もするが、イマイチ使い方がわからん。 英語がすらすら読めたらなぁ。
>>642 >英語がすらすら読めたらなぁ。
なんとなく読めればあとはテストをすればいいだけ。
漏れはDeDotを副作用が気にならないくらいに薄くかけてUnDot
(or UnDot相当のフィルタ)をさらにかけてる。
ちなみにドット妨害低減以外のフィルタでも工夫次第でドット妨害を
目立たなく、あるいは消す事ができるフィルタもある。
3つくらい使ってるが一つはVagueDenoiser。輪郭のドット妨害が
うまくぼかされて綺麗になる時がある。
あと2つは強力なので出し惜しみしとくよ。1つのヒントは↑のフィルタ。
VagueDenoiserか、漏れも今度試してみようかと思ったが、Waveletベースなのか。 たぶん重いんだろうな。漏れも実写はFearyDustのみだが、それでも平均4fpsしか でないんだよな。そこにVagueDenoiser加えたら1fpsぐらいしかでなくなるんじゃ・・・。
>>644 昔は重かったけど、大分前から軽いとはいえないがそんなに重くなくなったよ。
でも、最近のバージョンは必要以上にぼけやすいような気がする。
漏れが使ってるのはv0.29だわ。
Spatial系NRをがっつりかける人には向いてないかも。
(強くかけると古めのバージョンでもぼけぼけになる)
TomsMoComp(-1, 5, 1) でぼかしてます… 最近synth導入したヘタレからショボイ質問させて下さい フィルタの順番て 先 3D系>(インタレ解除)>ぼかし&シャープ>クロップ>リサイズ>色調&階調補正 後 基本的にはこういうことでしょうか?
AviSynth Filter CollectionのVagueDenoiserのURL間違ってるぽ。エラーページになるし。
にーやんの方はLefungus氏のサイトなぜか載せてない。Doom9から探したら見つかったから
いいけど。にーやん氏、ここ見てたら下のURL追加ヨロ
VagueDenoiser
Lefungus (Lefungus)
http://perso.wanadoo.fr/reservoir/ ちなみに、AviSynth Filter Collectionのはv0.28だった。
h抜くの忘れてた。
>>646 AviUtlだと時間軸系NRの事を3DNRって呼称するけど
Avisynthだと、Temporal(時間軸)系NR+Spatial(2D)系NR
のフィルタに3D〜って名前がついてる事が多い。
時間軸系NRとかTemporal系NRって言ってもらうとわかりやすい。
で、順番だけど、
インターレース解除前は、インターレース対応したフィルタならいいけど、
対応してない場合はフィールド分離する必要がある。
YC分離系→インターレース解除→Temporal系NR、Spatial系NR→色ずれ補正
→LanczosReSezeで同時にcropとResize→シャープ系→色調補正
って感じにかけてるけど・・・基本的にはどうだかシラン
>>649 レス感謝です
>インターレース解除前は、インターレース対応したフィルタならいいけど
てことは、最近ハヤリの(?)インタレXvidにする時は注意がいるのですね
気をつけます
>>650 「インタレ解除」の後で「時間軸系」でも大丈夫でしたか
参考にして試してみます
synthはフィルタたくさんあって楽しいけどタイヘンです…
>>647 修正しました。
Wikiへデータを移した時に、リンク漏れしてしまったようです。
はっきり覚えていませんが、AviSynth Filter Collectionのと同じURLでチェックしていたのが原因かもしれません。
>>650 最新版は、Fizick氏ので合っているはずです。
Lefungus氏もKurosu氏も、最近はDoom9のForumで見かけませんから、開発をやめたのかもしれませんね。
こちらのリンクも抜けていたので、Wikiの方を修正しておきました。
みなさん、情報提供、感謝します。
>>602 亀横レスだがMPEG2Dec2って2.0系だけだよな?
んなこたーない
色空間変換ってそんなに気になることか?
奇数クロップしたくないからアス比少しずらすのと アス比ずらしたくないから奇数クロップするか
661 :
名無しさん@編集中 :2005/04/07(木) 09:36:26 ID:cfbt7jmj
初心者スペシャル ####### Avisynth マスタースクリプト DVDリップ 字幕付き ####### ####### Plugin 設定 PluginDir = "c:\Path\Avisynth Plugins\" LoadPlugin(PluginDir + "DGDecode.dll") LoadPlugin(PluginDir + "GreedyHMA.dll") LoadPlugin(PluginDir + "ColorYUY2_for_25.dll") LoadPlugin(PluginDir + "LoadPluginEX.dll") LoadPlugin("C:\WINDOWS\system32\vobsub.dll") ####### ファイル入力 mpeg2source("d:\DGMPGDec 出力\XXXXXXX.d2v") ConvertToYUY2() ####### リサイズ 及び クリッピング 及び ボーダー追加 BicubicResize(704,396) AddBorders(0,42,0,42) ####### インターレース解除 及び 24fps化 GreedyHMA(1,0,5,0,0,1,0,0) ####### 輝度 及び 色調補正 Levels(0,1.4,255,0,255) ####### 字幕付け Vobsub("D:\Vobsub\VTS_01_0")
なんでYUY2変換するの?
GreedyHMA がエラーはくから。
#include<stdio.h> int main (void){ while(true){ printf("ゥ゙ォヶ\n"); } return true; }
板違い
MPEG2Source("D:\a.d2v",cpu=6) AssumeFrameBased().ComplementParity() Convolution3D (0, 6, 12, 6, 8, 2.8, 0) TomsMoComp(1, 5, 1) IT(fps=30,ref="TOP",blend=false,diMode=1) DeDot(30,30,10,5) UnsharpMask(64, 3, 8) crop(8,0,-8,0) LanczosResize(640,480) TVドラマ厨です。 輪郭くっきり好みなんですが、こんなんではどうでしょう?
いくらくっきりが好きといってもUnsharpMaskをそんなに強くかけたら擬似輪郭が出るんじゃない?
MPEG2Source("D:\a.d2v",cpu=6) DeDot(30,30,10,5) AssumeFrameBased().ComplementParity() AutoDeint("") Convolution3D (0, 6, 12, 6, 8, 2.8, 0) UnsharpMask(24, 2, 8) LanczosResize(640,480,8,0,704,480)
669 :
重複 :2005/04/09(土) 15:17:54 ID:UE+VtM9f
インタレ解除はしない
ドット妨害除去はAssumeFrameBasedの後に置くべきかと。
レスありがとうございました。 随分画質が落ち着いたし、サイズも縮みました。 これでまた春ドラマのエンコが楽しみになりました。 もっと良いご意見がありましたら、追加でお教えください。
672 :
名無しさん@編集中 :2005/04/10(日) 13:42:49 ID:6l1+dtiT
FFT3Dがよさげなんだけど設定を詰めるのが難しい・・ auf.avsの書き方を教えてください。
>>666 シャープなのが好みと言ってるのに縮小する意味がわからん
>>673 縮小すれば線は細くなるんだから別におかしくはないんじゃない?
拡大すれば当然ボケるし。
解像感という意味を含てのシャープっていうなら縮小は避けるべきだけど。
何の話してるの? 縮小してるようには思えないけど?
おっきいことはいいことだ
>>675 > 何の話してるの? 縮小してるようには思えないけど?
>>673 の意見には賛成しないが、縮小はしてるでしょ。
環境: Pen4 2.8Ghz / メモリ 1GB / WinXP SP2 ツール: AviSynth2.5 / VDM 1.5.10.1 コーデック: Divx5.1.1 / QB4 / [Use Bidirectional Encoding]のみチェック入 LoadPlugin(PluginDir01 + "MPEG2DEC.dll") LoadPlugin(PluginDir01 + "warpsharp.dll") LoadPlugin(PluginDir02 + "LoadPluginEx.dll") LoadPlugin(PluginDir01 + "Dustv5.dll") MPEG2Source(SourceDir + "a.d2v") AudioDub(last,WavSource(SourceDir + "a.wav")) AssumeTFF() crop(8,0,704,480) trim(0,2003) ++ trim(3204,218954) TomsMoComp(1,5,1) IT(fps=30,ref="TOP") PixieDust(5) LanczosResize(640,480) return last ソースはエロDVDの2時間15分モノ エンコすると処理速度2〜4fpsなんですが、この環境でPixieDust使えばこの位の速度なんでしょうか? Kenkunは11fpsくらいでしたが、実写にはPixieがよさげで速度も速いと聞き使ってみた次第です でも実際は、速度的にはKenkun > Pixieなんでしょうか? んなわけないと思われた方は、せめて処理速度向上のヒントだけでもお願いしますm(_ _)m
Dust系はWavelet並みに重いよ それに実写でPixieかけるなんて普通ありえない なんかTomsとIT両方やってるけど重くなるだけで無駄 そんなに速度重視したいならノイズ除去はしない方がいい あと実写ならインタレエンコにしとけ
なるほど 指摘ありがとうございましたm(_ _)m
Dustを追加しただけで20fps→3fpsになることもあるなぁ
IT で24fps化すると時間がかかるような気がするけど ためしに GreedyHMA 使ってみたら2時間もののソースで IT より30分早かったんだけど
インタレエンコしたいけどクロップできないのがイヤだな
奇数行でcropしたら、フィールドオーダーが逆転することに気をつけてれば問題はないね。 まあボトムフィールドファーストになったって別に構いはしないんだけど。
688 :
685 :2005/04/14(木) 18:48:42 ID:+EMK64HP
クロップじゃなくてリサイズできないって言いたかった
689 :
謎電波 :2005/04/14(木) 19:14:21 ID:FrcwGFi5
にーやん・・・ここにもあなたの加護を受けていない人がいます
加護より辻のほうが好きだな
強めのNRで矢口を消した
アス比調整で加護をスリムアップ
今流行のドザペクトかw
モヲタはAvisynth使いが多いのか?
インタレ保持で作るからじゃね?
Avisynthを使うこととインタレ保持に何か関連性があるのだろうか・・・
| | J
698 :
名無しさん@編集中 :2005/04/15(金) 12:49:47 ID:yoJbvR/M
あえて言えば、Avisynth通すときはインタレ保持したまんまにするのに少し面倒だな。
インタレ
メントレ
メンソレータム
>>691 おまえそれってまるで矢口が強力なノイズだと言いたげじゃないか
矢口はすでに消えた
FanFilter、使い方難しい。副作用でもやもやが出てしまう。 DeFreqもそうだったけどビートノイズ除去って難しいね。
茂木さんがだいぶ前に妄想してた逆位相ぶつけるタイプのビートノイズ除去 誰か作ってくれないかな。
擬似vfrなavi作成支援 要 InsNull.exe (Reena!付属 これのパラメータ作成用です) / (Avi30a) # 最初に記述 # global NulTblFilename="G:\work\tmp.tbl" # 出力されるNulフレームテーブルのファイル名 global tgtfps=120 # 変換後のfps(120fps化するなら120) global nultbl="" # ワーク用 # # スクリプト例 # PriF S0=trim(673,1921).f24p #オープニング S1=trim(1922,2371).f30p S2=trim(2372,2502).f24p S3=trim(2503,2638).f30p S4=trim(2639,2739).f24p S5=trim(2740,3037).f30p S6=trim(3038,3372).f24p S7=trim(5468,22969).f24 #Aパート S8=trim(25668,45927).f24 #Bパート S9=trim(45928,48627).f24 #エンディング S10=trim(50573,51472).f24 #次回予告 (S0+S1+S2+S3+S4+S5+S6+S7+S8+S9+S10).PostF # # return 直前に "WriteTbl" # WriteTbl return last
# # fps変換前後を "intbl"と"adtbl"で挟んでおく # function f24(clip c) { c=c.intbl.Auto24FPS(true,24,0,"blend").adtbl return c } function f24p(clip c) { c=c.intbl.Decimate(cycle=5).adtbl return c } function f30p(clip c) { return c.intbl.adtbl.assumefps(2997,125,false) } # # # 変換前のフレーム数を記憶しておく(だけ) # function intbl(clip c) { global nulwok=c.framecount return c } # # Nulフレーム計算 # fps: 変換後のfpsを明示(29.97fpsを30で表記、省略するとクリップから読み取る) # function adtbl(clip c,float "fps") { fps=default(fps,c.Framerate*30/29.97) m=float(tgtfps)/fps #変換係数 i=nulwok*tgtfps/30 #必要なnulフレーム数 j=c.framecount*m #そのまま変換した場合のフレーム数 ct1= (i==j)? c.framecount : c.framecount-1 #終端補正とか ct2= (i==j)? 0 : i+m-j str=string(ct1)+":"+string(int(ct1*m))
str=(ct2!=0)? str+",1:"+string(int(ct2)) : str str=(frac(ct1*m)!=0)? string(c.framecount)+":"+string(i) : str #変則fps等は補正なし均等割り global nultbl=(nultbl!="")? nultbl+","+str : str return c } # # ファイル書き出し # function WriteTbl(clip c) { return c.WriteFileStart(NulTblFilename,"nultbl") } スクリプトをVDMにかけると、Nulフレームテーブルファイル(例だと"G:\work\tmp.tbl")が出来る 上の例だと中身は "998:4990,1:6,450:1800,103:515,1:9,136:544,79:395,1:9,298:1192,268:1340,14000:70000,1:8,16208:81040",2160:10800,720:3600" エンコ後のaviファイル(たとえば"G:\work\tmp.avi")とNulフレームテーブルファイルを InsNullにかけて擬似vfr.aviに変換する InsNull.exe [変換前のファイル] [変換後のファイル] @[Nulフレームテーブルファイル] [ヘッダ倍率] 例: (コマンドプロンプトまたはバッチファイル等から) "C:\Reena\InsNull.exe" "G:\work\tmp.avi" "G:\work\tmp120.avi" @"G:\work\tmp.tbl" 5 InsNullで変換するとヘッダが微妙に狂うので、細かいこと気にする人はAvi30aで修正しておく (120fpsの場合、 83416,10000000 → 25,2997) とりあえず思いついて作ってみたが、最近ほとんど.avi作ってないんで、あまり検証してません バグがあったら(あると思う)スミマセン
MKV用のTimecode出力ツールあるからその処理無駄くさいと思うが。
>>710 そんな物がありましたか… orz
( 出来れば詳細教えて下さい。洩れの検索能力では見つかりませんでした
最近作ってるのはほとんどmkvなんですが、ヌルフレームの方が扱い簡単なんで、
この考えでとりあえず作ってみて、うまい事いけば、タイムコードやチャプターの計算/出力まで
スクリプトに埋め込みできると思ったんですが…
???? ひょっとして、あじ氏のconverterの事ですか? aviutl+asfを使えと言うご助言ですか? いたみいります (converter群は優秀なツールだと思いますが、大元のvfr作成にどのように使用するか、ご教授下さい)
kiraru2002のとこのitsは使えないの? Reena!とかdougaαの出力をカット&ペーストで利用できそうな気がするけど?
…… どうゆう判断基準で、どこからどこまでをカットして、 どこにペーストするのか、 そもそも何のためにカット&ペーストするのか、 洩れの知能では分かりませぬ ……
レスが無いなぁ…… 分割結合エンコか自動VFRで十分なのかな? 貼っちまった義務上、修正 /計算を切捨→6捨7入(格納fpsが30の公倍以外の精度用) /1フレーム以下の時のヘマ +α # function adtbl(clip c,float "fps") { fps=default(fps,c.Framerate*30/29.97) m=float(tgtfps)/fps # 変換係数 i=round(float(nulwok)*tgtfps/30-0.2) # 必要なnulフレーム数 j=c.framecount*m # そのまま変換した場合のフレーム数 ct1= (i==j)? c.framecount : c.framecount-1 # 終端補正とか ct2= (i==j)? 0 : int(i+m-j) str=string(ct1)+":"+string(int(m*ct1)) str=(ct2!=0)? str+",1:"+string(ct2) : str str=(frac(ct1*m)!=0 || c.framecount==1)? string(c.framecount)+":"+string(i) : str # 変則fps等は補正なし均等割り global nultbl=(c.framecount==0)? nultbl \ : (nultbl!="")? nultbl+","+str : str return c }
# # 24/30/60fps以外も使えるが、格納fpsによっては当然カクつく # 20+24+30+48は144fps化がバランス良に思う # function f20(clip c,int "phase",string "method") { c=c.intbl c=(defined(phase))? c.DoubleWeave.SelectEvery(3,phase) \ : Eval("c."+default(method,"IT(fps=30,dimode=3)")+".Decimate(cycle=3)") return c.adtbl.assumefps(2997,125,false) } function f48(clip c,int "phase",string "method") { c=c.intbl c=Eval("c."+default(method,"TDeint(mode=1,tryweave=true)")) c=Eval("c."+(defined(phase)? \ "SelectEvery(5,"+select(phase,"1,2,3,4)","0,2,3,4)","0,1,3,4)","0,1,2,4)","0,1,2,3)") \ : "Decimate(cycle=5)" )) return c.adtbl.assumefps(2997,125,false) } function fAnyFps(clip c,float fps,string "method") { c=c.intbl c=Eval("c."+default(method,"TDeint(mode=1,tryweave=true)")) c=c.FDecimate(fps*29.97/30) return c.adtbl.assumefps(2997,125,false) }
同じ方だと思うが、
>>620-624 のは、すごく参考にさせてもらってます
(自分でも理解がおよぶ部分だけパクって)。特に「24fps部分の終端補正」の部分は
目から鱗。ただ60pからんでくると、なんか妙なことになったりすることあるんで
結局分割してたりして…。将来的にはAVCとMP4でやりたいなあ、VFR。
>>718 レスどうも
30→60fps変換では、フレーム数が単純に倍になるだけで、
補正はいらないハズですよ
以前書いてみたのは、
30fps NフレームをMfpsに変換した場合のあるべきフレーム数は
NxM/30 だが、フレーム数は整数にしかならないので、
小数点以下端数がでる場合は、切捨てか切り上げされてしまう
それを、vfr化した時に、最終フレームの時間調整をして、
再生する上では999.2フレームとか0.8フレームとかにしよう、
という考えだったんです(mkv用タイムコード計算はこれでやりやすいのですが)
avi用に使ったのはもっと単純に
@fps変換前の長さは 変換前のフレーム数x1/30
Afps変換後の長さは 変換後のフレーム数x変換後のfps
@-A+変換後の1フレーム分の長さ→最終フレームのとるべき長さ
関数化してスクリプト内に入れてしまえば、計算に必要なパラメータはクリップから
読み取ればよいので、切捨て/切り上げを確認する手間も省けた次第
>補正はいらないハズ わざわざ、どうもありがとうございます。 書き方が紛らわしかったのですが、60pからむと妙なことというのは、終端補正のことではなく s0+s1+…のとこで、60pパートが「framerateあってないよ」と「時々」synthに叱られることがあって 「必ず」エラー吐くなら、かえっていいんですが、大抵は23.976で統一されて普通に繋がるんで、?。 (assumefps()のとこがうまくいってないのかな…) 原因は自分が根本を理解してないことにあると思うので、精進します …ってたぶん精進できないけどw
この流れで質問しづらいけど、 インタレ保持で、DustかConvolution3D使っているのですが、 Dustは激重だし、Convolution3Dは少々ぼやける感じで・・・ みなさんは何をお使いですか?
FluxSmoothST
>>721 インタレ保持の方法は抜きにして、Dustとか使ってるということは実写かな。
最近のやつではRemoveGrain(スクリプト関数になったほう)がよさげ。
これは個人の画質(絵柄)の好みにもよるが、設定次第ではConvolution3D
とかよりも早くて好みの画質になることもある。と言っても、そんなにいろいろな
フィルタを試したわけじゃない俺が言う意見だから参考までにという事で。
TTempSmooth TTempSmoothF
>>721 実写はdust(2〜3)
しかし重くてたまらん
どういうアルゴリズムやら
P4-2.4GHzだとソース(huffyuv)→中間ファイル(YUY2無圧縮)がFaeryDustで約8倍。 CCE-basicが2倍速2passで1倍。計9倍。 ソースが30分や1時間なら寝てる間・仕事に行ってる間に終わるからまぁいいかと諦めてる。
729 :
721 :2005/05/03(火) 14:03:44 ID:Gd0FFG4H
色々ありがとうございます。 とりあえず、RemoveGrainとFluxSmoothTを実写インタレ保持テストしてみました。 RemoveGrainですがおっしゃるとおり、激早でした。 画質もRemoveGrain(2) ぐらいが標準でなかなかいい感じで、 強めのConvolution3Dぐらいの容量に収まりました。 RemoveGrainを通すとインタレ網が少なくなる?ようです。 だから、結構くっきりしてるのに縮むのかな?? 色々テストしてみます。
インタレ縞が減るってフィールド崩れてるんじゃないの?
フィールド分離して、それぞれのフィールドにフィルタすれば良いじゃん。 これdustの常套手段だったはずだし。
video = mpeg2source("〜.d2v") audio = MPASource("〜 -66ms.mpa", normalize=false) DelayAudio(audio,-0.066) AudioDub(video, audio) AssumeFrameBased().ComplementParity() Import("E:\avs\myFunctions.avs") iDustB("FaeryDust", 1〜3, "YUY2", "kernelbob(order=1)") #iFilterT("""removegrain(2)""") Crop(8,0,704,480) #LanczosResize(544,480) AddRange("〜.vcf") インタレエンコです。 みなさんはどんな感じで書いてますか?
長すぎるから貼らないがだいたい同じ 違いはAssumeTFF使ってるくらいか
MPEG2DEC_MPEG2Source("〜.d2v") AssumeFrameBased().ComplementParity() TomsMoComp(1, 5, 0) Crop(8, 0, -8, -0) LanczosResize(640, 480)
>>732 Import("E:\avs\myFunctions.avs") ##### 途中に書くと紛らわしいので先頭か末尾のどっちかに書く
video = mpeg2source("〜.d2v")
audio = MPASource("〜 -66ms.mpa", normalize=false).DelayAudio(-0.066)
AudioDub(video, audio)
AssumeFrameBased().ComplementParity()
AddRange("〜.vcf") ######## Addrange , Cropはフィルタ処理の前に置いた方
Crop(8,0,704,480) ######## 無駄な処理をしなくてよいので早く終わる
iDustB("FaeryDust", 1〜3, "YUY2", "kernelbob(order=1)")
#iFilterT("""removegrain(2)""")
#LanczosResize(544,480)
return last ##### 一応付けといた方がよい
MPEG2Source("xxx.d2v") AudioDub(last,WavSource("xxx LPCM T01 48KHz.wav")) YV12toYUY2 AssumeTFF() DeDot(20,20,15,5) DeCross(30,60,1,false) InterlacedFluxSmoothST(7,7) ConvertToYV12(interlaced=true) return last function InterlacedFluxSmoothST(clip clip,int s,int t) { clip = clip.SeparateFields() Top = clip.SelectEven().FluxSmoothST(s,t) Bottom = clip.SelectOdd().FluxSmoothST(s,t) clip = Interleave(Top,Bottom) clip = clip.Weave() return clip }
ペグファイルのデコードはMPEG2DEC派が多いな。 まるもが寂しがってるぞ。
738 :
名無しさん@編集中 :2005/05/09(月) 07:54:20 ID:FeFBsNOX
>>735 ツッコミサンクスす。
他にインタレエンコの書き方あったら教えて欲しいです。
iDustBってプラグイン探したけど見つからなかった。 皆さん、インタレ保持エンコの際はLanczosResize使ってないみたいだけど 使わない方がいいのかな?
>>739 縦方向を変化させなきゃ問題ないと思うよ。でもbilinearと変わらないことになりそうだけど。
>>740 LanczosResizeはインタレ対応なのですね。ありがとうございます。
インタレエンコしたら壊れてた・・・LanczosResizeが原因かと思ってたんだけどWNRが原因かな?
何がインタレ対応なのか1個ずつ使ってみないとわかりません。
>>741 自作関数って奴ですか。凄い技術ですね。
精進してくれ
>>742 凄い技術ですね。にワロタ。あと743の優しさにも感動したw。
何がインタレ対応かはドキュメント読めば書いてあるよ。interlaced=true/falseとかのオプションがあれば
そこをtrueにするだけ。それがないのはたいていプログレッシブの入力を予定してる。
あのね。インタレって簡単にいえば、縦に奇数番目と偶数番目のラインに「本来は別の画」がおりこまれてる
だけなの。だから縦方向に画素を混ぜるようなやつは上に書いたようなオプションがなければ壊れるし、
逆に縦にさえ混ぜなければ(横方向のみとか時間軸=前後のフレームのみとか)「インタレ対応」と書いて無くても
大丈夫。
で、「インタレースのまま」リサイズしたいなら上のレスのFluxSmoothの例にあるように
function InterlacedLanczosResize(clip i,int new_x,int new_y) {
i = i.SeparateFields()
top = i.SelectEven().LanczosResize(new_x, new_y/2)
btm = i.SelectOdd().LanczosResize(new_x, new_y/2)
return Weave(Interleave(top,btm))
}
とでもやればよし。まあ、こんなんしてリサイズした画をインタレ「保持」というかは個人的に疑問だけど。
用途はDVD規格に吐きたい時くらいか?
745 :
739 :2005/05/15(日) 09:27:46 ID:QSThksvG
にーやん氏のところのShift_Fieldを簡略化してみますた。 よく考えればParity情報が正しければこれだけでいいんだな、と思って。 function InvertFieldOrder(clip c) { ParityC = GetParity(c) c = c.SeparateFields DominantF = c.SelectEven SlaveF = c.SelectOdd DominantF = DominantF.DeleteFrame(0) c = Interleave(DominantF,SlaveF).Weave return ParityC ? c : c.ComplementParity } フィールドオーダーが正しく設定されてないと変なクリップを合成します。 (AviSourceで呼び出している場合は注意が必要?) フィールドオーダーが異なるソースを連結するときとかに使えます。 普段は全く用途がないです。
c=c.SeparateFields.SelectEvery(2, 1,0).Weave 一行で済むのでわ?
ゴメン c=c.SeparateFields.SelectEvery(2, 1,2).Weave
ホントだ、Parity情報もキチンとひっくり返ってる・・・ orz フィールドの情報って結構頑丈に保持されてるんですね・・
フィールド情報を取り扱うフィルタはどれもきちんとパリティ管理されている。 例 Trim bool Trim::GetParity(int n) { return child->GetParity(n+firstframe); } interleave inline bool __stdcall GetParity(int n) { return child_array[n % num_children]->GetParity(n / num_children); } SelectEvery inline bool __stdcall GetParity(int n) { return child->GetParity(n*every+from); } SelectRangeEvery bool __stdcall SelectRangeEvery::GetParity(int n){ return child->GetParity((n/length)*every+(n%length)); }
AddRange bool __stdcall AddRange::GetParity(int n) { int i = 0; while( n >= AddRangeData[i].end) { i++; } if(i) { if(!AddRangeData[i].MaskedFlag) n += AddRangeData[i].startframe - AddRangeData[i-1].end; else n = AddRangeData[i-1].end - 1; } else { if(!AddRangeData[i].MaskedFlag) n += AddRangeData[i].startframe; else n = AddRangeData[i].startframe; } return child->GetParity(n); }
752 :
名無しさん@編集中 :2005/06/05(日) 18:16:12 ID:5V9UyYuA
ショボいの貼ってくれってコトだったんで。 LoadPlugin("MPEG2Dec3.dll") LoadPlugin("AlignFieldsS.dll") LoadPlugin("VSFilter.dll") Video = BicubicResize(AlignFields(YV12toYUY2(MPEG2Source("hoge.d2v"))),720,406) Audio = WavSource("hoge.wav") AudioDub(Video,Audio) VobSub("hoge")
msvcr70.dllが必要のないようにスタティックリンクしたもの。 msvcr70.dllが入ってる環境では無駄にファイルサイズが大きいだけのもの。
Plugins = "〜\AviSynth2.5\plugins\" LoadPlugin(Plugins + "warpsharp.dll") LoadPlugin(Plugins + "DGDecode.dll") MPEG2Source("enc.d2v", idct=2, cpu=6, iPP=true) YV12toYUY2() LoadPlugin(Plugins + "cc.dll") FrameCache(6).cc(y1=16, y2=80, c1=16, c2=118, yc=12, ylimit=false, climit=false) LoadPlugin(Plugins + "IT.dll") LoadPlugin(Plugins + "IVTC.dll") FrameCache(6).UVTimingH(2, -1) IT(fps=30, ref="TOP", blend=false) Decimate(5, 16, 300) LoadPlugin(Plugins + "SimpleResize.dll") Crop(4, 0, -12, 0) SimpleResize(640, 480) LoadPlugin(Plugins + "convolution3d.dll") FrameCache(6).Convolution3d(preset="animeHQ") return last Avisynth使い始めて2週間程です。いまいち何がいいのかとか分かってません。 画質より速度重視でしてます。24/30混合アニメ用。実写はDecimate(5, 16, 300)を抜いて使いまわし。 AthXP2000+定格で24分ソース1時間30分ちょい。
プラグインフォルダに置いているならLoadPluginを全て削除してくれ あとFrameCacheは必要か?
>>756 フルパス記述しないとVDModがエラー出すので書いてます。
フレームキャッシュ入れても遅くなりはしないのでおまじない的に使ってます
あっそ。 つまり1行目のパスはだましなのか?
たぶんavisynthインストミスってるんだろうけど面倒なので インストし直すよりスクリプト少々追加するだけで済むならと…('A`)
LoadPluginは上にまとめて書いたほうが見やすくないか? その都度読み込む方が気に入ってるなら別に構わんが
756はオートロードの事を言ってるんだろうが、話がかみ合っていないのがオツ
>>755 画質より速度重視と言ってるのに、YUY2で処理する理由は?
>>757 例えば
s1=Trim(233,344).framecache(9).auto24fps()
…
s40=Trim(23456,34567).framecache(9).auto24fps()
s1++…s40
のようにたくさん分割して、後で結合するような記述があるとき
フレームキャッシュを入れると私の環境では
フレーム情報がおかしくなって、エンコード時に
Iフレーム情報が正常に記録されない場合がありました。
ですので、フレームキャッシュは入れないほうが無難な気がします。
(´・ω・`)プラグインオートローディングがされませんのです。
>>762 いつYV12とYUY2の変換していいのかワカラナサス
>>763 (´・ω・`)CMカット済みソース使ってます
フレームキャッシュは逆にキャッシュを制限するときに使ったら? framecache(1)とかで。
とりあえずConvolution3DをYV12対応版に変えれば後は全部YV12で通せると思うよ。 つかなんでSimpleResize?
別にいいんじゃない? 説明みたら、2-tap linear interpolationで、最大の特長が It's main advantage is that it will run somewhat faster than some of the others だということだし。 俺としては、WarpedResize/InterlacedResize/InterlacedWarpedResize の方に興味あるなあ。
確かに「画質より速度重視」って基準が決まってるとつっこみどころは限られてくるよな。
ああそんで
>>764 762のつっこみから分かると思うけど、基本的にYUY2で処理するよりYV12で処理する方が
速いんだす。でもってMPEG2Sourceから出てくるのはYV12なんだす。
となると、
・YV12でたくさんフィルタをかけると色が劣化するから嫌なんじゃボケ、という御仁
・「画質向上のために」どうしても使いたいフィルタがYUY2専用という状況
しかYUY2にする必要はないんだす。で、Convolution3DはYV12版もあるから大丈夫。
というわけでYV12のままがおすすめ。
あとは、後でエンコーダにYUY2で渡す必要があるとき、スクリプトの最後に
ConvertToYuy2を入れることはよくあるかな。
速度重視ならConvolution3dよりもBlurを弱めにかけるだけでもいいんじゃないだろうか
速度重視なら、idct=6, cpu=0, fastMC=trueではなかろうか? あとccとか要るのかなあ? YV12で通すのなら、convolution3dyv12とITもyv12対応版がいる TMPGEncを使うの止めるなら最後にConvertToYUY2も追加しなくてよい
c3dのyv12版はyuy2版に比べるといまいちな気がする yv12ならhqdn3dも試してみてほしい
>>768 今までで一番分かりやすいレスでしたthx
地上波アナログのMPEG2ソースなのでNR入れてます。
おまけにドット妨害とクロスカラーも酷いのでUnDotとDeDotも使ってましたが
時間軸でほとんど取れない感じだったので結局cc使ってます。
うちのソースではダメでしたがUnDotは早くてそれなりに低減されてたので結構よかったと思います。
Convolution3dのYV12版探してきてそこだけYV12で処理してみたら、
今までのYUY2で90分〜100分程だったのが60分〜70分程度にまで早くなりました。
個人的にはXP2000+でここまで早くなるとは思っていなかったので(今までaviutlで2時間以上)
結構満足してます。
そんな40分そこらでエンコしたいとか、そんな所までは思っていないし、いろいろ設定変えて
比較するのも面倒なのでこれくらいで妥協してみるのが良さそうかなと思いました。
>>772 んじゃ久しぶりにマジレスで
速度重視って事なら先に左右のクロップ済ませるべき
YV12でスルーするならConvolution3Dよりもhqdn3dの方が性能がよくノイズはよく取れる
速度が早いConvolution3DのYV12版だが、何か処理手抜きしてるんでノイズ除去性能は悪い
クロスカラーにはdecross、ドット妨害にはdedotと併用または使い分ける
ccは時間軸で混ぜるために残像がよく出たり、酷いとインターレース壊す
あとITのmode3で24fps化解除し解除残りはauto24fpsでブレンド処理するのが意外と早く綺麗だったりもする
無駄なフレームキャッシュは余計な時間が増えるだけになるので必要最低限にすること
IT(dimode=3)は前方参照する分誤爆率倍になる フィールドオーダー正常ならdimode=2 IT.Auto24fpsでは解除残しはキレイにはならない Auto24fps.ITではITがAuto24のブログレを壊す 併用はあまりよろしくない
↑フィールドオーダー正常ならdimode=1 の間違い
ttp://www.uploda.org/file/uporg122848.avi.html うちの酷い?ドット妨害…以前ドット妨害低減無しでエンコしたのから切り出で。
NRはconvolution3d以外もちょっとは使ってみたいと思います。
YV12版の方はTemporal influence currently disabled.と書かれてますから
2DNRという事なのでは、、、と
avisynthでの24/30混合の処理をどんな風に処理すればいいのか
aviutlから移行したばっかりではほとんど分からなかったので
最初はIT+Auto24fps使ってたのですが、どーしてもカクカクになってしまうのが
気になって今のDecimateでそれなりに満足してます(´・ω・`)
# 再生速度の変更 # ChangeSpeed(速度倍率) function ChangeSpeed(clip clip, float speed) { Assert(!(speed <= 0.0), "ChangeSpeed : Error") rate = HasAudio(clip) ? Audiorate(clip):1 f = Float(rate) / speed p = Ceil (Log( f*1073741824.0 ) / Log(2) ) - 30 # 2^30 Assert(!(p > 30), "ChangeSpeed : Error") p = (p < 0) ? 0:(30-p) denominator = Pow(2, p) HasAudio(clip) ? ResampleAudio(clip, Round( f * denominator ), Int(denominator) ):clip HasAudio() ? AssumeSampleRate(rate):last fps = HasVideo() ? Framerate():0.0 HasVideo() ? ChangeFPS(fps / speed):last return HasVideo() ? AssumeFPS(fps):last } 使用例 ChangeSpeed(3.5) # 3.5倍速 ChangeSpeed(2) # 2倍速 ChangeSpeed(1.0/2.0) # 半分の速度 ChangeSpeed(1.0/3.0) # 1/3の速度 勢いで作ってしまいましたが、同じ物が既にありましたっけ?
音でめんどくさいことやってるけど、TimeStretchじゃだめなん?
?
もうすぐこのスレも三年目か
ぐぐったら、こういうジョークがあった。
「アメリカ人が宇宙に行ったとき重力、気圧の関係でボールペンが使えなかった
そこでNASAを中心として、アメリカの最先端の技術を結集して宇宙で使えるボールペンを開発したんだって。
一方旧ソ連の宇宙船では鉛筆が使われていた。」
>>779 の言っている意味がわかった気がする。
そういえばそのころ、そのボールペンが欲しかったなぁ〜 寝転がっても書けるから
784 :
777 :2005/07/15(金) 19:44:24 ID:exHFLZEx
>>778 気付きませんでした、TimeStretchのtempoではなくrateを使えば同じ処理ができたんですね。
レス感謝です。
ネタがないからsynthのじゃなくてもいい?(ショボイことは間違いないよ) Reena!の.task → .avs(範囲指定のみtrim形式に変換) awkスクリプト CvReAvs.awk BEGIN{ sc=1; tc=0 } NR==1{ if ($0!~/^Reena! Task/) exit(255) } /^;/{ sc++; continue } sc==2{ gsub(/[ :\-\[\]]+/," ",$0); printf("S%i=trim(%i,%i).f%i\n",tc++,$1,$2,$6) } END{ for(i=0;i<tc;i++) printf("%sS%i",i ? "+":"#\nS=",i); print } 使い方は↓のような.batのショートカットをデスクトップに置いて.taskをドロップ if not exist %1 goto :end C:\bin\gawk.exe -f C:\lib\CvReAvs.awk %1 1> "%~dpn1.avs" :end こっちはInsNull形式の.tbl → timecode.txt 変換 BEGIN{ RS=","; FS=":"; fn=0; print "# timecode format v1"; print "assume 23.976"; } { s=sprintf("%i,%i,%f",fn,(fn+=$1)-1,$1/$2*119.88); if(s!~/23\.9760*$/) print s; }
ついでに .tbl → chapter.txt変換(trimした所に取りあえず全部チャプター) BEGIN{ RS=","; FS=":"; cc=1; fc=0 } $1>1{ s=fc/119.88; h=int(s/3600); m=int((s-=h*3600)/60); s-=m*60; printf("CHAPTER%02i=%02i:%02i:%06.3f\n",cc,h,m,s); printf("CHAPTER%02iNAME= \n",cc++) #←全角スペース } { fc+=$2 } timecode変換とまとめて.bat if not exist "%1" goto :end C:\bin\gawk.exe -f C:\lib\CvTblTC.awk %1 1> "%~dpn1_t.txt" C:\bin\gawk.exe -f C:\lib\CvTblCH.awk %1 1> "%~dpn1_c.txt" :end
ショボイのがなかなかないもんで・・・貼れない;;
ひさしぶりにまにある見たら、今どきのawkはそんなにユルくはないらすい 2.15で動いてるからまぁいっか。 timecode.txt(v1) → .tbl変換 でもassumeで省略だと最後がわかりまへんので "# all xxxxx" ↑とどこかに総フレーム数を書いておいてくらはい BEGIN{ IGNORECASE=1 } /^# +all +[0-9]+/{ al=$3 } f&&!/^#/&&gsub(/\,/," ")==2{ pout($1-fc,as); pout((fc=$2+1)-$1,$3) } /^ *assume +[0-9.]+/{ as=$2; f=1 } END{ if(f) pout(al-fc,as) } func pout(n,fps) { if(n>0){ printf("%s%i:%i",pf?",":"",n,n/fps*119.88+0.5); pf=1 }} .tbl → timecode.txt 改 BEGIN{ RS=","; FS=":" print "# timecode format v1"; print "assume 23.976" } { s=sprintf("%i,%i,%.9f",fn,(fn+=$1)-1,$1/$2*119.88); sub(/0+$/,"",s); if(s!~/23\.976$/) print s } END{ print "# all\x20" fn }
789 :
名無しさん@編集中 :2005/08/29(月) 21:04:41 ID:g86Td9+q
実写には、インタレ解除、NR系はよくないということを、この頃知った・・・
790 :
名無しさん@編集中 :2005/08/29(月) 21:22:10 ID:n/B8MUTH
実写というのがアニメに対応する言葉として使われてるとして NRはともかくインタレ解除は時と場合によるだろ
実写にも色々あるが60i物をインタレ解除するのは賢くないな
だが、2時間ものになるとサイズが半端じゃない。 さらにHDだと・・・
793 :
789 :2005/08/30(火) 01:26:57 ID:9Jp5G5rZ
言葉足らずでした 実写60iはインタレ解除しないほうが綺麗でした。 NRてんこ盛り、インタレ解除してサイズ縮めるより、 ビットレートを下げる方向のほうが、自然で綺麗に感じる。 実写元24fpsは解除すべきか未だに迷う…色々試したけど、 avisynthでは限界を感じています。
俺は実写でもインタレ解除する。 静止画(コマ送り)でみると汚くなるけど、 動画としてみるならインタレ解除したほうが見やすい
まあ、アニヲタは死ねってことですな。
796 :
名無しさん@編集中 :2005/09/01(木) 23:21:56 ID:sn5KzRoW
masktools.dllを使ってエッジを検出して エッジ部分にのみUnsharpmaskをかけるには どのようにスクリプトを書けばよいでしょうか。
798 :
名無しさん@編集中 :2005/10/01(土) 12:43:14 ID:BWTZMBsy
age
799 :
名無しさん@編集中 :2005/10/01(土) 20:07:54 ID:Y0LvytR5
答えられるか? 3人で一泊3万円の部屋に泊まることになった。 前払いで3万円を払ったが、後で主人が2万円の部屋に 案内してしまったことに気づいた。そこでバイトに1万円を 持たせて返してくるように言いつけた。ところがこのバイト、 7千円を自分のポケットに入れて、3千円をお釣りとして 返してしまった。 3千円のお釣りが帰ってきたので、払った宿代は27000円 バイトが盗んだお金は7000円 合計すると27000円+7000円=34000円 最初に払ったお金は3万円なのだが、余った4千円は どこから生まれてきたのでしょう?
>>799 30,000=27,000+3,000
30,000=20,000+3,000+7,000
27,000=30,000-3,000
7,000=30,000-20,000-3,000
3,000=30,000-20,000-7,000
客は27,000しか払ってない。
バイトは7,000しか取ってない。
宿は20,000しかもらってない。
20,000 = 27,000 - 7,000 ってのも書けよ。 でも、きっとこの問題の本質は別のところにあるんだろうな。
客は27,000しか払ってないんだから、それ以上にお金が増える はずがない。払った側の金額と受け取った側の金額を足して いるんだから払った金額以上の額(34,000円)になるのは当然。
803 :
名無しさん@編集中 :2005/10/01(土) 23:05:02 ID:L36wuQ9R
客が3人いました 宿代は30ドルだったので ひとり10ドルづつ出しました しかし宿屋の店主が25ドルにまけてやろうと思い ボーイに5ドル客に返すよういいました しかしポーイは2ドルくすねて 3ドルしか返しませんでした そうすると ひとり9ドルだしたことになり 9×3=27ドル これにボーイの2ドルを足すと29ドル 残りの1ドルはどこに消えたのでしょう?
おい、おまえら ここはショボイAvisynthスクリプトを貼るスレであって おまえらのショボイ脳みそを晒す場所じゃないんだよ
確かにショボイな。
807 :
名無しさん@編集中 :2005/10/02(日) 13:16:39 ID:CMJ1VNKN
mkj!
AssumeTFF() function bbb(clip clip) { c1 = clip.TomsMoComp(1,4,1).AddBorders(0,1,0,0).crop(0,0,0,-1) c2 = clip.ComplementParity().TomsMoComp(0,5,1) clip = Interleave(c1,c2) return clip } bbb() TomsMoCompで60fps化したいんだけどこれでいいのかな…?
function TomsBob (clip c) { f=c.GetParity c=c.SeparateFields.TomsMoComp(f?1:0,-1,0) c=c.BilinearResize(c.width,c.height+1) t=c.SelectEven.Crop(0,f?1:0,0,f? 0:-1) b=c.SelectOdd.Crop(0,f?0:1,0,f?-1:0) return interleave(t,b) }
function Auto24Bob(clip c) { c1=c.Auto24fps(false,16,8,"blend") c2=c.SeparateFields.Trim(1,0).Weave.Auto24fps(false,16,8,"blend") return InterLeave(c1,c2) } function LanczosBob(clip c, float "d") { d=default(d,0.25) d=c.GetParity? d:-d c=c.SeparateFields t=c.SelectEven.LanczosResize(c.width,c.height*2,0,d,c.width,c.height) b=c.SelectOdd.LanczosResize(c.width,c.height*2,0,-d,c.width,c.height) return InterLeave(t,b) }
>>810 スクリプトとは直接関係無いけど、
interleaveはこれで一語だぞ。inter-leaveではなく。
名詞形は、interleaf
814 :
名無しさん@編集中 :2005/11/01(火) 20:37:13 ID:/FAL74x0
ほしゅ
。 ο ,.。 ο ο ,. ゚ ο o 。 o ο 。 ゚ ο ,ヘ、 ,.:-一;:、ο人がまるでいない・・・ _,.-';: ミ;;:;,. _,.;:゙ミ '^ー、 ο 。 ,r( ´・ω・) ,.*。\,r'! ο .,。 ツィー=ニ彡' ,.。 _j 〜'l つとノ '" {-' ,.;:;u‐―u' ,.。* ._,.-! -=、,r' ,r='i:,ィ' ,.*。 ,__,.-=':トー' ヘ_,、 /;;::-一' ‐-、`-'iニレ'^'
そこはどこの無人島だ。
。 ο ,.。 ο ο ,. ゚ ο o 。 o ο 。 ゚ ο ,ヘ、 ,.:-一;:、ο人がまるでいない・・・ ,.-';: ミ;;:;,. _,.;:゙ミ '^ー、 ο 。 ,.:-一;:、 ,r( ´・ω・) ,.*。\,r'! ο ミ;;:;,. _,.;:゙ミ .,。 ツィー=ニ彡' ,.。 _j ( ´・ω・)<だね'l つとノ '" {-' ィー=ニ彡' ,.;:;u‐―u' ,.。* ._,.-! l つとノ-=、,r' ,r='i:,ィ' u‐―u' ,.*。 ,__,.-=':トー' ヘ_,、 /;;::-一' ‐-、`-'iニレ'^'
1ヶ月過疎ってるところにに、ショボイスクリプトで悪いんだが、 PluginDir = "D:\AviSynthPlugins\" FileName = "01" FileDir = "D:\d2v\" LoadPlugin(PluginDir + "DGDecode.dll") LoadPlugin(PluginDir + "De.dll") LoadPlugin(PluginDir + "DeCross.dll") LoadPlugin(PluginDir + "IT.dll") LoadPlugin(PluginDir + "hqdn3d.dll") mpeg2source(FileDir + FileName + ".d2v") DeDot() DeCross() IT(fps = 24, ref = "TOP", diMode = 1) hqdn3d() LanczosResize(640, 480, 8, 0, 704, 480) な感じでmkvに出力してるんだが、 本編24、OP30、ED60の混合フレームでmkvに出力したいのがあるんだが、サンプルあったら教えてくで
>>818 timde-code使って解決じゃだめなの?
>>819 timecodesの連結する方法を教えてくだされ。
822 :
818 :2005/12/19(月) 21:39:13 ID:P1QUYi7m
サンクス
まさか過疎地でレスもらえるとは思わなかった・・・テヘ
>>712 のTimecode出力ツールで問題解決しますた
過疎といっても一応見てることは見てる
あんたは出て来ないで宜しい
だれかいますか?
宗男といいます
本スレに書いたんですが応答ないので、こちらでも聞かせてもらいます。 LanczosResize(640,480) をした後に、フィルタをかけるにはどうすればいいですか? 具体的にはLanczosResize(640,480)してからvobsubで字幕合成したいのに 字幕合成後にLanczosResizeされてしまいます。 mpeg2source("C:\データ\2005-11-DVD\12\12.d2v") crop(8,0,-8,0) AutoDeint("") LanczosResize(640,480) ConvertToRGB24() vobsub("I:\Temp\DVD\12\VTS_01_0") return last
vobsub(last,"I:\Temp\DVD\12\VTS_01_0") にしてみるとか
>>828 ありがとうございます。
でも変化なかったです。
まったく関係ないんだが、 ConvertToRGB24() なんで入れてるの?
後にTMPGEncへと流れるからです。
>>827 laczosresizeのあとにvobsubになってるよ
字幕を入れてからリサイズされていると考えてるみたいだけど
リサイズされたあとの大きさにあわせてvobsubが字幕を貼り付けてるだけ
字幕の大きさを大きくしたいのだろうけど、字幕って結構端の方にあるからはみ出る
可能性大
役に立てないけど解決法はわからん
なんて言うか、字幕の文字は正方形なので貼りつけたあとに640x480に リサイズすると文字が縦長みたいになっちゃうんです。ソースは720x480 でも、vobsubが解像度に合わせて貼りつけているって言う方が つじつまが合う気がします。
834 :
名無しさん@編集中 :2006/01/04(水) 23:51:19 ID:WW2jGnKA
640x480の一時ファイルを出力した後なら上手く行くの?
はっきりさせるため320x240にvobsubだけ当てると字幕まで縮小されています。 どうやら、vobsubが自分で縮小しているようです。 ご迷惑をおかけしました。いろいろ教えたらアドバイスくれた人ありがとうございます。
久しぶりに伸びてると思ったら・・・
正月休みからAvusynth&VirtualDubを勉強しはじめて、ある程度目処がたってきたな と思ったら今度はVirtualDubのCMカットがちょっと面倒だなと思うようになり、dougaα の存在を知ってdougaαをCMカットだけに使ってみようと今はこんな感じです。 ### ソースファイル指定 FileName = "Capture" PluginDir = "D:\Program Files\AviSynth 2.5\plugins\" LoadPlugin(PluginDir + "warpsharp.dll") LoadPlugin(PluginDir + "De.dll") LoadPlugin(PluginDir + "TomsMoComp.dll") LoadPlugin(PluginDir + "MPEG2Dec3.dll") LoadAviUtlInputPlugin(PluginDir + "m2v.vfp", "MPEG2VIDEO") ### MPEG2読み込み - キャプ AudioDub(MPEG2VIDEO("E:\_1\" + FileName + ".m2v"),WavSource("E:\_1\" + FileName + ".wav")) ### MPEG2読み込み - DVD #AudioDub(MPEG2Source("E:\_DVD\" + FileName + ".d2v"),WavSource("E:\_DVD\" + FileName + ".wav")) Trim(0,100)+Trim(200,300) DeDot(20,20,15,5) FrameCache(9).TomsMoComp(1,5,1) Crop(8,0,704,480) FrameCache(9).LanczosResize(640,480) FrameCache(9).KenKunNR(32,3,6) FrameCache(9).KenKunNRT(64,3,20)
で?
いや、ここ貼るスレじゃんw
別にCMカットだけなら、インストがめんどいdougaαよりもVDubとかでよくね? と言ってみるテスト
もはやtrimを++していくだけでいい
842 :
837 :2006/01/07(土) 21:54:39 ID:DCqzsIXU
>>840 いままではaviutlで[Ctrl]、[Shift]、[Ctrl+Shift]と左右キーにそれぞれ30フレーム
150フレーム、900フレームずつ移動するように割り当てていて、始めから30秒毎
にジャンプしながらCMをカットしてたので、それっぽい操作感ができるdougaαに
白羽の矢が立った訳です。
と書きつつ、さっきやってためちゃイケをdougaαでカット編集したやつをVirtualDub
に放り込んだら、カットしたとこが全部2フレームずつズレてる・・・
もうちょっと試行錯誤が必要かもです。
AviUtl に読み込ませて Trim エクスポートがお手軽ですよ。
844 :
837 :2006/01/07(土) 23:21:04 ID:DCqzsIXU
>>843 おぉ!ググって早速使ってみましたがめっちゃいいですね。CMカットはこれで
ばっちしです。色々検索して探したつもりだったんですが、こんな便利なものを
見逃していたとは・・・
このスレに書いてよかったw サンクス
>>842 IBBPのMPEG2だと、VDMやVD-MPEG2でカットし、AddRangeでしても2フレずれる。
なので、AddRangeのソースを弄って、それなりの関数AddRange2をつくって対応。
※勝手に変更して作ったので、配布はできないけど変更箇所なら・・・
・俺の怠慢CMカット、クロップ
1. VD-MPEG2で、mpegファイル("f:\temp\foo.m2p")を読み込んで、CMカット
※VDMだと、Undoが出来ない為
※読み込みに時間がかかるが、りシークが早いので、スクリプトを読み込んでTrimを
追加するより、ストレスがない為
2.動画と同じ場所に、設定保存("f:\temp\foo.vcf")
3.あとは、こんな感じのスクリプト
※まるもだと、余計な中間ファイルもできないし、作業のステップ数が少ない。
######
SrcBasePath="f:\Temp\foo"
#
SrcMpgPath = SrcBasePath+".m2p"
SrcVcfPath = SrcBasePath+".vcf"
# 映像+音声 読み込み
LoadAviUtlInputPlugin("m2v.vfp","MPEG2VIDEO")
last=MPEG2VIDEO( SrcMpgPath )
# CMカット
Exist(SrcVcfPath) ? AddRange2( SrcVcfPath, offs=2 , audcorr=true ) : last
DelayAudio(-0.066)
# Crop
AutoCrop(mode=0,wMultOf=704,hMultOf=480,aspect=480/704)
# その他
.....
return last
d2v作ってる場合はdgindexでやれば・・・
DGMPGDec でええやんけ
しらんがな
m2vでもDVD2AVI+MPEG2Source経由でも、DirectShowSourceで音を読み込むと音がずれるんだけど、みんなどうやってる? ソースはレコで録ったMPEG2+AC-3。DSFはCyberLinkのが一番上位にある。 メリット値弄ってWinDVDのデコーダ使うようにすると、6chに誤認識されてしまう。
>>849 DGIndex経由でDELAY XXms補正してる
TMEでカット編集すると、DELAY 0msになってずれが起きなくなった。
DGMPGDec でええやんけ
しらんがな
本スレ落ちてるがな
立てといたんでよろしく
ほぜむ
avisynthでaac読み込むプラグインってないですか? ググっても見つからなかったんでないかもですが。
>>859 DirectShowSource( filename )
で、いいんジャマイカ?
エロDVDのエンコってどんなフィルターおすすめ?
862 :
名無しさん@編集中 :2006/03/18(土) 14:35:58 ID:T1VpxdAL
ソースが十分きれいだからなしでいいよ。 細部が潰れて逆効果になるだけ
>>862 そうですか、でもDVD画質ってそんなに綺麗だとは思えないんですがね、VHSとかから比べたらそりゃ綺麗ですが。
メーカーによってはぼやけ気味だったり、輪郭がギザギザ(インタレではなく)してたり様々で。
いろいろノイズが有ると、分かっていながら、 ただお勧めが有るかと問うだけなのは、頭悪いですね。 莫迦は帰ってくれ。
cx
>>863 確かにそうだけど色々試してみて
それをフィルタ使って改善出来る感じはしなかったなぁ
輪郭補正とかしても、輪郭はきれいになっても他が変になるし
ノイズ除去もそこそこビットレートふってたら
大して出てないから弱くかけると効果が見られず強くかけると
肌の質感がなくなる感じがする
まあ自分で色々試してみるのが一番だね
モザイクには妄想フィルターで花びらの1枚1枚まで鮮明に見えるさ ※想像力・経験値により個人差があります。
真に極めれば音声さえ要らない
極めすぎるとナガラでも可能
873 :
名無し募集中。。。 :2006/03/22(水) 14:32:07 ID:KcRIPJ5A
このスレ的にはDGMPGDecなの?DVD2AVIなの?
まるものプラグイン
>>874 DVD2AVIは完全なバグ持ちで、今後、修正されることはないお
DGMPGDecはverup中だから、verによってはバグあるかもしれないお
だから安定版のDGMPGDec使ってるお
でも、フリーソフトは自己責任忘れたらダメアルヨ
これ万国共通の約束事アルネ
1.4.6?
878 :
名無しさん@編集中 :2006/03/26(日) 20:23:34 ID:Wwe+2U6c
>>877 すぐ、人に聞くの良くないアルヨ
自分で試すの基本のことアルヨ
フリーソフトは自己責任忘れたらダメアルヨ
これ万国共通の約束事アルネ
>>875 同じくm2v。音声はbbdmux便利ス
DSSなら音声いっしょに読めて楽と思ってたが、音ズレしたしw
DVD2AVIの類がコマンドラインかバッチ処理できればそっち使ってたかも
DVD2AVIのころからコマンドラインでバッチ処理してたし、 DGMPGDecはデフォでコマンドラインがサポートされてるのは 漏れの気のせいだったか。
気のせいです
>>880 俺の目は節穴のようです orz
マニュアル読めよ阿呆と罵って下さい……
>>882 マニュアルを読みなさい!
そして、靴をお舐めなさい!
>>822 マニュアル読めよ阿呆
これだから最近の(ry
お代官様〜おたわむれを〜
せっかくの良スレ(?)が台無し
Lanczos4Resizeってavisynthじゃつかえないの?
このスレの波にのって盲目的にTomsMoComp使ってたけど TDeintのほうがきれいじゃん
・・・そうでもないな・・・。
ちょwwwwwwおまwwwwwwww
ええやんけ
avisynth初心者なんだけど、地上波テレビドラマ+その他キャプ目的でこんな感じで設定してみたんだけど ソースが微妙に悪いからしょうがないんだけど、いまいち縮まないし 他にも不備がいろいろありそうなので、何か問題点を指摘してくれませんか? LoadPlugin("H:\videotoolz\dgmpgdec146\DGDecode.dll") LoadPlugin(PATH + "De.dll") LoadPlugin(PATH + "TomsMoComp.dll" ) LoadPlugin(PATH + "warpsharp.dll") LoadPlugin(PATH + "hqdn3d.dll") AudioDub(mpeg2source(VIDEO_PATH + "test3.d2v"),WAVSource(VIDEO_PATH + "test3 MPA T01 DELAY 0ms.wav")) #DeDot(20,20,15,5) ##インタレース解除 TomsMoComp(1,6,1) ##bob bbb() ##ノイズ除去 hqdn3d(8) ##無駄な領域を削る Crop(10,2,700,476) ##リサイズ LanczosResize(640,480) return last
なんでインタレ解除後にさらにbob化するのか?
すごいネタが投下されたようだな。
905 :
901 :2006/04/18(火) 00:19:56 ID:x7KTVznT
>>902 保持のほうがいいのかもしれないけど、プログレッシブでもつくって置こうかなぁと。
>>903 よく意味わかってなかったんでつかってみたんだけど 、bbの中でインターレース解除やってるんですね。
TomsMoCompつかってみたかったら>808-809みたいにやればいいのかな?
インタレかかった動画なんてゴミ
アニオタなんてゴミ
モーオタを忘れているぞ
>>902 そう言えば反町の戦国自衛隊は30Pだったよ?
910 :
メモ帳 :2006/04/18(火) 16:55:36 ID:zRSz/33h
実写DVD(せくしーうえうえ) IT(fps=24,ref="TOP",diMode=0) trim(0,3104).TDeint(mode=0,tryweave=true)+trim(3105,3106).TomsMoComp(1,5,0)+trim(3107,6200).TDeint(mode=0,tryweave=true) p1 = trim( 85, 164).Lanczos4Resize(640,400,40,62,640,355) p2 = trim( 214, 408).Lanczos4Resize(640,400,40,62,640,355) p3 = trim( 409, 427).Lanczos4Resize(640,400,76,62,640,355) p4 = trim( 428, 517).Lanczos4Resize(640,400,40,62,640,355) p5 = trim( 518, 554).Lanczos4Resize(640,400,76,62,640,355) p6 = trim( 555, 641).Lanczos4Resize(640,400,40,62,640,355) p7 = trim( 642, 664).Lanczos4Resize(640,400,76,62,640,355) p8 = trim( 665,1218).Lanczos4Resize(640,400,40,62,640,355) p9 = trim(1219,1263).Lanczos4Resize(640,400,76,62,640,355) p0 = trim(1264,1413).Lanczos4Resize(640,400,40,62,640,355) pq = trim(1414,1459).Lanczos4Resize(640,400, 6,62,640,355) pw = trim(1460,1720).Lanczos4Resize(640,400,40,62,640,355) pe = trim(1721,1816).Lanczos4Resize(640,400,76,62,640,355) pr = trim(1817,2088).Lanczos4Resize(640,400,40,62,640,355) pt = trim(2089,2143).Lanczos4Resize(640,400,76,62,640,355) py = trim(2144,2328).Lanczos4Resize(640,400,40,62,640,355) pu = trim(2329,2375).Lanczos4Resize(640,400,76,62,640,355) pi = trim(2376,2474).Lanczos4Resize(640,400,40,62,640,355) po = trim(2475,2540).Lanczos4Resize(640,400,76,62,640,355) pp = trim(2541,5211).Lanczos4Resize(640,400,40,62,640,355) pa = trim(5212,5232).Lanczos4Resize(640,400,76,62,640,355) ps = trim(5233,5627).Lanczos4Resize(640,400,40,62,640,355) pd = trim(5628,5672).Lanczos4Resize(640,400, 6,62,640,355) pf = trim(5673,5731).Lanczos4Resize(640,400,76,62,640,355) pg = trim(5732,6127).Lanczos4Resize(640,400,40,62,640,355) ph = trim(6128,6192).Lanczos4Resize(640,400,66,62,640,355) p1+p2+p3+p4+p5+p6+p7+p8+p9+p0+pq+pw+pe+pr+pt+py+pu+pi+po+pp+pa+ps+pd+pf+pg+ph return last
911 :
メモ帳 :2006/04/18(火) 16:56:20 ID:zRSz/33h
912 :
メモ帳 :2006/04/18(火) 17:00:24 ID:zRSz/33h
うえうえ(メイキング) name = "ueue" dir = "D:\My Videos\src\" LoadPlugin("C:\Program Files\AviSynth\plugins\DGDecode.dll") video = mpeg2source(dir+name+".d2v") audio = wavsource(dir+name+" T01 48K 16bit 2ch.wav") AudioDub(video,audio) TomsMoComp(1,5,0) p1 = trim(22170,22888).Lanczos4Resize(640,400,14,16,702,390) p2 = trim(24477,24588).Lanczos4Resize(640,400,10,42,702,390) p3 = trim(24787,24815).Lanczos4Resize(640,400,10,42,702,390) p4 = trim(32836,33432).Lanczos4Resize(640,400,68,42,648,360) p42= trim(33433,33878).Lanczos4Resize(640,400, 6,42,666,370) p5 = trim(42771,43133).Lanczos4Resize(640,400,10,46,702,390) p6 = trim(48095,48153).Lanczos4Resize(640,400,10,46,702,390) p1 + p2 + p3 + p4 + p42 + p6 return last
913 :
メモ帳 :2006/04/18(火) 17:01:03 ID:zRSz/33h
name="kan" dir="D:\My Videos\src\" LoadPlugin("C:\Program Files\AviSynth\plugins\DGDecode.dll") video=mpeg2source(dir+name+".d2v") audio=wavsource(dir+name+" T01 48K 16bit 2ch.wav") AudioDub(video,audio) p00 = trim(135,1510) p01 = trim(1511,1536).TDeint(mode=0,tryweave=true) p02 = trim(1537,1555) p03 = trim(1556,1607).TDeint(mode=0,tryweave=true) p04 = trim(1608,1632) p05 = trim(1633,1702).TDeint(mode=0,tryweave=true) p06 = trim(1703,1852) p07 = trim(1853,1879).TDeint(mode=0,tryweave=true) p08 = trim(1880,1974) p09 = trim(1975,1986).TDeint(mode=0,tryweave=true) p10 = trim(1987,2222) p11 = trim(2223,2270).TDeint(mode=0,tryweave=true) p12 = trim(2271,2288) p13 = trim(2289,2317).TDeint(mode=0,tryweave=true) p14 = trim(2318,2419) p15 = trim(2420,2448).TDeint(mode=0,tryweave=true) p16 = trim(2449,2544) p17 = trim(2545,2600).TDeint(mode=0,tryweave=true) p18 = trim(2601,2646) p19 = trim(2647,2693).TDeint(mode=0,tryweave=true) p20 = trim(2694,2818) p21 = trim(2819,2900).TDeint(mode=0,tryweave=true)
914 :
メモ帳 :2006/04/18(火) 17:01:34 ID:zRSz/33h
p22 = trim(2901,3169) p23 = trim(3170,3201).TDeint(mode=0,tryweave=true) p24 = trim(3202,3240) p25 = trim(3241,3357).TDeint(mode=0,tryweave=true) p26 = trim(3358,3976) p27 = trim(3977,4009).TDeint(mode=0,tryweave=true) p28 = trim(4010,4068) p29 = trim(4069,4116).TDeint(mode=0,tryweave=true) p30 = trim(4117,4164) p31 = trim(4165,4208).TDeint(mode=0,tryweave=true) p32 = trim(4209,4250) p33 = trim(4251,4313).TDeint(mode=0,tryweave=true) p34 = trim(4314,5205) p35 = trim(5206,5221).TDeint(mode=0,tryweave=true) p36 = trim(5222,5328) p37 = trim(5329,5370).TDeint(mode=0,tryweave=true) p38 = trim(5371,5412) p39 = trim(5413,5460).TDeint(mode=0,tryweave=true) p40 = trim(5461,5486) p41 = trim(5487,5531).TDeint(mode=0,tryweave=true) p42 = trim(5532,5584) p43 = trim(5585,5628).TDeint(mode=0,tryweave=true) p44 = trim(5629,5724) p45 = trim(5725,5772).TDeint(mode=0,tryweave=true) p46 = trim(5773,5792) p47 = trim(5793,5818).TDeint(mode=0,tryweave=true) p48 = trim(5819,5861) p49 = trim(5862,5913).TDeint(mode=0,tryweave=true) p50 = trim(5914,5976) p51 = trim(5977,6006).TDeint(mode=0,tryweave=true) p52 = trim(6007,6239) p53 = trim(6240,6345).TDeint(mode=0,tryweave=true)
915 :
メモ帳 :2006/04/18(火) 17:02:04 ID:zRSz/33h
p54 = trim(6346,6544) p55 = trim(6545,6645).TDeint(mode=0,tryweave=true) p56 = trim(6646,6739) p00+p01+p02+p03+p04+p05+p06+p07+p08+p09+p10+p11+p12+p13+p14+p15+p16+p17+p18+p19+p20+p21+p22+p23+p24+p25+p26+p27+p28+p29+p30+p31+p32+p33+p34+p35+p36+p37+p38+p39+p40+p41+p42+p43+p44+p45+p46+p47+p48+p49+p50+p51+p52+p53+p54+p55+p56 Lanczos4Resize(640,400,40,61,640,354) return last
うむ このスレらしい貼りっぷりだ
よくまあまともに動くもんだ。 クリップ数の上限に近いんでないかい。
918 :
メモ帳 :2006/04/18(火) 18:29:19 ID:zRSz/33h
リンクすんなよ ポップアップがうざいw
921 :
メモ帳 :2006/04/18(火) 19:06:48 ID:zRSz/33h
自己レスだが918のポップアップがウザいっていうレベルを遥かに超えてるなw 画面全体がポップアップになるしw
923 :
901 :2006/04/22(土) 19:19:21 ID:1djBz9T3
LoadPlugin("H:\videotoolz\dgmpgdec146\DGDecode.dll") LoadPlugin(PATH + "De.dll") LoadPlugin(PATH + "TDeint.dll") LoadPlugin(PATH + "hqdn3d.dll") video = mpeg2source(VIDEO_PATH + "xxx.d2v") audio = wavsource(VIDEO_PATH + "xxx.wav") AudioDub(video,audio) DeDot(20,20,15,5) TDeint(1,1) hqdn3d(12) Crop(10,0,-6,-0) LanczosResize(640,480) return last 結局こんな感じの設定でエンコするか TDeint外してインタレ保持エンコしようとしてるんですが あんまりサイズが縮まない。
結局のところ、_2DCleanYUY2とKenkunNRTに戻っちゃった俺なんかがここにいる。
ああ、縮ますのならPixieDustがいいよ。 ちょっとボケるけど縮み具合と比較すると気になる程度でもない。
もうへたにNRかけない方が綺麗だと気づいた俺がいる。 縮まなくていいよ・・・メディアも随分安くなったことだし。
一枚に2クール入らなきゃヤダヤダヤダ グス
またアニヲタか。
今さらながらインタレ保持でエンコしようと思いたったんだけど、こんな感じでいいのかな? FileName = "Capture" PluginDir = "D:\Programs\Avisynth\AviSynth 2.5\plugins\" LoadPlugin(PluginDir + "warpsharp.dll") LoadPlugin(PluginDir + "De.dll") LoadPlugin(PluginDir + "DGDecode.dll") LoadPlugin(PluginDir + "Convolution3DYV12.dll") AudioDub(MPEG2Source("E:\_1\" + FileName + ".d2v"),WavSource("E:\_1\" + FileName + ".wav")) AssumeFrameBased().ComplementParity() ### Trim DeDot(20,20,15,5) Crop(6,0,704,480) SeparateFields() FrameCache(6).Convolution3D("movieHQ") FrameCache(9).LanczosResize(640,240) Weave() return last
640x240ってどんなソースなんだ?
C3Dは前後フレームを参照する3D-NRも含んでるので それだと、前後フレームが別フィールドの画を参照してしまう。 2Dのみのフィルタじゃなかったら、フィールドも分けるように。 でも同じフィルタが複数回動作できない作りのものもあるので要注意 wikiとかに説明があったかと思う。 separatefields a=selecteven.Convolution3D("movieHQ") b=selectodd.Convolution3D("movieHQ") interleave(a,b) lanczosresize(640,last.height) weave もちろんlanczosをC3Dの後ろに、それぞれくっつけても可。 というかそっちの方が間違いが起きない。
>>932 レスサンクスです。
LanczosをC3Dの後ろに引っ付けるということは
separatefields
a=selecteven.Convolution3D("movieHQ")
b=selectodd.Convolution3D("movieHQ")
a=selecteven.lanczosresize(640,240)
b=selectodd.lanczosresize(640,240)
interleave(a,b)
weave
でいいんでしょうか?
separatefields a=selecteven.Convolution3D("movieHQ").lanczosresize(640,last.height) b=selectodd.Convolution3D("movieHQ").lanczosresize(640,last.height) interleave(a,b) weave
または記述行を分けても良いが、その場合はこう書く separatefields a=selecteven b=selectodd a=a.Convolution3D("movieHQ") b=b.Convolution3D("movieHQ") a=a.lanczosresize(640,last.height) b=b.lanczosresize(640,last.height) interleave(a,b) weave または separatefields a=selecteven a=a.Convolution3D("movieHQ") a=a.lanczosresize(640,last.height) b=selectodd b=b.Convolution3D("movieHQ") b=b.lanczosresize(640,last.height) interleave(a,b) weave
なるほど、そういうことでしたか。 助かりました。ありがとう!
えっと別に間違いじゃないんだが、記述を分ける場合だと lanczosresize(640, a.height) とかlastじゃなく、a,bを指定した方がよいかも。 ちなみにlastだと、separatefielsの直後のクリップを指すことになる。
hqdn3dってデフォだとかなり残像出ない?(特に暗い画面?) 3DNRってことで多少は仕方無いんだろうけど
939 :
名無しさん@編集中 :2006/05/15(月) 06:39:26 ID:izQAtOkE
940 :
名無しさん@編集中 :2006/05/17(水) 20:37:55 ID:Q+VbyTlE
941 :
名無しさん@編集中 :2006/05/18(木) 01:18:24 ID:neDH5t/m
>>938 出るね。ちょうど漏れも気になってた。解決策あるのかな?ソース落としてみたけどワカラナス
942 :
名無しさん@編集中 :2006/06/26(月) 14:10:07 ID:pJP+XK0V
24/30/60 VFR PluginDir = "C:\Program Files\AviSynth 2.5\plugins\" LoadPlugin(PluginDir + "DGDecode.dll") LoadPlugin(PluginDir + "IT.dll") LoadPlugin(PluginDir + "TDeint.dll") MPEG2Source(E:\"hage.d2v") Crop(8,0,704,480) c1 = trim(0,1620).assumefps(59,94,false) #30 c2 = trim(621,2524).IT(fps=24, diMode=1).assumefps(59,94,false) #24 c3 = trim(2525,2772).TDeint(mode=1).assumefps(59,94,false) #60 c4 = trim(2773,2849).assumefps(59,94,false) #30 c5 = trim(2850,3669).IT(fps=24, diMode=1).assumefps(59,94,false) #24 c6 = trim(3670,3735).TDeint(mode=1).assumefps(59,94,false) #60 c1 + c2 + c3 + c4 + c5 + c6 return last ・タイムコード # timecode format v1 assume 23.976 0,1620,29.97 2525,2772,59.94 2773,2849,29.97 3670,3735,59.94 よくわかってないのでつっこみください。
ってタイムコードめちゃくちゃだ。
trimもだ。何度もスマソ。
ソース読み込みr その辺スルーしてくださいorz
もちつけw
0.627659574fps
素直にIts使っとけ
949 :
名無しさん@編集中 :2006/06/26(月) 18:42:35 ID:urNk3DUg
これダウソしようとするとセキュウテイがはじくけど大丈夫?
>>942 なるほどそのアイデア面白い。漏れが初めて見ただけかもだけど。
FrameEvaluateあたりでタイムコードを別ファイルに出力できるようにすれば
単ファイルの.avsでVFRできるね。
日本では.auoでいきなり120にするのが一般的だけど
海外方式で似非30fps aviにタイムコードを利用してドロップフレームを挿入すれば
120fpsの疑似VFRもできると。
>>942 下のは漏れ風に書いちゃったやつだけどこういう事かな
#最初に良く使用する関数をあらかじめ定義して読み込む
Global Pr1 = AvsDir + "ProgreTFM32.avs" #TFM(d2V=Filename+".d2v",mode=3,PP=2)#,display=true)
Global Pr2 = AvsDir + "ProgreAuto0.avs" #Auto24fps(drop = False, threshold = 24, border = 16, mode = "", debug = False)
Global IV0 = AvsDir + "fps24Tdcm1.avs" #tdecimate(mode=1,hybrid=0,noblend=true)
Global IV1 = AvsDir + "fps24IT1.avs" #IT(fps = 24, ref = "TOP", diMode = 1) そのほか諸々・・
c=ソース読み込み好きなように
c1=Imp(c,0,0,Pr1,Rate)
Last=Imp(c,0,0,Pr2,Rate)
c10=c.AutoBob.Assumefps(29970,Rate,False)
Rate=1000
ofs=0
Trim(0+ofs,1620+ofs).Assumefps(29970,Rate,False)
\ + Imp(c1,1621+ofs,2524+ofs,IV0,Rate)
\ + Trim(C10,5050+ofs*2,5545+ofs*2).Assumefps(29970,Rate,False)
\ + Trim(2773+ofs,2849+ofs).Assumefps(29970,Rate,False)
\ + Imp(c,2850+ofs,3669+ofs,IV1,Rate)
\ + Trim(C10,7340+ofs*2,7471+ofs*2).Assumefps(29970,Rate,False)
Return Last
# timecode format v1
Assume 23.976
0,1620,29.97
1621,2343,23.9693694690266
2344,2839,59.94
2840,2916,29.97
3573,3704,59.94
定義関数とか Function Imp(clip "Clip",int "Start",int "End", \ String "Setting",int "Rate",bool "Connect") { FC = Eval("Clip.trim(Default(Start,0),Default(End,0))" \ + "Import(Setting)") C = Default(Connect,False) == True ? \ Start == 0 ? FC : Clip.trim(0,-Start) + FC : FC End = Default(End,0) < 0 ? Start : End C = Default(Connect,False) == True ? \ End == 0 ? C : \ End == Clip.FrameCount()-1 ? C : \ C+ Clip.trim(End + 1,0) : FC C = Assumefps(C,29970,Default(Rate,1000),False) return C } function AutoBob(clip Clip,int "Start",int "End") { color_space = clip.IsRGB24() ? "RGB24" : clip.IsRGB32() ? "RGB32" : "Others" clip = ((color_space == "RGB24") || (color_space == "RGB32")) ? \ clip.ConvertToYUY2(interlaced = true) : clip c = Clip.trim(Default(Start,0),Default(End,0)) c1 = c.AutoDeint("") c2 = c.SeparateFields().Trim(1, 0).Weave.AutoDeint("") bbb_clip = Interleave(c1, c2).AssumeFrameBased() return_clip = (color_space == "RGB24") ? bbb_clip.ConvertToRGB24(interlaced = true) : \ (color_space == "RGB32") ? bbb_clip.ConvertToRGB32(interlaced = true) : bbb_clip return return_clip }
フレーム操作系はエクセルとVBAなどで極力自動化して VFR用のタイムコード、WMToolのVFRエンコ定義ファイル、 120fpsならInsNull用のテーブルファイルを自動生成させるようにしてる。 でも管理できると修正がやりやすいというだけで きっちりやろうとしたら力技でし'`,、'`,、(ノ∀`)'`,、'`,、
緑色の肉のカレー食えば直るよ!
(;´д`)うぇぅえ
>>951 のようなスクリプトで
c
oldcount=framecount(c)
trim(xxx,xxx) + trim(xxx,xxx) + trim(xxx,xxx)
oldfps=framerate(c)
averagefps=(float(framecount(c))/float(oldcount))*oldfps
c = c.assumefps(averagefps)
としてaveragefpsの値を自動で他のスクリプトに読み込んで
エンコードの設定に使いたいけど俺の頭では無理だった
俺のような馬鹿にとって、trim連結スタイルのvfrは、trimのパートから timecode fileへの変換の処理がやはり難物。今使ってる無理やり秀丸マクロだと こ汚く柔軟性もなく、ちょっとした流儀の変更でも一苦労。やはり一度まじめに勉強しないと… 入力に関しては、VDMのScriptEditorをmayuで弄ったらだいぶ楽になり、自分なりに満足気味。日記おわり。
958 :
950 :2006/06/27(火) 03:34:58 ID:w1mJ0NX4
てなわけでタイムコードも一緒に作る関数を作ってみた。 ロードされた瞬間にタイムコードファイルを生成。 フレーム数は別に計算しなくても取ればいいよね?という方向で。 tc2cfrで120化して確認。 もし使うなら2つの関数をどっかに追い出してImportするといいと思う。 FPSの数値もclipからとることにしたので きれいな数値にしたい人はAssumeFPSとかで設定してくださいまし。 グローバル変数使っちゃってるのが汚いけど なんかうまい方法あったら変えて。 大きすぎると怒られたので関数定義部と利用部を分割で。
959 :
950 :2006/06/27(火) 03:35:56 ID:w1mJ0NX4
function WriteTimeCodeHeader(clip, timecode_path) { clip.WriteFileStart(timecode_path, """ "# timecode format v1" """) clip.WriteFileStart(timecode_path, """ "Assume " + string(clip.framerate) """, append=true) return clip } function ProcessRangeVFR(clip, timecode_path, deintfunc, after_deint_func) { tmp = clip Strlen(Default(deintfunc, "")) > 0 ? Eval("tmp = tmp." + deintfunc) : nop() Strlen(Default(after_deint_func, "")) > 0 ? Eval("tmp = tmp." + after_deint_func) : nop() tmp.WriteFileStart(timecode_path, """ string(vfr_current_real_frame) + "," + \ string(vfr_current_real_frame + tmp.framecount - 1) + "," + string(tmp.framerate) """, append=true) global vfr_current_real_frame = vfr_current_real_frame + tmp.framecount return tmp.AssumeFPS(clip) }
960 :
950 :2006/06/27(火) 03:37:05 ID:w1mJ0NX4
function filterfunc(clip) { return clip.Deen("a3d",1,4,5,2.0).LanczosResize(640,480,8,0,-8,0) } src = MPEG2Source(...) timecode_path = "d:\timecode.txt" global vfr_current_real_frame = 0 src.WriteTimeCodeHeader(timecode_path) ProcessRangeVFR(src.Trim(44000,45375), timecode_path, "TFM().TDecimate(mode=1)", "filterfunc()") + \ ProcessRangeVFR(src.Trim(45376,48071), timecode_path, "", "filterfunc()") + \ ProcessRangeVFR(src.Trim(48072,48400), timecode_path, "TFM().TDecimate(mode=1)", "filterfunc()")
よくわかんないけどすごい
俺もよくわからんが、逆テレシネしたときの端数はどうなってるの?
>>942 みたいにtrimでfps区切ったあとそのavsをAviutlに食わせて目視でフレームレートかわるシーンに移動してそのフレームをタイムコードに書く…
ってやりかたでVFR作って(る気になって)るんだけどもっとかしこいやり方誰かおすえてください。
>>953 氏の自動化とか詳しく聞きたいです。
端数補正?なんて今まで考えたこともなかったし聞いてもおれの脳みそではよくわからんorz
964 :
950 :2006/06/27(火) 12:40:40 ID:w1mJ0NX4
>>962 まずFramecountプロパティでそのクリップのフレーム数を取れるのが前提。
clip = other.Trim(0,20)
Subtitle(string(clip.Framecount)) # フレーム数を表示
そんで、clipに逆テレシネフィルタをかけるとそのフィルタによって
逆テレシネされた分クリップのフレーム数が変化するわけ
clip.IT(ref="TOP", fps=24).Framecount # => 減ってる
実際のフィルタによって生成された数を取得してるのでズレることはないはず。
あとはその出力を足し算して保持しておけば、
その範囲のスタートフレームもわかるから
フレーム位置を特定できる、というわけ。
# current変数に維持しておけば
# 範囲はcurrentからcurrent + clip.Framecount - 1で取れる。そして
current = current + clip.Framecount
# で更新。
ついでにAssumeだとか第3カラムのFPSの項目はFramerateプロパティで
取ってしまえば手動で書かなくていいかららくちん。
だからProcessRangeVFR(クリップ, タイムコードファイル名, 逆テレシネ関数片, フィルタ関数片)
で出力をつなげたものだけを出力すればずれてないタイムコードがでてくる。
逆テレシネ部分とフィルタ部分でEvalを使ってるのは
ただこの関数を汎用化したかっただけなので埋め込んでもかまわないし、
そもそも逆テレシネ済みのクリップとassumefpsの引数だけ渡したほうがよかったかもしれない。
あと、罠なのはWriteFileFirst. 引数の文字列が出力されるのではなく
引数の文字列が評価されたものが出力されるので気をつけること。
965 :
名無しさん@編集中 :2006/06/27(火) 19:22:49 ID:w/zQyOy0
VirtualDubMod のショートカットキーが知りたいんですが Home End Del Ctrl+左右キー Alt+左右キー は分かりましたが,次のシーンを検索 みたいなボタンのショートカットが分かりません。 どなたか 教えてもらえませんかm(_ _)m
Ctrl+Shift+Right メニュのgoを見れば全部分かるとは思うけど。
あ、modか。modでなくちゃダメ?本家じゃいかんの?
Shift+左右キーでキーフレームに位置付けられる。 エンコ済みのファイルを切り貼りする時にとても便利。
つかVirtualDubスレで聞けよw
ジタバタ 〃〃∩ _, ,_ ⊂⌒( `Д´) modじゃなきゃ嫌だい。本家なんていらないやい `ヽ_つ__つ ジタバタ
そういやVDMは自分勝手にアサインしてるから元々の忘れたな 二画面ファイラのようにワンキーショートカットとかも なんか面白そうなスクリプトでてきて、いい流れ。暇ができたら 有難く遊ばせてもらおうっと。今のところ自分の感心ランク一位は.u(かな
972 :
950 :2006/06/28(水) 00:37:30 ID:PpOkZ2le
わお。今後も達人な人たちは気が向いたらshareよろしくです
>>964 やっぱり端数の処理は必要と思うよ。
反例を出すね。
今30フレームの画像があってこれを5分割する、つまり、1パッケージで6フレーム
この1パッケージを逆テレシネするとプラグインによっては5フレームを取得する。
でこれを結合すると30フレームを24fpsに変換したのに25フレーム取得することになる。
しかし、timecode v1の書式では各フレームを24fpsのタイミングで表示させてしまう。
従って、(25-24)*1/24秒分映像が長く表示される。
もちろん5の倍数でTrimすればこの問題はおきないけど、それは運だよね。
俺はなかなか運がいい
動画のフレーム番号を指定すると、そのフレーム画像をクリップボードに出力して終了するようなものを
クリップボードに貼り付けるのはどの編集ソフトでも出来るよ VDubとかAviUtlとかでやれ
だいたい、フレーム番号探すのにDubとか使うしな。
面倒なのでそういうソフト作ってください。 getframe.exe とかのソフトで getframe.exe -i InputFileName(avi) -f FrameNo とするとフレームゲットできるようなの