# 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 (ныне плагин).

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

- Выделите (demux) аудио поток и загрузите потоки отдельно в AviSynth.
- Попробуйте загрузить клип в AviSynth целиком. Это может сработать или может не сработать. Для AVI, удостоверьтесь, что вы имеете установленный хороший AVI расщепитель [Gabest AVI splitter]. (Да, Windows поставляется с собственным AVI расщепителем, который будет работать в большинстве случаев.)

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

- Если возможно загрузить ваш клип в AviSynth, используя либо AviSource либо специальный плагин, то делайте так, так как это более надежно чем две альтернативы, которые приведены ниже.
- Если указанное выше не сработало, загрузите клип используя DirectShowSource плагин.
- Если указанное выше не сработало, преобразуйте ваш клип в другой формат (в такой, какой поддерживается AviSynth).

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

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

- Через DirectShowSource поддерживаются многие видео и аудио форматы (посмотрите например ffdshow).

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

- Он менее надежный, чем AviSource и плагины ввода специфических видео и аудио.
- Проблемы поиска (прокрутки).
- Может быть проблемой получить требуемый DirectShow фильтр выполняющим декодирование. Во многих случаях вы имеете несколько декодеров, которые могут декодировать тот же специфический формат. Фильтр, который будет использован, это тот, что имеет наивысший приоритет (merit). Может оказаться проблемным заставить выполнять декодирование конкретным декодером. Документ "Импортирование медиа в AviSynth" содержит больше информации на эту тему.

### Имеет ли 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`