AviSynth FAQ - Загрузка клипов (видео, аудио и изображений) в AviSynth

Содержание

  1. Какие медиа форматы могут быть загружены в AviSynth?
  2. Какие существуют возможности загрузить мой клип в AviSynth?
  3. В чем преимущества и недостатки использования DirectShowSource для загрузки медиа файлов?
  4. Имеет ли AviSynth режим прямого копирования потока подобно VirtualDub?
  5. Как мне загрузить AVI файлы в AviSynth?
  6. Могу я загрузить видео с аудио из AVI в AviSynth?
  7. Как мне загрузить MPEG-1/MPEG-2/DVD VOB/TS/PVA в AviSynth?
  8. Как мне загрузить файлы QuickTime в AviSynth?
  9. Как мне загрузить бесформатные (raw) видео файлы в AviSynth?
  10. Как мне загрузить файлы RealMedia в AviSynth?
  11. Как мне загрузить Windows Media Video файлы в AviSynth?
  12. Как мне загрузить MP4/MKV/M2TS/EVO в AviSynth?
  13. Как мне загрузить аудио файлы WAVE PCM в AviSynth?
  14. Как мне загрузить аудио MP1/MP2/MP3/MPA/AC3/DTS/LPCM в AviSynth?
  15. Как мне загрузить файлы aac/flac/ogg в AviSynth?
  16. Как мне загрузить изображения в AviSynth?

Какие медиа форматы могут быть загружены в AviSynth?

Большинство видео и аудио форматов может быть загружено в AviSynth, но существуют и некоторые исключения такие как flv4 (VP6) и dvr-ms. Если невозможно загрузить клип в AviSynth, вы должны сконвертировать его в некоторый другой формат, который может быть загружен. Помните выбрать такой формат, для которого вы будете иметь минимальные потери в качестве в результатах преобразования.

Какие существуют возможности загрузить мой клип в AviSynth?

Вообще есть два способа загрузить ваше видео в AviSynth:

  1. используя внутренний фильтр AviSynth или плагин, который предназначен для открытия некоторого специфичного формата.
  2. используя DirectShowSource (ныне плагин).

Удостоверьтесь, что ваш клип содержит максимум один видео и (или) один аудио поток (таким образом удалите субтитры и удалите другие видео/аудио потоки). Если вы хотите загрузить клип, который содержит видео и аудио, у вас есть две возможности:

При загрузке клипа в AviSynth советуем следовать следующим правилам:

В чем преимущества и недостатки использования DirectShowSource для загрузки медиа файлов?

преимущества DirectShowSource:

недостатки DirectShowSource:

Имеет ли AviSynth режим прямого копирования потока подобно VirtualDub?

Нет, видео и аудио распаковываются при их открытии в AviSynth.

Однако существует модификация AviSynth v2.55, которая поддерживает 'direct stream copy' для видео и аудио. Эта модификация называется DSynth и может быть загружена здесь. Возможно, когда-нибудь она будет обновлена и вольется в официальный релиз AviSynth.

Как мне загрузить AVI файлы в AviSynth?

Используйте AviSource для загрузки файлов AVI в AviSynth. Пример:

AviSource("d:\filename.avi")

или без аудио:

AviSource("d:\filename.avi", false)

