我试图将图像与avi视频剪辑结合起来。
我正在使用:
我有:
我的代码 的 main.avs
first = Import("frames/first.avs")
second = Import("frames/second.avs")
return first+second
first.avs
SetWorkingDir("U:\video")
intro_pic = ImageSource("source\images\intro_title.jpg", end = 300, fps=35)
intro_pic = audiodub(intro_pic, blankclip(last, length=300))
intro_pic = ConvertToYV12(intro_pic)
intro_pic = intro_pic.Lanczos4Resize(1024, 576)
intro_pic = intro_pic.FadeIn(100, color=$FFFFFF)
return intro_pic
second.avs
SetWorkingDir("U:\video")
frame_intro = AVIFileSource("source\MVI_0111.avi")
frame_intro = frame_intro.ConvertFPS(35)
frame_intro = frame_intro.Trim(125,760)
frame_intro = frame_intro.Lanczos4Resize(1024, 576)
frame_intro = frame_intro.FadeOut(100)
frame_intro = frame_intro.FadeIn(100, color=$FFFFFF)
return frame_intro
但我有错误
splice: The number of audio channels doesn't match
我该如何解决这个问题?
答案 0 :(得分:1)
在avisynth中,BlankClip的音频默认只有一个频道(http://avisynth.nl/index.php/BlankClip),我认为AVI文件不太可能只有一个音频频道。使用blankclip时没有指定频道编号,并且假设AVI文件不可能有一个音频频道,您尝试将两个视频连接到不同的音频频道。
您可以使用功能
检查音频通道的数量 int clip.AudioChannels
在添加视频之前,您可以使用功能(http://avisynth.nl/index.php/GetChannel)确保频道匹配
GetChannels(clip clip, int ch1 [, int ch2, ...] )
答案 1 :(得分:0)
您需要确保两个片段具有相同的音频属性(在这种情况下,音频通道的数量不匹配)。而不是在AudioDub
中使用first.avs
,而是main.avs
我会这样做:
first = Import("frames/first.avs")
second = Import("frames/second.avs")
# Ensure that the first clip has the audio properties of the second.
first = AudioDub(first, BlankClip(second, length=first.FrameCount()))
return first + second