Конвейер avs в ffmpeg с помощью avs2yuv

Я пытаюсь использовать avs2yuv для передачи вывода avs в ffmpeg для дальнейшего преобразования.

  • Мой видеофайл называется "sample.avi" (без звука, только видео)

  • Мой аудиофайл называется «sample.wav».

  • Мои файлы avs называются sample.avs и выглядят так:

V = AviSource("sample.avi")
A = WavSource("sample.wav")
AudioDub(V ,A)

or

V = DirectShowSource("sample.avi")
A = DirectShowSource("sample.wav")
AudioDub(V ,A)
  • Вот как я трублю:
avs2yuv sample.avs - | ffmpeg -y -f yuv4mpegpipe -i - output.mp4

Теперь вот ПРОБЛЕМА: независимо от того, какие файлы я пытаюсь использовать в качестве входных данных, на моем выходе НЕТ ЗВУКА. Я не понимаю, что я делаю не так, и почему мой звук не попадает на выход. Если у кого-то есть опыт работы с avisynth и avs2yuv, ваша помощь будет ОЧЕНЬ признательна.

Благодарю вас!


person Razor    schedule 12.12.2011    source источник
comment
Даже если это так, звук не воспроизводится: A = WavSource(sample.wav) AudioDub(BlankClip(), A)   -  person Razor    schedule 12.12.2011


Ответы (3)


Я бы попробовал воспроизвести ваш avs-файл с помощью ffplay, чтобы проверить ваш avs-файл.

И вы также можете попробовать построить какой-нибудь GRAph с помощью GraphEdit, чтобы сделать что-то подобное

A = DirectShowSource("sample_audio.grf", video=false)
V = DirectShowSource("sample_video.grf", audio=false)
AudioDub(V ,A)

С DirectShow вы можете добавить несколько параметров, таких как частота кадров, количество кадров и т. д., иногда это помогает.

Удачи

person Kurt    schedule 12.12.2011
comment
Спасибо за ответ. Я могу воспроизводить свои avs в проигрывателе Windows Media, и он отлично работает. Но, конечно же, мои .avs не будут работать с ffplay. Я получаю: [avs @ 0000000001C4B960] Ошибка AVIFileOpen с ошибкой -2147221164sample.avs: операция не разрешена - person Razor; 12.12.2011
comment
@Razor У меня такая же проблема, ты нашел решение? мой avs отлично работает с smplayer, и я могу кодировать с помощью x264, но я не могу заставить работать ffmpeg, всегда заканчиваюсь этой ошибкой. - person kaefert; 07.08.2013

Согласно этой ссылке:

Avs2YUV — это программа командной строки, предназначенная для использования в Wine для взаимодействия между Avisynth и видеоинструментами на базе Linux.

avs2yuv.exe обрабатывает только тот видеопоток, который выводится в цветовом пространстве YUV. Это так просто: аудиопоток игнорируется.

Вот несколько способов обработки как аудио-, так и видеопотоков в .avs. Эти методы работают в Linux с использованием wine и, конечно же, работают в Windows. :

  • Кодировать в Avidemux через AvsProxy (AvsProxy поставляется с Avidemux)

  • Используйте VirutalDub в качестве графического интерфейса кодировщика

  • в противном случае кодируйте аудио отдельно, а затем мультиплексируйте видео на отдельном этапе.

Я считаю, что avs2pipe может обрабатывать как видео-, так и аудиопотоки с .avs, но я еще не пробовал. Вот ссылка на некоторую информацию об avs2pipe

Описание: Использование avs2yuv в основном имеет смысл в среде Linux/Unix.

person Peter.O    schedule 11.01.2012

Попробуйте makeAVIS.exe из пакета ffdshow:

wine makeavis.exe -p -i example.avs -a output.wav
person Konstantin    schedule 29.08.2014