Если AviSynth ругается о неспособности загрузить ваш avi (couldn't decompress ...), вам необходимо установить соответствующий кодек. GSpot, в частности, подскажет вам, какой кодек вам необходимо установить для возможности открытия вашего avi.

Явное указание декодера, который будет использован для загрузки клипа в AviSynth:

# загрузить avi используя кодек XviD:
AviSource("d:\filename.avi", fourCC="XVID") # открывает avi (например DivX3) используя кодек XviD
# загружаем ваш dv-avi используя Canopus DV кодек:
AviSource("d:\filename.avi", fourCC="CDVC")

Могу я загрузить видео с аудио из AVI в AviSynth?

Всегда возможно выделить (demux) ваше аудио из AVI файла и загрузить его отдельно в AviSynth, используя декодер аудио, но в некоторых случаях (например: AVI с MP2/MP3/AC3/DTS аудио) возможно загрузить его непосредственно в AviSynth.

Для загрузки AVI с аудио вам необходимо (1) VfW (Video for Windows) кодек, чтобы открыть (то есть декодировать) ваше видео в AviSynth и ACM (Audio Compression Manager) кодек, чтобы открыть аудио в AviSynth. Для многих видео и аудио форматов такие кодеки доступны, ко определенно не для всех из них.

В документе "Импортирование медиа в AviSynth" вы можете найти эти кодеки.

Как мне загрузить MPEG-1/MPEG-2/DVD VOB/TS/PVA в AviSynth?

DGDecode является внешним плагином и поддерживает MPEG-1, MPEG-2 / VOB, TS и PVA потоки. Откройте их сначала в DGIndex и создайте d2v файл, который может быть открыт в AviSynth (заметьте, что это будет открывать только видео в AviSynth):

Немного примеров:

# DGDecode:
LoadPlugin("d:\dgecode.dll")
mpeg2source("d:\filename.d2v") 

Если ваш транспортный поток (*.TS) содержит MPEG-4 AVC видео, вам необходимо выделить (demux) неформатированный (raw) видео поток из него, и использовать DGAVCDec для его открытия в AviSynth. Смотри здесь о его использовании.

Как мне загрузить файлы QuickTime в AviSynth?

Есть два способа загрузить ваши quicktime mov видео в AviSynth (и еще RawSource для несжатых mov): QTSource и QTReader. Первый появился недавно и способен открыть многие форматы quicktime (с возможностью открыть их как YUY2), но вам необходимо установить проигрыватель QuickTime player для возможности использовать данный плагин. Второй (QTReader) - очень старый, не требуется установка проигрывателя для открытия форматов quicktime в AviSynth.

QTSource:

Вам необходим Quicktime 6 для получения только видео или Quicktime 7 для получения аудио и видео.

# YUY2 (по умолчанию):
QTInput("FileName.mov", color=2)

# с аудио (с QuickTime 7 возможно во многих случаях)
QTInput("FileName.mov", color=2, audio=true)

# бесформатное (raw) (с примером YUYV):
QTInput("FileName.mov", color=2, mode=1, raw="yuyv")

# dither = 1; преобразует бесформатное (raw) 10 бит в 8 бит видео (v210 = 10 бит uyvy):
QTInput("FileName.mov", color=2, dither=1, raw="v210")

QTReader:

# Если это не работает, или вы не имеете QuickTime, скачайте плагин QTReader
(может быть найден в разделе загрузок Doom9):
LoadVFAPIPlugin("C:\QTReader\QTReader.vfp", "QTReader")
QTReader("C:\quicktime.mov") 

Как мне загрузить бесформатные (сырые, raw) видео файлы в AviSynth?

Внешний плагин RawSource поддерживает все виды бесформатных (raw) видео файлов с заголовком YUV4MPEG2 или без заголовка (видео файлы, которые содержат YUV2, YV16, YV12, RGB или Y8 видео данные, записанные кадр за кадром без сжатия).

Примеры:

# Следующее предполагает, что есть соответствующий YUV4MPEG2-заголовок внутри:
RawSource("d:\yuv4mpeg.yuv")

# Бесформатный файл с RGBA данными:
RawSource("d:\src6_625.raw",720,576,"BGRA")

# Вы можете указать байтовую позицию видеокадров в файле прямо
# (что может быть найдено  с помощью yuvscan.exe).
# Это полезно, если это видео не сосем неформатированное,
№ но например несжатые файлы MOV или файлы с некоторым специфичным заголовком:
RawSource("d:\yuv.mov", 720, 576, "UYVY", index="0:192512 1:1021952 25:21120512 50:42048512 75:62976512")

Как мне загрузить файлы RealMedia в AviSynth?

RM/RMVB (RealMedia / RealMedia с переменным битрейтом; обычно содержит Real Video/Audio): установите rmvb splitter и Real кодеки путем устанвки RealPlayer/RealAlternative. Создайте скрипт:

DirectShowSource("d:\clip.rmvb", fps=25, convertfps=true) # подстройте fps при необходимости

Как мне загрузить Windows Media Video файлы в AviSynth?

WMV/ASF (Windows Media Video / Advanced Systems Format; обычно содержит WMV/WMA): этот формат не полностью поддерживается ffdshow, так что вы должны будете установить wmv кодеки. Возьмите WMF SDK v9 для W2K или позже для XP/Vista который содержит кодеки (и DMO упаковщики (wrappers) необходимые для использования DMO фильтров в DirectShow). Вы можете также получить эти кодеки с Windows Media Player 9 Series или позже, Windows Media Format runtime (WMFDist.exe), Codec Installation Package (WM9Codecs.exe) с сайта Microsoft или другого места. (Заметьте, что собственный кодек Microsoft VC1 не поддерживается в W2K так как вам необходим WMF SDK v11.) Создайте скрипт:

DirectShowSource("d:\clip.wmv", fps=25, convertfps=true) # подстройте fps при необходимости

Как мне загрузить MP4/MKV/M2TS/EVO в AviSynth?

Если медиа файл сожержит MPEG-4 ASP видео, то существуют две возможности открытия его в AviSynth:

1) Используя плагин FFmpegSource. Все включенные dlls кроме ffmpegsource.dll должны быть скопированы в вашу системную папку. Некоторые примеры:

# загрузка видео из MKV и возврат файла временных кодов:
FFmpegSource("D:\file.mkv", vtrack = -1, atrack = -2, timecodes="timecodes_file.txt")

# загрузка видео и аудио из MP4 и возврат файла временных кодов:
FFmpegSource("D:\file_aac.mp4", vtrack = -1, atrack = -1, timecodes="timecodes_file.txt")

