1

我正在尝试将图像与 avi 视频剪辑相结合。

我在用着:

  1. AviSynth作为帧服务器
  2. AvsPmod作为编辑器

我有:

  1. jpg 图像。宽度和高度与视频相同
  2. avi 视频剪辑

我的代码 main.avs

first = Import("frames/first.avs")
second = Import("frames/second.avs")
return first+second

第一个.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

第二个.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

我怎么解决这个问题?

4

2 回答 2

1

在avisynth 中,BlankClip 的音频默认只有一个通道(http://avisynth.nl/index.php/BlankClip),我认为AVI 文件不太可能只有一个音频通道。当您使用空白剪辑时,您没有指定通道编号,并且假设一个 AVI 文件不可能有一个音频通道,您正在尝试连接两个具有不同音频通道的视频。

您可以使用该功能检查音频通道的数量

     int clip.AudioChannels

在附加视频之前,您可以使用函数( http://avisynth.nl/index.php/GetChannel)确保频道匹配

GetChannels(clip clip, int ch1 [, int ch2, ...] ) 
于 2016-04-21T12:07:26.690 回答
0

您需要确保两个剪辑具有相同的音频属性(在这种情况下,音频通道的数量不匹配)。而不是使用AudioDubin first.avs, inmain.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
于 2016-05-28T19:35:02.247 回答