gnaggnoyil gnaggnoyil
95cxg63
关注数: 20 粉丝数: 106 发帖数: 10,553 关注贴吧数: 42
获得新成就:"不使用非编软件制作出一个一图流音乐视频" RT.有图有真相 ------------ function AutoAddBorders(clip clip, int "w", int "h") { #默认值 w = Default(w, 512) h = Default(h, 384) #检测用 clip_w = clip.width() clip_h = clip.height() FC = clip.Framecount() FN = clip.Frameratenumerator() FD = clip.Frameratedenominator() pixel_type = \ clip.EPCS == "YV12" ? "YV12" : \ clip.EPCS == "YUY2" ? "YUY2" : \ MessageClip("目前只支持YV12,YUY2", text_color=$ff0000) #计算resize宽高 rh = Round(Float(w)/Float(clip_w)*clip_h) rhh = (rh%2 == 0) ? rh : rh + 1 rw = Round(Float(h)/Float(clip_h)*clip_w) rww = (rw%2 == 0) ? rw : rw +1 #resize判断 clip_rs = \ (Float(clip_w)/Float(clip_h) > Float(w)/Float(h)) ? clip.Spline64Resize(w,rhh) : \ (Float(clip_w)/Float(clip_h) < Float(w)/Float(h)) ? clip.Spline64Resize(rww,h) : \ (Float(clip_w)/Float(clip_h) == Float(w)/Float(h)) ? clip.Spline64Resize(w,h) : \ MessageClip("unknow error(clip_rs)", text_color=$ff0000) #垫底用黑边 blank = blankclip(length=FC,width=w,height=h,pixel_type=pixel_type,fps=FN,fps_denominator=FD).KillAudio #检测用 rsw = clip_rs.width() rsh = clip_rs.height() #定位判断 x = Round((w-rsw)/2) y = Round((h-rsh)/2) #overlay over = \ (Float(clip_w)/Float(clip_h) > Float(w)/Float(h)) ? Overlay(blank,clip_rs,x=0,y=y) : \ (Float(clip_w)/Float(clip_h) < Float(w)/Float(h)) ? Overlay(blank,clip_rs,x=x,y=0) : \ (Float(clip_w)/Float(clip_h) == Float(w)/Float(h)) ? clip_rs : \ MessageClip("unknow error(over)", text_color=$ff0000) return over } #EPColor_Space function EPCS(clip clip) { WTCS = \ (clip.IsYV12() == true ? "YV12" : \ (clip.IsYUY2() == true ? "YUY2" : \ (clip.IsRGB24() == true ? "RGB24" : \ (clip.IsRGB32() == true ? "RGB32" : \ "unkonw")))) return WTCS } #---------↑纯属复制粘贴--------------------------- #---------↓自己编写的----------------------------- function GetAudioList(int audiofilenum){ tmpaudio=DirectShowSource(String(audiofilenum)+".mp3",convertfps=true) tmpaudiorate=AudioRate(tmpaudio) tmpblank=BlankClip(length=AudioLength(tmpaudio)/tmpaudiorate*20,fps=20,color=$000000) return AudioDubEx(tmpblank,tmpaudio)+((audiofilenum<13)?(BlankClip(length=20,fps=20,channels=AudioChannels(tmpaudio),audio_rate=tmpaudiorate,color=$000000)+GetAudioList(audiofilenum+1)):BlankClip(length=0,fps=20,channels=AudioChannels(tmpaudio),audio_rate=tmpaudiorate,color=$000000)) } audio=GetAudioList(1) video=ImageSource(file="cover.png",start=0,end=FrameCount(audio),fps=20) ConvertToYV12(video) width()%2==1?AddBorders(0,0,1,0):NOP() height()%2==1?AddBorders(0,0,0,1):NOP() video=AutoAddBorders(896,504) AudioDubEx(video,audio) --------------------------------------------- 效果完美,可以喂给x264压制了
首页 1 2 下一页