Важно сгенерировать файл временных кодов, для проверки имеет ли видео постоянную частоту кадров. В этом случае вы не должны использовать файла временных кодов и вы можете обрабатывать виде любым способом по вашему желанию. Однако, многие не-AVI файлы содержат видео с переменной частотой кадров (AVI файлы всегда имеют постоянную), и в этом случая вам надо удостовериться в двух вещах:

  1. Не меняйте частоту и число кадров в AviSynth. Если вы не выполните этого (и вы не изменили файл временных кодов вручную), то ваше видео и аудио будут несинхронны.
  2. Используйте временные коды снова, когд вы мультиплексируете кодированное видео и аудио. Если вы не выполните этого, то ваше видео и аудио будут несинхронны.

Основная причина этого в том, что FFmpegSource открывает видео как есть. Она не добавляет или удаляет кадры для превращения его в видео постоянной скорости для вынуждения синхронности.

2) Получите ffdshow и откройте MP4/MKV файл с DirectShowSource, вот пример

DirectShowSource("D:\file.mkv", convertfps=true) # convertfps=true вынуждает синхронность если видео - VFR

Если ваш медиа файл содержит MPEG-4 AVC видео, то есть две возможности открытия его в AviSynth:

1) Используя плагин FFmpegSource. Смотри выше о б его использовании. В настоящий момент, поддерживаемыми контейнерами являются: AVI, MKV and MP4.

2) Возьмите DGAVCDec. В настоящее время вам сначала необходимо выделить бесформатный (raw) поток (*.264) из контейнера (используя MKVExtract, MPlayer, TSRemux или другую программу). Откройте бесформатный (raw) файл потока в DGAVCIndex, чтобы создать индексный файл (скажем track1.dga). Откоройте индексный файл в AviSynth:

# raw video demuxed from M2TS (Blu-ray BDAV MPEG-2 transport streams)
LoadPlugin("C:\Program Files\AviSynth\plugins\DGAVCDecode.dll")
AVCSource("D:\track1.dga")

Как мне загрузить аудио файлы WAVE PCM в AviSynth?

Используйте WavSource для открытия WAVE PCM файлов (предполагая, что они меньше 4 Гб):

WavSource("D:\file.wav")

Используя плагин RaWav дляоткрытия WAVE PCM файлов, которые больше чем 4GB (Sonic Foundry Video Editor Wave64 Files or W64):

RaWavSource("D:\file.w64", SampleRate=96000, SampleBits=24, Channels=6)

# или если присутствует заголовок W64
RaWavSource("D:\file.w64", SampleRate=6) # предполагает присутствие заголовка W64 и читает необходимую информацию

Как мне загрузить аудио MP1/MP2/MP3/MPA/AC3/DTS/LPCM в AviSynth?

Используйте NicAudio для загрузки вашего MP1/MP2/MP3/MPA/AC3/DTS/LPCM в AviSynth:

Некоторые примеры:

LoadPlugin("C:\Program Files\AviSynth25\plugins\NicAudio.dll")

# AC3 audio:
V = BlankClip(height=576, width=720, fps=25)
A = NicAC3Source("D:\audio.AC3")
# A = NicAC3Source("D:\audio.AC3", downmix=2) # downmix to stereo
AudioDub(V, A)
# LPCM audio (48 kHz, 16 bit and stereo):
V = BlankClip(height=576, width=720, fps=25)
A = NicLPCMSource("D:\audio.lpcm", 48000, 16, 2)
AudioDub(V, A)

Как мне загрузить файлы aac/flac/ogg в AviSynth?

Используйте ffdshow (установите AAC как libfaad или realaac), и используйте

DirectShowSource("d:\audio.aac")

Для WAVE_FORMAT_EXTENSIBLE, ogg, flac, wma, и других форматов, может быть использовано BassAudio и соответствующие библиотеки и дополнения. Заметьте, что BassAudioSource может декодировать стерео aac/mp4, но не может декодировать многоканальный aac.

Некоторые примеры:

bassAudioSource("C:\ab\Dido\001 Here With Me.m4a")
bassAudioSource("C:\ab\Dido\001 Here With Me.aac")

Как мне загрузить изображения в AviSynth?

1) Используйте ImageReader или ImageSource чтобы загрузить ваше изображение в AviSynth (может загузить наиболее популярные форматы, исключая GIF и анимированные форматы). Смотри внутренюю документаци для дальнейшей информации.

2) Используйте плагин Immaavs для GIF, анимированных форматов и других типов изображений.

# одиночное изобрвжение:
immareadpic("x:\path\pic.bmp")
 
# анимация:
immareadanim("x:\path\anim.gif")

# последовательность изображений
immareadseq("x:\path\seq%3.3d.png", start=5, stop=89, fps=25, textmode=2, posx=50, posy=50)

| Содержание FAQ | Общая информация | Загрузка клипов | Открытие скриптов | Общие сообщения об ошибках | Обработка различного контента | Работа с YV12 | Обработка с плагинами от Virtualdub |

$English Date: 2008/07/06 19:23:36 $
Русский перевод 19.05.2005-06.07.2008 Fizick http://bag.hotmail.ru