5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

お前らのショボイAvisynthスクリプト貼ってくださいpart2

1 :名無しさん@編集中:2006/07/21(金) 22:09:52 ID:ven1fJLR
前スレ
お前らのショボイAvisynthスクリプト貼ってください
http://pc8.2ch.net/test/read.cgi/avi/1030537641/

関連スレ
Avisynthを絶讃ιょぅょ Part21
http://pc8.2ch.net/test/read.cgi/avi/1139403989/


もっと貼れ

2 :名無しさん@編集中:2006/07/21(金) 22:28:59 ID:ven1fJLR
ごめんなさい貼ってください

3 :名無しさん@編集中:2006/07/21(金) 22:50:28 ID:9ej62NjT
立ったのか次スレ
あれだけ遅かったスレが1000近くまで行くとは感無量ですぞ

4 :名無しさん@編集中:2006/07/21(金) 23:35:59 ID:ven1fJLR
前スレの962さんが指摘してる端数切捨て問題解決してくださいよぉ

5 :名無しさん@編集中:2006/07/22(土) 00:16:36 ID:y6VUOZnw
にーやんのところでは
a = src.Trim(0,100).IT(fps=24, ref="TOP")
b = src.Trim(101,200).IT(fps=30, ref="TOP")
c = src.Trim(201,300).IT(fps=24, ref="TOP")

tcpath = "c:\tmp\timecode.txt"
all = EasyVFR_Create(src, a, tcpath)
all = all.EasyVFR_Append(b, tcpath)
all = all.EasyVFR_Append(c, tcpath)
all
だけど以下のようにすることにした
Function mod_FPS(clip clip,string "IVTC"){
sf=clip.framecount
clip=Eval("clip."+IVTC)
ff=clip.framecount
clip=Eval("clip.assumefps("+string(ff*sn)+","+string(sf*sd)+",False)")
return clip
}
a = src.Trim(0,100).mod_FPS("""IT(fps=24, ref="TOP")""")
b = src.Trim(101,200).mod_FPS("""IT(fps=30, ref="TOP")""")
c = src.Trim(201,300).mod_FPS("""IT(fps=24, ref="TOP")""")

6 :1:2006/07/22(土) 00:17:36 ID:y6VUOZnw
tcpath = "c:\tmp\timecode.txt"
all = EasyVFR_Create(src, a, tcpath)
all = all.EasyVFR_Append(b, tcpath)
all = all.EasyVFR_Append(c, tcpath)
all

これで解決か?

7 :名無しさん@編集中:2006/07/22(土) 00:18:53 ID:y6VUOZnw
お・・・assumefpsのところEvalいらねぇやw

