如何在avisynth中结合图像和avi视频?

时间:2016-04-20 02:25:27

标签: video avisynth

我试图将图像与avi视频剪辑结合起来。

我正在使用:

  1. AviSynth 作为框架服务器
  2. AvsPmod 作为编辑
  3. 我有:

    1. jpg图片。宽度和高度与视频相同
    2. avi视频剪辑
    3. 我的代码 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
      

      我该如何解决这个问题?

2 个答案:

答案 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