Как совместить изображение и avi видео в avisynth?

Я пытаюсь объединить изображение с видеоклипом avi.

я использую:

  1. AviSynth в качестве сервера кадров
  2. AvsPmod в качестве редактора

у меня:

  1. jpg изображение. ширина и высота такие же, как у видео
  2. видео клип

Мой код 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

Как я могу решить эту проблему?


person Кадыр Атаханов    schedule 20.04.2016    source источник


Ответы (2)


В 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, ...] ) 
person Ediruth    schedule 21.04.2016

Вам необходимо убедиться, что оба клипа имеют одинаковые свойства звука (и в этом случае количество аудиоканалов не совпадает). Вместо использования 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
person jamesdlin    schedule 28.05.2016