8 :名無しさん@編集中:2006/07/22(土) 00:23:19 ID:y6VUOZnw
お・・・www
阿呆だ('A`)こっちじゃないと動かんね
Function mod_FPS(clip clip,string "IVTC"){
sf=clip.framecount
sn=clip.FramerateNumerator
sd=clip.FramerateDenominator
clip=Eval("clip."+IVTC)
ff=clip.framecount

clip=Eval("clip.assumefps("+string(ff*sn)+","+string(sf*sd)+",False)")
return clip
}

9 :名無しさん@編集中:2006/07/22(土) 07:44:56 ID:Tfq4UgGw
なくて寂しかった。>>1
前スレには大いに助けられたなあ

10 :名無しさん@編集中:2006/07/25(火) 19:54:19 ID:h5CHz3K4
AE並みの編集が可能なスクリプト群を暇な時に作ってください

11 :名無しさん@編集中:2006/08/08(火) 10:05:34 ID:ZLPqWeg6
新スレおめ

12 :名無しさん@編集中:2006/08/08(火) 13:51:27 ID:JWH0oHzQ
EasyVFR作ってくれたヒトアリガトー
マジ重宝してまつ

13 :名無しさん@編集中:2006/09/05(火) 19:44:23 ID:t9/4UIef
ffunction KeepAspectResize1(clip clip, int newW, int newH, int "bcolor")
{
aspect = (float(clip.width) / float(clip.height))
w = int(newH * aspect)
b = newW >= w
w = b ? w : newW
h = b ? newH : int(newW / aspect)
h = int(h / 2) * 2
c = clip.Lanczos4Resize(w, h)
borderW = newW - w
borderH = newH - h
c = c.AddBorders(borderW/2, borderH/2,
\ borderW-borderW/2, borderH-borderH/2, bcolor)
return c
}



14 :名無しさん@編集中:2006/09/20(水) 23:39:43 ID:JAZ7dmNq
     。 ο     ,.。 ο
   ο
     ,.  ゚   ο    o
   。   o
 ο     。    ゚  ο
  ,ヘ、 ,.:-一;:、ο人がまるでいない・・・
_,.-';:  ミ;;:;,. _,.;:゙ミ '^ー、 ο    。
    ,r( ´・ω・) ,.*。\,r'!  ο
.,。   ツィー=ニ彡'   ,.。 _j
   〜'l  つとノ  '" {-'
    ,.;:;u‐―u' ,.。* ._,.-!
-=、,r'        ,r='i:,ィ'
 ,.*。    ,__,.-=':トー'
ヘ_,、   /;;::-一'
‐-、`-'iニレ'^'

15 :名無しさん@編集中:2006/10/09(月) 15:29:33 ID:B67vZM4M
EasyVFRでタイムコードだしてtc2cfrに投げると
Number of data chunks does not match frame count.
とかでて止まる。ナニコレ。誰か助けて。

# timecode format v1
Assume 29.970030
0,4649,23.976025
4650,7341,29.970030
7342,35289,23.976025

タイムコードが↑でaviは29.97fpsでできてる模様。

16 :名無しさん@編集中:2006/10/12(木) 21:13:17 ID:ncqGs7PQ
前スレのdatキボンヌ

17 :名無しさん@編集中:2006/10/12(木) 21:32:16 ID:cRL49dXh
http://www.geocities.jp/mirrorhenkan/url.html?u=http://pc8.2ch.net/test/read.cgi/avi/1030537641/

18 :名無しさん@編集中:2006/10/19(木) 01:38:47 ID:c0V6DE1P
に〜やんのところ池

19 :sage:2006/10/29(日) 23:24:45 ID:FuQtmUD3
>>15

それ多分、端数問題で引っかかってる。
俺もそのエラー出たけど

Function mod_FPS(clip clip,string "IVTC"){
sf=clip.framecount
sn=clip.FramerateNumerator
sd=clip.FramerateDenominator
clip=Eval("clip."+IVTC)
ff=clip.framecount

clip=Eval("clip.assumefps("+string(ff*sn)+","+string(sf*sd)+",False)")
return clip
}

a = src.Trim(0,100).mod_FPS("""IT(fps=24, ref="TOP")""")
b = src.Trim(101,200).mod_FPS("""IT(fps=30, ref="TOP")""")
c = src.Trim(201,300).mod_FPS("""IT(fps=24, ref="TOP")""")

tcpath = "c:\tmp\timecode.txt"
result = EasyVFR_Create(src, a, tcpath)
result = all.EasyVFR_Append(b, tcpath)
result = all.EasyVFR_Append(c, tcpath)
result


ってな具合に>>8のをEasyVFRに加えたら出来た。

20 :名無しさん@編集中:2006/10/29(日) 23:28:25 ID:FuQtmUD3
うぉ・・・・
あまりに久しぶりだったからsageの書く場所間違えてしまった。
スミマセン・・・・。

21 :名無しさん@編集中:2006/10/30(月) 02:05:10 ID:Urc+xqmd
♪ ∧,_∧
   (´・ω・`) ))
 (( ( つ ヽ、   ♪
   〉 とノ )))
  (__ノ^(_)

22 :名無しさん@編集中:2006/11/13(月) 14:31:20 ID:O7l1lOuS
ITで30fpsのインタレ解除って出来ない?
6フレームに1フレームミスるんだけど・・・

23 :22:2006/11/13(月) 14:31:54 ID:O7l1lOuS
ごめん場所間違えた

24 :名無しさん@編集中:2006/11/15(水) 18:32:03 ID:wkPsdoUE
#ASYNTHER QuickTime 30.00fps
LoadVFAPIPlugin("C:\Program Files\AviSynth 2.5\plugins\QTReader.vfp","QTReader")
[QTReader("%f")]
ChangeFPS(30.00)
FlipVertical

でquicktimeをvirtualdubで読み込めたんですが。
ついでにwavで出力してる音声を読み込むのってどう書きますか?

25 :名無しさん@編集中:2006/11/15(水) 18:48:47 ID:nQ5D0RwA
ここは自慢のスクリプトを貼り付けてそれを肴に語らうところらしいよ。
どこかで聞いた話じゃ2chのAviSynth関連スレは初心者お断りなんだって。

26 :名無しさん@編集中:2006/11/15(水) 18:51:21 ID:kqED7NZk
とゆうかVDスレでも似たようなこともうきいてるじゃんか

27 :名無しさん@編集中:2006/11/15(水) 22:38:15 ID:OF+qTVTn
AudioDub(QTReader(), WaveSource() )

28 :名無しさん@編集中:2006/11/15(水) 22:39:36 ID:OF+qTVTn
WAVSource()

29 :名無しさん@編集中:2006/11/16(木) 00:24:48 ID:6IXOD+ie
>25
勉強する意欲があり、向上心があり、独力でできるところまでやっている事が伝わってくる
そんな初心者はとても歓迎されてるよ。
自分では調べもしない、試しもしない、他人を利用することしか頭に無い
そんな奴は初心者とは呼べない。synth関連スレに限らずね。

ま、ここはショボスクでも何でもいいからとにかく貼るスレだから、とりあえず貼れ。とっとと貼れ。

30 :名無しさん@編集中:2006/11/16(木) 21:39:56 ID:vTv912wj
>>29
だったら本スレで質問しろってことだ
それより早く貼ってくだちい

31 :名無しさん@編集中:2006/11/17(金) 01:51:26 ID:lo5LkW8J
手動逆テレシネフィルタ

function ITC(clip, order){

var a, l; //Declare variables.
a = new Array((1+2*order)%10 ,(4+2*order)%10 ,(6+2*order)%10, (8+2*order)%10);
l = a.sort() ;
AVS.inc=doubleweave(clip);//Sort the array.
AVS.inc=selectevery(inc,10,l[0],l[1],l[2],l[3]) ;
return AVS.inc;
}

32 :名無しさん@編集中:2006/11/17(金) 01:54:29 ID:lo5LkW8J
要warpsharp
もっと簡単なのあったらオシエテ
こんな感じでツカウ
ITCws = WScript("C:\Program Files\AviSynth 2.5\script\ITC.js", "JScript")
source=avisource("test.avi")
ITCws.WSInvoke("ITC",source,1)

33 :名無しさん@編集中:2006/11/24(金) 16:50:09 ID:+ASBD2Vz
IVTCの端数調整をした timecode v1 を出力するスクリプト
自分用なのでグローバル変数使いまくりの上,解り難いサンプル付属
意外に長くなったんでアップローダに上げました
直張りじゃないとまずいかな?

pass avisynth
http://www.uploda.org/uporg590915.zip.html

34 :名無しさん@編集中:2006/11/24(金) 16:59:03 ID:zPkmPH3s
オレはReena!->tbl->timecodev2->MP4ッス

35 :名無しさん@編集中:2006/11/25(土) 01:42:37 ID:+MzjhZT0
>>33
ここに貼ったら?そのためにあるんだし

36 :名無しさん@編集中:2006/11/25(土) 03:12:23 ID:evKmd4rO
単に長いことだけが理由なら、ここにも貼ってほしいね。
寂しいスレだし。

37 :名無しさん@編集中:2006/11/25(土) 08:34:28 ID:uiH2xf57
>>33
そこ早すぎ。もう流れてるよ。

38 :名無しさん@編集中:2006/11/25(土) 09:59:52 ID:oQBPEXFf
問題ないようなんで貼ってみる

function inittimecode ( clip c, string "filename" ) {
global timecode_filename = default( filename, "default-timecodes.txt" )
global sourceclip = c
global prevframe = -1
global tc_implicit = false
WriteFileStart( BlankClip(length=0), timecode_filename, """ "# timecode format v1"+chr(10)+"Assume "+string(sourceclip.framerate) """ )
}

function tcimplicit ( int a, int b, string "filter", bool "avg" ) {
global tc_implicit_filter = default( filter, "noop()" )
global tc_implicit_avg = default( avg, false )
global tc_implicit = true
global tc_implicit_st = a
global tc_implicit_ed = b
}

global a24d = """Auto24FPS( drop=false,mode="blend" )"""
global it = "IT( diMode=0 )"+a24d
global a24 = """Auto24FPS( mode="blend" )"""
global a602 = "DoubleWeave().a60224()"
global pd = "DoubleWeave().Pulldown( 1,3 )"
global td = "TDeint( mode=1 )"
global bd = """AutoDeint( "blend" )"""
global tf = "TFM().TDecimate()"+a24d
global ed = "SeparateFields() EEDI2(field=-2) merge(SelectEven(),SelectOdd())"


39 :名無しさん@編集中:2006/11/25(土) 10:00:15 ID:oQBPEXFf
function tc ( int a, int b, string "filter", bool "avg", bool "ignore" ) {
tc_implicit && (a >= tc_implicit_st) && (a <= tc_implicit_ed) && (tc_implicit_st != a) ? \
tc_main( tc_implicit_st,a-1,tc_implicit_filter,tc_implicit_avg ) : nop()

global tc_implicit_st = tc_implicit ? b+1 : 0
tc_main( a,b,filter,avg,ignore )

return last
}

function tc_main ( int a, int b, string "filter", bool "avg", bool "ignore" ) {
init = prevframe < 0 ? true : false
global prevframe = init ? a-1 : prevframe

ignore = default( ignore, false )
avg = default( avg, false )
ignore ? nop() : Assert( prevframe+1 == a, "tc: framenumber no much, "+string(a)+" - "+string(b) )
global prevframe = b

filter = default( filter, "noop()" )
orig = sourceclip.trim( a,b )
proc = eval( "orig."+filter )
proc.framecount > 1 && (avg ? false:true) ? \
maketimecode( init ? BlankClip(length=0) : cur, orig, proc ) : \
maketimecode2( init ? BlankClip(length=0) : cur, orig, proc )

global cur = init ? proc.AssumeFPS( sourceclip.framerate ) : cur + proc.AssumeFPS( sourceclip.framerate )

global audiosource = init ? orig : audiosource + orig
return sourceclip.HasAudio() ? AudioDubEx( proc,audiosource ) : proc
}


40 :名無しさん@編集中:2006/11/25(土) 10:00:36 ID:oQBPEXFf
function tcdraw () {
tc_implicit && (tc_implicit_st <= tc_implicit_ed) ? \
tc_main( tc_implicit_st,tc_implicit_ed,tc_implicit_filter,tc_implicit_avg ) \
: nop()

global tc_implicit = false
return sourceclip.HasAudio() ? AudioDubEx( cur,audiosource ) : cur
}

function noop ( clip c ) { return c }

function maketimecode (clip base, clip orig, clip ivtc) {
fps = ivtc.framerate
section = base.framecount + ivtc.framecount-2
fraction = fracivtc( orig, ivtc )
tc = string(base.framecount) + "," + string(section) + "," + string(fps) + chr(10) + string(section+1) + "," + string(section+1) + "," + string(1000 / (1000/fps + fraction))
WriteFileStart( orig, timecode_filename, "tc", append=true )
}

function fracivtc ( clip orig, clip ivtc ) {
originaltime = 1000 / orig.framerate * orig.framecount
ivtctime = 1000 / ivtc.framerate * ivtc.framecount
return originaltime - ivtctime
}


41 :名無しさん@編集中:2006/11/25(土) 10:00:58 ID:oQBPEXFf
function maketimecode2 (clip base, clip orig, clip ivtc) {
fps = ivtcfps( orig, ivtc )
tc = string(base.framecount) + "," + string(base.framecount+ivtc.framecount-1) + "," + string(fps)
WriteFileStart( orig, timecode_filename, "tc", append=true )
}

function ivtcfps ( clip orig, clip ivtc ) {
originaltime = 1000 / orig.framerate * orig.framecount
return 1000 / (originaltime / ivtc.framecount)
}

ここまで
ユーザ側で使うのは inittimecode, tc, tcimplicit, tcdraw の4つ

inittimecode ( clip c, string "filename" )
c ソースクリップ.このクリップが操作対象になる
filename 出力されるタイムコードファイル名

tc ( int a, int b, string "filter", bool "avg", bool "ignore" )
a 開始フレーム番号
b 終了フレーム番号
filter 区間(a から b)に掛けるフィルタ.主にIVTC
フィルタ後のフレーム数に合わせたタイムコードが出力されるので,ある程度自由にフレーム数を変えられる
"DoubleWeave().SelectEvery( 10, 0,5 )" とか,動かない場面なら "trim(0,-1)" でもいい
フィルタ後のクリップは勝手に保存される

tcdraw ()
tc() で保存してたクリップを引き出す.とりあえず最後に置く



42 :名無しさん@編集中:2006/11/25(土) 10:01:17 ID:oQBPEXFf
使用例
--
prefix="foo"
episode="1"
file=prefix+".d2v"
wav = prefix+" T01 48K 16bit 2ch.wav"

v = mpeg2source( file ).AssumeTFF()
a = WavSource( wav )
AudioDub( v,a )
inittimecode( prefix+episode+"-timecodes.txt" )
tc( 0,432,tf )
tc( 433,976,td )
tc( 977,1324,tf )
tc( 1325,1403,pd )
tc( 1404,1500,tf )
tcdraw()

crop( 8,0,-8,0 )
KenKunNRT()
return last
--

tcimplicit を使うと上のはこう書ける
--
inittimecode( prefix+episode+"-timecodes.txt" )
tcimplicit( 0,1500,tf )
tc( 433,976,td )
tc( 1325,1403,pd )
tcdraw()
--

43 :名無しさん@編集中:2006/11/25(土) 13:06:04 ID:aR3nnS3S
長いって言うから100レスくらい使うのかと思ってたのに

44 :名無しさん@編集中:2006/12/08(金) 01:05:46 ID:PxLpWLrv
 " " ヾ ; " ; " ; ; ヾ   ⊂⊃
"ゞ ; ; ; ;;ヾ;;ヾ;ゞ..。      ゙ /~~\   ⊂⊃
ヾ ; ;";;/" ;;ヾ...;ヾ||〜'i  "  /    /~~\
; "i "; ;ヾ;.;ヾ;;メヾ.||  .|    _________
ii;, メソ ヾ; ;ゞ." ..||茶.|  /丶丶丶丶丶丶丶丶.\
|i;, |ソ       .||  .|//\丶丶丶丶丶丶丶 ..\
Il;: |       ..||店.|/ 田 \丶丶丶丶丶丶丶丶\
!i;: |        ||  .| ̄ ̄ ̄ ̄|  ̄  ̄  ̄ ̄ ̄ ̄ ̄.‖
|!;; |        ||〜'i | ̄ ̄ ̄|!|      ∧ .∧  . ‖
II;; |        ||  .|!|___|!|      .(,,・ω・)<誰もいない・・・
II;; |        ||  .|     ...| ̄ ̄ ̄| ..(つ旦). ..‖
从 ゝ.,...,  .  l ̄i....|__.   .  |_ |i ̄i|| ̄∪∪ ̄l| |
""""''""" ""''"""''  ''""""""''  ''""" """"''

45 :名無しさん@編集中:2006/12/08(金) 22:15:27 ID:qwumTWsL
 " " ヾ ; " ; " ; ; ヾ   ⊂⊃
"ゞ ; ; ; ;;ヾ;;ヾ;ゞ..。      ゙ /~~\   ⊂⊃
ヾ ; ;";;/" ;;ヾ...;ヾ||〜'i  "  /    /~~\
; "i "; ;ヾ;.;ヾ;;メヾ.||  .|    _________
ii;, メソ ヾ; ;ゞ." ..||茶.|  /丶丶丶丶丶丶丶丶丶\
|i;, |ソ       .||  .|//\丶丶丶丶丶丶丶丶 ..\
Il;: |       ..||店.|/ 田 \丶丶丶丶丶丶丶丶丶\
!i;: |        ||  .| ̄ ̄ ̄ ̄|  ̄  ̄  ̄ ̄ ̄ ̄ ̄ ̄‖
|!;; |        ||〜'i | ̄ ̄ ̄|!|    ∧ .∧      ‖
II;; |        ||  .|!|___|!|    (,,・ω・) (´ー`)<いないねー
II;; |        ||  .|     ...| ̄ ̄ ̄(つ旦) (つ旦) ‖
从 ゝ.,...,  .  l ̄i....|__.   .  |_ |i ̄i||∪∪ ̄∪∪l| |
""""''""" ""''"""''  ''""""""''  ''""" """"'' """''

46 :名無しさん@編集中:2006/12/09(土) 10:05:02 ID:AYb83NR1
 " " ヾ ; " ; " ; ; ヾ   ⊂⊃
"ゞ ; ; ; ;;ヾ;;ヾ;ゞ..。      ゙ /~~\   ⊂⊃
ヾ ; ;";;/" ;;ヾ...;ヾ||〜'i  "  /    /~~\
; "i "; ;ヾ;.;ヾ;;メヾ.||  .|    _________
ii;, メソ ヾ; ;ゞ." ..||茶.|  /丶丶丶丶丶丶丶丶.\
|i;, |ソ       .||  .|//\丶丶丶丶丶丶丶 ..\
Il;: |       ..||店.|/ 田 \丶丶丶丶丶丶丶丶\
!i;: |        ||  .| ̄ ̄ ̄ ̄|  ̄  ̄  ̄ ̄ ̄ ̄ ̄.‖
|!;; |        ||〜'i | ̄ ̄ ̄|!|             ‖
II;; |        ||  .|!|___|!||            ‖
II;; |        ||  .|     ...| ̄ ̄ ̄|        ‖
从 ゝ.,...,  .  l ̄i....|__.   .  |_ |i ̄i|| ̄ ̄ ̄ ̄l| |
""""''""" ""''"""''  ''""""""''  ''""" """"''


47 :名無しさん@編集中:2006/12/09(土) 10:56:00 ID:X3D6jCD4
いるお

48 :名無しさん@編集中:2006/12/23(土) 03:25:02 ID:RI79Kt7w
ファイル読み込み関数。
一回作ればあとは楽出来るかな、と。

function LoadFile(string filename) {
_len = Findstr(RevStr(filename), ".") - 1
_ext = RightStr(filename, _len)
clip =
\ ((_ext == "avi")
\ ? LoadAvi(filename)
\ :(_ext == "d2v")
\ ? LoadD2v(filename)
\ :(_ext == "mpeg" || _ext == "mpg" || _ext == "vob")
\ ? LoadMpeg(filename)
\ :(_ext == "aup")
\ ? LoadAup(filename)
\ :(_ext == "tpr")
\ ? LoadTpr(filename)
\ :(_ext == "mov" || _ext == "3gp" || _ext == "3gp2")
\ ? LoadQt(filename)
\ :(_ext == "wav")
\ ? LoadWav(filename)
\ :(_ext == "mpa" || _ext == "mp3")
\ ? LoadMpa(filename)
\ : LoadDs(filename)
\ )
return clip
}

49 :名無しさん@編集中:2006/12/23(土) 03:25:52 ID:RI79Kt7w
function LoadDs(string filename) {
return DirectShowSource(filename)
}
function LoadAvi(string filename) {
LoadAviUtlInputPlugin(dir + "ds_input.aui", "DSInput")
return DSInput(filename)
}
function LoadD2v(string filename) {
LoadPlugin(dir + "DGDecode.dll")
return MPEG2Source(filename)
}
function LoadMpeg(string filename) {
LoadAviUtlInputPlugin(dir + "m2v.vfp", "MPEGInput")
return MPEGInput(filename)
}

50 :名無しさん@編集中:2006/12/23(土) 03:28:32 ID:RI79Kt7w
function LoadAup(string filename) {
LoadVFAPIPlugin(dir + "aviutl.vfp", "AUPInput")
return AUPInput(filename)
}
function LoadTpr(string filename) {
LoadVFAPIPlugin(dir + "TMPGEnc.vfp", "TPRInput")
return TPRInput(filename)
}
function LoadQt(string filename) {
return QTInput(filename, audio = true)
}
function LoadWav(string filename) {
return WavSource(filename)
}
function LoadMpa(string filename) {
LoadPlugin(dir + "NicAudio.dll")
return NicMPASource(filename)
}

51 :名無しさん@編集中:2006/12/23(土) 04:36:03 ID:AFfnCPQo
LoadAviでDSInput使う意味は?AVISourceじゃだめなん?

52 :48:2006/12/23(土) 20:00:56 ID:RI79Kt7w
LoadFile作ったのが半年ぐらい前で、
LoadAviは更にその半年前ぐらいに作ったでしょうか。
もう作った当時の思考が思い出せません。

擬似VFRでおかしかったか音ズレが起きたか、とかだったと思い、
由来をちょっと探してみました。

推測するに、携帯動画変換君Wikiの、
“可変フレームレートや120fpsのWMVファイルを読み込む”項を参考に作ってそのまま、
でしょうか。

下記の様に変えて様子みてみます。

function LoadDs(string filename) {
LoadAviUtlInputPlugin(dir + "ds_input.aui", "DSInput")
return DSInput(filename)
}
function LoadAvi(string filename) {
return AVISource(filename)
}

53 :名無しさん@編集中:2007/01/06(土) 21:38:42 ID:fyypBQ9Y
もう一つのFilterRange
function FilterRange2(clip clip,int "start",int "end",string "filter"){
global start=start
global end=end
clip=conditionalfilter(clip,Eval("clip."+filter),clip,"current_frame>=start&¤t_frame<=end","=","true",false)
return clip
}

54 :名無しさん@編集中:2007/01/21(日) 02:40:26 ID:Yk4jAhSw
#for…繰り返し処理を行う
#  start  値の初期値
#  end   値の終了値
#  step  刻み値
#  filter 繰り返し分適応させるフィルタ(省略すると何もしません、“""”でも省略扱いです。)
#      繰り返しの値は“i”もしくは“crnt”で取得出来ます
#  merge  クリップ結合関数(省略すると最後に作成したクリップを返します、“""”でも省略扱いです。)
#      繰り返し途中に作成したクリップは早めに生成されたクリップが“c1”、
#      遅めに生成されたクリップが“c2”になります
#      この2つのクリップを1つのクリップに結合します。
function for(clip clip, int start, int end, int step, string "filter", string "merge") {
  filter = default(filter, "")
  merge = default(merge, "")
  merge = (("" != merge)? merge: "c2")
  i = start
  crnt = start
  next = crnt + step

  c1 = clip
  c2 = (("" != filter)? Eval("clip." + filter): clip)
  c2 = ((next < end) ? c2.for(next, end, step, merge, filter): c2)
  return ((next < end)? Eval(merge): c2)
}


55 :名無しさん@編集中:2007/01/21(日) 02:41:12 ID:Yk4jAhSw
#OffsetFrame…現在のフレームとは違うフレームの画像を表示する
#  ofst  表示するフレームの位置(+1なら次のフレーム、-1なら前のフレーム)
function OffsetFrame(clip clip, int ofst) {
  return  ((0 < ofst)
    \    ? clip.Trim(ofst+1,0)
    \  :(ofst < 0)
    \    ? clip.Loop((-ofst)+1, 0, 0)
    \    : clip
    \  )
}

#MovieThumbnail…サムネイルを作成する
#  size_x 1画面の横サイズ
#  size_y 1画面の縦サイズ
#  rpt_x  横に敷き詰める個数
#  rpt_y  縦に敷き詰める個数(0なら動画が終わるまで)
#  itvl  表示する時間間隔(フレーム)
function MovieThumbnail(clip clip, int size_x, int size_y, int rpt_x, int rpt_y, int itvl) {
  itvl = ((0 < itvl)? itvl: 30)
  size_x = ((0 < size_x)? size_x: 40)
  size_y = ((0 < size_y)? size_y: 30)
  rpt_x = ((0 < rpt_x)? rpt_x: 4)
  rpt_y = ((0 <= rpt_y)? rpt_y: 4)
  rpt_y = ((0 != rpt_y)? rpt_y: clip.FrameCount() / (itvl * rpt_x))

  clip = clip.LanczosResize(size_x, size_y)
  return clip.for(0, rpt_y, 1, "StackVertical(c1, c2)"
      \         , "OffsetFrame(" + String(rpt_x * itvl) + ")")
      \  .for(0, rpt_x, 1, "StackHorizontal(c1, c2)"
      \         , "OffsetFrame(" + String(itvl) + ")")
}


56 :名無しさん@編集中:2007/01/21(日) 02:44:58 ID:Yk4jAhSw
リアルタイム再生はまず無理ですね。
MovieThumbnail(80, 45, 6, 0, Int(1 * Framerate()))

ttp://kasamatusan.sakura.ne.jp/cgi-bin2/src/ichi70983.jpg.html


57 :名無しさん@編集中:2007/01/21(日) 16:13:03 ID:rXgc3GFG
>>54
あまり考えずにレスするけど、Loopじゃダメなん?

58 :名無しさん@編集中:2007/01/21(日) 16:39:30 ID:hz2fdV50
関数名がforってのは若干違和感が

59 :名無しさん@編集中:2007/01/21(日) 17:45:04 ID:y+OVAsZB
flvやasfとかの音ズレ対策にフレームレート設定にAssumeFPS使うのだけ
覚えて関数とかはいまいちわからんけどとりあえず保存しときたい汚いファイル
があんまりないからアニメのOPやCM(実写)ぐらいにしか使っていないのがむなしい


60 :名無しさん@編集中:2007/02/18(日) 06:31:37 ID:oBuNzTjy
# 使用例: EEDI2Bob(type=3, mthreshL=8, mthreshC=6, mthresh=0, lthresh=0, vthresh=0, estr=0, dstr=0, maxd=24, nt=76, pp=1, ColorMatrix="Rec.709->Rec.601")
function EEDI2Bob(clip i, int "type", int "cthresh", int "MI", int "blockx", int "blocky", int "mthreshL", int "mthreshC",
\ int "mthresh", int "lthresh", int "vthresh", int "estr", int "dstr", int "maxd", int "nt", int "pp", string "ColorMatrix")
{
TYPE = default(type, 0)
CTHRESH = default(cthresh, 6)
MI = default(MI, 64)
BLOCKX = default(blockx, 16)
BLOCKY = default(blocky, 16)
MTHRESHL = default(mthreshL, 6)
MTHRESHC = default(mthreshC, 6)

MTHRESH = default(mthresh, 10)
LTHRESH = default(lthresh, 20)
VTHRESH = default(vthresh, 20)
ESTR = default(estr, 2)
DSTR = default(dstr, 4)
MAXD = default(maxd, 24)
NT = default(nt, 50)
PP = default(pp, 1)

61 :名無しさん@編集中:2007/02/18(日) 06:32:36 ID:oBuNzTjy
#CM = default(ColorMatrix, string("Rec.709->Rec.601"))
CM = default(ColorMatrix, string(""))

TDeint_Bob_Ovrfile = "TDeint_bob_OvrFile.txt"

i
Exist("TDeint_bob_OvrFile.txt") == false ? WriteFileStart(TDeint_Bob_Ovrfile, """ "#TDeint v1.1 by tritical" """, append=false) : nop()
AssumeFrameBased()
GetParity(i) ? AssumeTFF() : nop()
interp = SeparateFields(i).EEDI2(field=-2, mthresh=MTHRESH, lthresh=LTHRESH, vthresh=VTHRESH, estr=ESTR, dstr=DSTR, maxd=MAXD, nt=NT, pp=PP)
TDeint(mode=1, order=-1, type=TYPE, cthresh=CTHRESH, MI=MI,
\ blockx=BLOCKX, blocky=BLOCKY, mthreshL=MTHRESHL, mthreshC=MTHRESHC, edeint=interp, ovr="TDeint_bob_OvrFile.txt")
vinverse()
(CM != "") ? ColorMatrix(mode=CM) : nop()
return last
}

62 :名無しさん@編集中:2007/02/18(日) 07:16:33 ID:oBuNzTjy
× interp = SeparateFields(i)
○ interp = SeparateFields()

63 :名無しさん@編集中:2007/02/19(月) 04:56:19 ID:HfRiMN2Q
Repairのうまい使い方、何かないでしょうか

29 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)