Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AviSynth, AviSynth+ и фильтры для него

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

Открыть новую тему     Написать ответ в эту тему

Esc



Сетевой демон
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

AviSynth

Мощное средство для обработки видео. Позволяет делать с ним практически всё что угодно, кроме собственно создания. Работает по методике фрейм-сервера, т.е. не имеет собственного графического интерфейса, а лишь обрабатывает видео и передаёт его вызывающей программе.
Домашняя страница: на английском или на русском
Последняя стабильная версия: 2.6.0 от 31.05.2015.
Последняя альфа-версия: 2.6.1 alpha от 17.05.2016.
 
AviSynth+

AviSynth+ - это форк AviSynth с новыми функциями и оптимизациями. Добавлена поддержка высокой глубины цвета и многопоточности. AviSynth+ полностью совместим с плагинами и скриптами, написанными для AviSynth.
Домашняя страница: на английском
Текущая версия: 3.7.2 от 18.03.2022.
 
Фильтры:
  • Встроенные фильтры
  • Внешние фильтры
     
    Утилиты:
  • AvsPmod - редактор скриптов AviSynth. Текущая версия 2.5.1 от 25.06.2013.
  • AvsPmod GPo - AvsPmod с дополнительными функциями. Текущая версия 2.7.7.3.
     
    Статьи по AviSynth на русском:
  • Основы использования утилиты AviSynth при обработке видео (ixbt.com) (от 12.05.2008)
  • Знакомство с AviSynth (habr.com) (от 21.01.2009)
     


    Q: В Windows 7 не работает DirectShowSource?
    A: Preferred Filter Tweaker for Windows 7

  • Всего записей: 2194 | Зарегистр. 24-01-2002 | Отправлено: 20:23 23-09-2004 | Исправлено: V0lt, 18:09 02-05-2024
    neorumtu

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    avisynth это фрейм-сервер обработки видео. Для него надо качать плагины самому (в том числе плагины импорта вроде ffms2)
    http://avisynth.nl/index.php/AviSynth%2B_x64_plugins
    http://avisynth.nl/index.php/External_filters
    положить в папку плагинов
    самому составлять нужный скрипт фильтрации и отправлять на кодирование, например в консольный x264.exe или ffmpeg.exe и/или на предпросмотр в VirtualDub / MPC-BE.
    AvsPmod это просто удобный редактор avs скриптов, предполагающий, что нужные плагины установлены. В нем наверняка есть свой превьювер (что убирает потребность в VirtualDub). Он может отправлять скрипт на энкод на внешний кодер.
    Вообще, кодировать можно и в VirtualDub, но только VFW (Video For Windows) кодеками, типа XviD, x264-vfw. Но это не очень хороший подход.
     
    В принципе, AvsPmod то и не нужен, его может заменить блокнот. А VirtualDub заменяется консольной прогой x264.exe или ffmpeg.exe (у них свой синтаксис кодирования). Для ffmpeg например:
    ffmpeg -i input.avs -vcodec libx264 -preset slow -crf 18 output.mkv
     
    Добавлено:
    Лучше поставьте эту прогу https://www.videohelp.com/software/XviD4PSP
    Обязательно версию 5.10.346.
    Там тоже avisynth и есть GUI. Куча плагинов встроены и есть пресеты к ним.
    Правда, прога 2015 года.

    Всего записей: 741 | Зарегистр. 30-08-2023 | Отправлено: 19:52 02-05-2024 | Исправлено: neorumtu, 19:57 02-05-2024
    andrassk25

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt хороший пример!  
    один вопрос из множества, чтобы не доставать с мелочами, звук, он в этой процедуре должен участвовать или потом отдельно добавляется?  
    как я понял в AvsPmod звук не проигрывается или я ошибаюсь? в результирующем файле его тоже не оказалось.
    или его просто отдельной командой в скрипте надо подцепить?
     
    neorumtu спасибо, я как раз из обсуждения XviD4PSP вычитывал информацию по настройке синта+ и мне ее не хватило полностью разобраться..
     
    большое спасибо, что немного приоткрыли тему обработки, там оказывается тоже много нюансов, но мне эти нюансы ранее не попадались к прочтению. много вопросов появляется, когда начинаешь реально что-то пытаться, не теоретически

    Всего записей: 11 | Зарегистр. 28-03-2024 | Отправлено: 22:42 02-05-2024 | Исправлено: andrassk25, 22:52 02-05-2024
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    andrassk25

    Цитата:
    как я понял в AvsPmod звук не проигрывается или я ошибаюсь?

    Неправильно поняли. Достаточно было запустить скрипт с одной командой Colorbars(), про которую Я написал на прошлой странице.
     
    Добавлено:

    Цитата:
    или его просто отдельной командой в скрипте надо подцепить?

    Там же на прошлой странице Я давал ссылку на документацию FFmpegSource (FFMS2).
    Одно из решений:

    Код:
    A = FFAudioSource("D:\путь\videofile.mkv")
    V = FFVideoSource("D:\путь\videofile.mkv")
    AudioDub(V, A)

    Читайте внимательнее.

    Всего записей: 10795 | Зарегистр. 05-02-2003 | Отправлено: 06:32 03-05-2024
    andrassk25

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    V0lt
    добавление команды Colorbars() вывело мне на продолжительность ролика экран с цветовыми шкалами и звуковым тоном, видеоряд и звукоряд не записались.. в общем проехали
     
    а вот Ваше "Одно из решений" получилось отлично, большое спасибо! получился ролик со звуком. теперь у меня есть начальная ступень для экспериментов
     
    neorumtu
    я скачал версию 5.10.346 по Вашей рекомендации, планирую ее поставить параллельно и посравнивать, что будет мне понятнее и удобнее, спасибо!

    Всего записей: 11 | Зарегистр. 28-03-2024 | Отправлено: 10:18 03-05-2024
    Enth

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть здесь пользователи SoxFilter 2.2 for AviSynth от pinterf?  
     
    https://forum.doom9.org/showthread.php?s=dd9d92d8b5a80fb5bfb18ce1056d688c&t=185189
    https://forum.doom9.org/showpost.php?p=1997910&postcount=25150
     
    Плагин используется для нормализации многоканального звука.
     
    На данный момент назрели следующие вопросы:
     
    1. Как ускорить запуск фильмов, возможно стоит попробоват декодировать видео стандартными средствами и не использовать LWLibavVideoSource и соответственно av_sync=true?
     
      1.1 Попутно вопрос о производительности - я тестировал работу нормализации SoxFilter, на старом железе, как с этим обстоят дела у современных 4ех - 8-ми ядерников на примере, скажем, ~8гб файлов? Есть ли у AviSynth GPU ускорение? Другие варианты повысить производительность?
     
    2. Есть ли возможность вручную микшировать звук в LWLibavAudioSource (с помощью avs скрипта, к примеру) - перенаправить LFE во фронтальные каналы, сделать определенный канал тише / громче и тд? Или даже вручную написать свою матрицу микширования!?
     
     
     
    Добавлено:
    Это правильный скрипт для даунмикса 5.1 в 2.0 DolbyPrologic 2 с микшированием LFE и контролем его усиления?
     
    function Dmix5Dpl2(clip a, gain_lfe=0.5) {
      # 5 Channels L,R,C,SL,SR,LFE -> dpl II with adjustable LFE gain
      flr = GetChannel(a, 1, 2)  # Front Left & Right channels
      fcc = GetChannel(a, 3, 3)  # Center channel
      lfe = GetChannel(a, 6)     # LFE channel
     
      # Mix Front Left, Right, Center, and LFE with adjustable LFE gain
      lrc = MixAudio(flr, fcc, lfe * gain_lfe, 0.3254, 0.2301)
     
      bl = GetChannel(a, 4)  # Back Left channel
      br = GetChannel(a, 5)  # Back Right channel
     
      # Mix Back Left and Right channels
      sl = MixAudio(bl, br, 0.2818, 0.1627)
      sr = MixAudio(bl, br, -0.1627, -0.2818)
     
      blr = MergeChannels(sl, sr)  # Combine Back Left & Right into stereo
     
      # Return the final stereo mix
      return MixAudio(lrc, blr, 1.0, 1.0)
    }
     
    Добавлено:
    Или все же лучше так:
     
     
    function Dmix5Dpl2FrontLFE(clip a, gain_lfe=0.5) {
      # 5 Channels L,R,C,SL,SR,LFE -> Dolby ProLogic II with LFE
      flr = GetChannel(a, 1, 2)  # Front Left & Right channels
      fcc = GetChannel(a, 3, 3)  # Center channel
      lfe = GetChannel(a, 6)     # LFE channel
     
      # Mix Front Left, Right, LFE and Center with DPL II coefficients
      flr_lfe = MixAudio(flr, lfe * gain_lfe, 0.3254, 0.5)
      flr_lfe_fcc = MixAudio(flr_lfe, fcc, 1.0, 0.2301)
     
      # Back Left and Right channels with DPL II coefficients
      bl = GetChannel(a, 4)  # Back Left channel
      br = GetChannel(a, 5)  # Back Right channel
      sl = MixAudio(bl, br, 0.2818, 0.1627)
      sr = MixAudio(bl, br, -0.1627, -0.2818)
     
      # Combine Back Left & Right into stereo
      blr = MergeChannels(sl, sr)
     
      # Mix Front Left/Right + LFE + Center, and Back Left/Right
      final_mix = MixAudio(flr_lfe_fcc, blr, 1.0, 1.0)
     
      # Return the final stereo mix
      return final_mix
    }

    Всего записей: 36 | Зарегистр. 01-08-2023 | Отправлено: 00:48 16-06-2024 | Исправлено: Enth, 00:54 16-06-2024
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Enth

    Цитата:
    1. Как ускорить запуск фильмов, возможно стоит попробоват декодировать видео стандартными средствами и не использовать LWLibavVideoSource и соответственно av_sync=true?

    1. Попробуйте использовать FFmpegSource (FFMS2). Он посовременнее того, что вы нашли.
    Рекомендуется использовать так:

    Код:
    A = FFAudioSource("D:\путь\videofile.mkv")
    V = FFVideoSource("D:\путь\videofile.mkv")
    AudioDub(V, A)

    Первый запуск будет небыстрым (будет создан индексный файл), при повторно должно открываться быстро.
     
    2. Так же можете попробовать встроенный DirectShowSource. Открывается быстро, но для редактирования с точностью до кадра не подходит. В системе должны быть установлены необходимые фильтры DirectShow, например LAV Filters.
    Пользоваться просто.

    Код:
    DirectShowSource("D:\путь\videofile.mkv")

    Всего записей: 10795 | Зарегистр. 05-02-2003 | Отправлено: 08:15 16-06-2024
    Dimitr1s



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Enth

    Цитата:
    Это правильный скрипт для даунмикса 5.1 в 2.0 DolbyPrologic 2 с микшированием LFE и контролем его усиления?

    Зачем вам DPL? У вас приёмник есть? Смысл DPL: кодируется поток в специальное стерео с инвертированными тылами, потом приёмник пытается восстановить из стерео многоканал.

    Цитата:
    правильный скрипт для даунмикса 5.1 в 2.0 с микшированием LFE

    Будет так:
    ненормированная матрица:

    Код:
    function Dmix6NoNormLfe(clip a) {
    flr = GetChannel(a, 1, 2)
    fcc = GetChannel(a, 3)
    lfe = GetChannel(a, 4)
    lfc = MixAudio(fcc, lfe, 0.7071, 0.7071)
    mix = MergeChannels(lfc, lfc)
    lrc = MixAudio(flr, mix, 1.0, 1.0)
    blr = GetChannel(a, 5, 6)
    return MixAudio(lrc, blr, 1.0, 1.0)
    }

    нормированная:

    Код:
    function Dmix6NormLfe(clip a) {
    flr = GetChannel(a, 1, 2)
    fcc = GetChannel(a, 3)
    lfe = GetChannel(a, 4)
    lfc = MixAudio(fcc, lfe, 0.2071, 0.2071)
    mix = MergeChannels(lfc, lfc)
    lrc = MixAudio(flr, mix, 0.2929, 1.0)
    blr = GetChannel(a, 5, 6)
    return MixAudio(lrc, blr, 1.0, 0.2929)
    }

     
    V0lt

    Цитата:
    Попробуйте использовать FFmpegSource (FFMS2). Он посовременнее того, что вы нашли.

    Ну, справедливости ради, lsmash тоже развивается активно. Оба варианта не плохие.

    Всего записей: 1939 | Зарегистр. 02-07-2006 | Отправлено: 12:09 16-06-2024
    Enth

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Будет так:

    Фронты не добавили в микс.
     
    Я где то читал, что сначала надо миксовать фронт с сабом, потом к этому миксовать центр.  
     
    Как должен правильно выглядеть полный скрипт запуска, вместе с частью микширования?
     

    Цитата:
    1. Попробуйте использовать FFmpegSource (FFMS2). Он посовременнее того, что вы нашли.

     
    Сегодня попробую

    Всего записей: 36 | Зарегистр. 01-08-2023 | Отправлено: 15:07 16-06-2024
    Dimitr1s



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Enth

    Цитата:
    Фронты не добавили в микс.

    А это что?:

    Код:
    flr = GetChannel(a, 1, 2)

     

    Цитата:
    Я где то читал...

    Ну там вам и помогут сделать правильно. Мы тут дремучие все.

    Всего записей: 1939 | Зарегистр. 02-07-2006 | Отправлено: 15:17 16-06-2024
    Enth

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    А это что?:

    Да я не внимателен - lrc = MixAudio(flr, mix, 0.2929, 1.0).  
     
    Но почему LFE и центр объеденяется сам с собой? mix = MergeChannels(lfc, lfc)  
    Что бы получить удвоенную громкость для стерео? Или что бы просто получить стерео?
    Или как, по вашему правильно микшировать LFE в стерео? Сначала фронт + центр, потом к ним саб? Или как в вашем примере - сначала центр + LFE и потом к ним фронт?
     
    Вот еще пример (Фронт + центр, потом + LFE):
     
    function Dmix6StereoLfe2(clip a) {
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lrc = MixAudio(flr, fcc, 0.2929, 0.2071)
      lfe = GetChannel(a, 4, 4)
      lrc = MixAudio(lrc, lfe, 1.0, 0.2071)
      blr = GetChannel(a, 5, 6)
      return MixAudio(lrc, blr, 1.0, 0.2929)
    }
     
    Добавлено:
     
     
    И полный скрипт запуска видео должен выглядеть вот так!?:
     
    file = "Путь_до\test.mkv"
     
    LoadPlugin("Путь_до\Avisynth\plugins64\LSMASHSource.dll")
    video = LWLibavVideoSource(file)
    audio = LWLibavAudioSource(file, stream_index=-1, av_sync=true)
    AudioDub(video, audio)
     
    function Dmix6NormLfe(clip a) {
    flr = GetChannel(a, 1, 2)
    fcc = GetChannel(a, 3)
    lfe = GetChannel(a, 4)
    lfc = MixAudio(fcc, lfe, 0.2071, 0.2071)
    mix = MergeChannels(lfc, lfc)
    lrc = MixAudio(flr, mix, 0.2929, 1.0)
    blr = GetChannel(a, 5, 6)
    return AudioDub(a, MixAudio(lrc, blr, 1.0, 0.2929))
    }
     
    LoadPlugin("Путь_до\Avisynth\plugins64\SoxFilter.dll")
    # film light fast  
    SoxFilter("compand 0.01,1.00 -90,-90,-70,-64,-53,-47,-41,-41,-21,-21,-10,-16,0,-15 0 0 0.054")

    Всего записей: 36 | Зарегистр. 01-08-2023 | Отправлено: 04:41 17-06-2024 | Исправлено: Enth, 04:44 17-06-2024
    Dimitr1s



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Enth

    Цитата:
    Но почему LFE и центр объеденяется сам с собой? mix = MergeChannels(lfc, lfc)

    Типа "тихо сам с собою я веду беседу"? Ни кто, в этой строке, сам с собой ни чем не занимается, а происходит перенос в новый клип.
     

    Цитата:
    Или как, по вашему правильно микшировать LFE в стерео? Сначала фронт + центр, потом к ним саб? Или как в вашем примере - сначала центр + LFE и потом к ним фронт?

    Вы сами понимаете хоть чего пишите? Я нет.
     

    Цитата:
    Вот еще пример (Фронт + центр, потом + LFE)

    Абсолютно одинаковые на результат функции, кому как нравится тот так и пишет.
    Как и здесь, где вы спрашиваете как лучше, две не рабочие но одинаковые функции.
     

    Цитата:
    И полный скрипт запуска видео должен выглядеть вот так!?:

    Нет так не должен выглядеть. Функцию можно добавить так:

    Код:
    Dmix6NormLfe
    function Dmix6NormLfe(clip a) {
    flr = GetChannel(a, 1, 2)
    fcc = GetChannel(a, 3)
    lfe = GetChannel(a, 4)
    lfc = MixAudio(fcc, lfe, 0.2071, 0.2071)
    mix = MergeChannels(lfc, lfc)
    lrc = MixAudio(flr, mix, 0.2929, 1.0)
    blr = GetChannel(a, 5, 6)
    return MixAudio(lrc, blr, 1.0, 0.2929)
    }

    хоть так:

    Код:
    function Dmix6NormLfe(clip a) {
    flr = GetChannel(a, 1, 2)
    fcc = GetChannel(a, 3)
    lfe = GetChannel(a, 4)
    lfc = MixAudio(fcc, lfe, 0.2071, 0.2071)
    mix = MergeChannels(lfc, lfc)
    lrc = MixAudio(flr, mix, 0.2929, 1.0)
    blr = GetChannel(a, 5, 6)
    return MixAudio(lrc, blr, 1.0, 0.2929)
    }
    Dmix6NormLfe

    Хоть ешё как.
    В вашем примере, даже если вставить функцию правильно, получается чушь какая-то:
    происходит даунмикс по нормированной матрице, а потом компандирование.
    Сто раз надо продумать очерёдность и нужность преобразований.

    Всего записей: 1939 | Зарегистр. 02-07-2006 | Отправлено: 12:35 17-06-2024
    Enth

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Ни кто, в этой строке, сам с собой ни чем не занимается, а происходит перенос в новый клип.

    Ну, что бы получить стерео центр + LFE.
     

    Цитата:
     
    Или как, по вашему правильно микшировать LFE в стерео? Сначала фронт + центр, потом к ним саб? Или как в вашем примере - сначала центр + LFE и потом к ним фронт?
     
    Вы сами понимаете хоть чего пишите? Я нет.

     
    Это тот случай, когда перемена слагаемых дает разный результат. И дело в том, что вы не просто цифры складываете, а звуковой сигнал. По этому каждый из этих вариантов микширования, на первый взгляд одинаковых, дадут разный результат.
     
    (flr+fcc)+lfe не равно (flr+lfe)+fcc и соответственно не равно (fcc+lfe)+flr
     
    В каждом из этих варинтов будет получен разный звук. Вот об этом я писал. Скобки, естественно, для того, что бы подчеркнуть, что с чем микшируется в первую очередь в конкретном примере.
     
     
    Готовые матрицы микширования для AviSynth:

    Код:
     
    function Dmix3Stereo(clip a) { # 3 Channels L,R,C or L,R,S
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      return MixAudio(flr, fcc, 0.5858, 0.4142)
    }
     
    function Dmix3Dpl(clip a) {    # 3 Channels only L,R,S
      flr = GetChannel(a, 1, 2)
      sl  = GetChannel(a, 3)
      sr  = Amplify(sl, -1.0)
      blr = MergeChannels(sl, sr)
      return MixAudio(flr, blr, 0.5858, 0.4142)
    }
     
    function Dmix4lStereo(clip a) { # 4 Channels L,R,C + LFE
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lfe = GetChannel(a, 4, 4)
      clf = MixAudio(fcc, lfe, 0.2929, 0.2929)
      return MixAudio(flr, clf, 0.4142, 1.0)
    }
     
    function Dmix4qStereo(clip a) { #4 Channels Quadro L,R,SL,SR
      flr = GetChannel(a, 1, 2)
      blr = GetChannel(a, 3, 4)
      return MixAudio(flr, blr, 0.5, 0.5)
    }
     
    function Dmix4qDpl(clip a) {   # 4 Channels Quadro L,R,SL,SR
      flr = GetChannel(a, 1, 2)
      bl  = GetChannel(a, 3)
      br  = GetChannel(a, 4)
      sl  = MixAudio(bl, br, 0.2929, 0.2929)
      sr  = MixAudio(bl, br, -0.2929, -0.2929)
      blr = MergeChannels(sl, sr)
      return MixAudio(flr, blr, 0.4142, 1.0)
    }
     
    function Dmix4qDpl2(clip a) {  # 4 Channels Quadro L,R,SL,SR
      flr = GetChannel(a, 1, 2)
      bl  = GetChannel(a, 3)
      br  = GetChannel(a, 4)
      sl  = MixAudio(bl, br, 0.3714, 0.2144)
      sr  = MixAudio(bl, br, -0.2144, -0.3714)
      blr = MergeChannels(sl, sr)
      return MixAudio(flr, blr, 0.4142, 1.0)
    }
     
    function Dmix4sStereo(clip a) {# 4 Channels L,R,C,S
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lrc = MixAudio(flr, fcc, 0.4142, 0.2929)
      blr = GetChannel(a, 4, 4)
      return MixAudio(lrc, blr, 1.0, 0.2929)
    }
     
    function Dmix4sDpl(clip a) {   # 4 Channels L,R,C,S
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lrc = MixAudio(flr, fcc, 0.4142, 0.2929)
      sl  = GetChannel(a, 4)
      sr  = Amplify(sl, -1.0)
      blr = MergeChannels(sl, sr)
      return MixAudio(lrc, blr, 1.0, 0.2929)
    }
     
    function Dmix5Stereo(clip a) { # 5 Channels L,R,C,SL,SR -> Stereo
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lrc = MixAudio(flr, fcc, 0.3694, 0.2612)
      blr = GetChannel(a, 4, 5)
      return MixAudio(lrc, blr, 1.0, 0.3694)
    }
     
    function Dmix5Dpl(clip a) {    # 5 Channels L,R,C,SL,SR -> dpl
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lrc = MixAudio(flr, fcc, 0.3205, 0.2265)
      bl  = GetChannel(a, 4)
      br  = GetChannel(a, 5)
      sl  = MixAudio(bl, br, 0.2265, 0.2265)
      sr  = MixAudio(bl, br, -0.2265, -0.2265)
      blr = MergeChannels(sl, sr)
      return MixAudio(lrc, blr, 1.0, 1.0)
    }
     
    function Dmix5Dpl2(clip a) {  # 5 Channels L,R,C,SL,SR -> dpl II
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lrc = MixAudio(flr, fcc, 0.3254, 0.2301)
      bl  = GetChannel(a, 4)
      br  = GetChannel(a, 5)
      sl  = MixAudio(bl, br, 0.2818, 0.1627)
      sr  = MixAudio(bl, br, -0.1627, -0.2818)
      blr = MergeChannels(sl, sr)
      return MixAudio(lrc, blr, 1.0, 1.0)
    }
     
    function Dmix6Stereo(clip a) {
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lrc = MixAudio(flr, fcc, 0.3694, 0.2612)
      blr = GetChannel(a, 5, 6)
      return MixAudio(lrc, blr, 1.0, 0.3694)
    }
     
    function Dmix6Dpl(clip a) {
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lrc = MixAudio(flr, fcc, 0.3205, 0.2265)
      bl  = GetChannel(a, 5)
      br  = GetChannel(a, 6)
      sl  = MixAudio(bl, br, 0.2265, 0.2265)
      sr  = MixAudio(bl, br, -0.2265, -0.2265)
      blr = MergeChannels(sl, sr)
      return MixAudio(lrc, blr, 1.0, 1.0)
    }
     
    function Dmix6Dpl2(clip a) {
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lrc = MixAudio(flr, fcc, 0.3254, 0.2301)
      bl  = GetChannel(a, 5)
      br  = GetChannel(a, 6)
      sl  = MixAudio(bl, br, 0.2818, 0.1627)
      sr  = MixAudio(bl, br, -0.1627, -0.2818)
      blr = MergeChannels(sl, sr)
      return MixAudio(lrc, blr, 1.0, 1.0)
    }
     
    function Dmix6StereoLfe(clip a) {
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3)
      lfe = GetChannel(a, 4)
      lfc = MixAudio(fcc, lfe, 0.2071, 0.2071)
      mix = MergeChannels(lfc, lfc)
      lrc = MixAudio(flr, mix, 0.2929, 1.0)
      blr = GetChannel(a, 5, 6)
      return MixAudio(lrc, blr, 1.0, 0.2929)
    }
     
    function Dmix6StereoLfe2(clip a) {
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lrc = MixAudio(flr, fcc, 0.2929, 0.2071)
      lfe = GetChannel(a, 4, 4)
      lrc = MixAudio(lrc, lfe, 1.0, 0.2071)
      blr = GetChannel(a, 5, 6)
      return MixAudio(lrc, blr, 1.0, 0.2929)
    }
     
    function Dmix6DplLfe(clip a) {
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lrc = MixAudio(flr, fcc, 0.2613, 0.1847)
      lfe = GetChannel(a, 4, 4)
      lrc = MixAudio(lrc, lfe, 1.0, 0.1847)
      bl  = GetChannel(a, 5)
      br  = GetChannel(a, 6)
      sl  = MixAudio(bl, br, 0.1847, 0.1847)
      sr  = MixAudio(bl, br, -0.1847, -0.1847)
      blr = MergeChannels(sl, sr)
      return MixAudio(lrc, blr, 1.0, 1.0)
    }
     
    function Dmix6Dpl2Lfe(clip a) {
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lrc = MixAudio(flr, fcc, 0.2646, 0.1870)
      lfe = GetChannel(a, 4, 4)
      lrc = MixAudio(lrc, lfe, 1.0, 0.1870)
      bl  = GetChannel(a, 5)
      br  = GetChannel(a, 6)
      sl  = MixAudio(bl, br, 0.2291, 0.1323)
      sr  = MixAudio(bl, br, -0.1323, -0.2291)
      blr = MergeChannels(sl, sr)
      return MixAudio(lrc, blr, 1.0, 1.0)
    }
     

     
     
    Compands для SOX, написанные по мотивам Dolby Digital:

    Код:
     
     
       
     
    # film light fast  
    SoxFilter("compand 0.01,1.00 -90,-90,-70,-64,-53,-47,-41,-41,-21,-21,-10,-16,0,-15 0 0 0.054")
     
    # film light slow
    SoxFilter("compand 0.10,3.00 -90,-90,-70,-64,-53,-47,-41,-41,-21,-21,-10,-16,0,-15 0 0 0.054")
     
    # music light fast
    SoxFilter("compand 0.01,1.00 -90,-90,-70,-58,-65,-53,-41,-41,-21,-21,0,-11 0 0 0.054")
     
    # music light slow
    SoxFilter("compand 0.10,3.00 -90,-90,-70,-58,-65,-53,-41,-41,-21,-21,0,-11 0 0 0.054")
     
    #film standard fast
    SoxFilter("compand 0.01,1.00 -90,-90,-70,-64,-43,-37,-31,-31,-21,-21,0,-20 0 0 0.054")
     
    #film standard slow
    SoxFilter("compand 0.10,3.00 -90,-90,-70,-64,-43,-37,-31,-31,-21,-21,0,-20 0 0 0.054")
     
    # music standard fast
    SoxFilter("compand 0.01,1.00 -90,-90,-70,-58,-55,-43,-31,-31,-16,-21,0,-20 0 0 0.054")
     
    # music standard slow
    SoxFilter("compand 0.10,10.0 -90,-90,-70,-58,-55,-43,-31,-31,-16,-21,0,-20 0 0 0.054")
     
    # speech fast
    SoxFilter("compand 0.01,0.20 -90,-90,-70,-55,-50,-35,-31,-31,-16,-21,0,-20 0 0 0.054")
     
    # speech slow
    SoxFilter("compand 0.10,1.00 -90,-90,-70,-55,-50,-35,-31,-31,-16,-21,0,-20 0 0 0.054")
     

     
    Пример готового скрипта .avs:

    Код:
     
    file = "Путь_до\test.mkv"
     
    LoadPlugin("Путь_до\Avisynth\plugins64\LSMASHSource.dll")
    video = LWLibavVideoSource(file)
    audio = LWLibavAudioSource(file, stream_index=-1, av_sync=true)
    AudioDub(video, audio)
     
    LoadPlugin("Путь_до\Avisynth\plugins64\SoxFilter.dll")
    # music light fast
    SoxFilter("compand 0.01,1.00 -90,-90,-70,-58,-65,-53,-41,-41,-21,-21,0,-11 0 0 0.054")
     
    Dmix6StereoLfe2
    function Dmix6StereoLfe2(clip a) {
      flr = GetChannel(a, 1, 2)
      fcc = GetChannel(a, 3, 3)
      lrc = MixAudio(flr, fcc, 0.2929, 0.2071)
      lfe = GetChannel(a, 4, 4)
      lrc = MixAudio(lrc, lfe, 1.0, 0.2071)
      blr = GetChannel(a, 5, 6)
      return MixAudio(lrc, blr, 1.0, 0.2929)
    }
     


    Всего записей: 36 | Зарегистр. 01-08-2023 | Отправлено: 00:18 18-06-2024 | Исправлено: Enth, 00:39 18-06-2024
    Dimitr1s



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Enth

    Цитата:
    Это тот случай, когда перемена слагаемых дает разный результат. И дело в том, что вы не просто цифры складываете, а звуковой сигнал. По этому каждый из этих вариантов микширования, на первый взгляд одинаковых, дадут разный результат.
     
    (flr+fcc)+lfe не равно (flr+lfe)+fcc и соответственно не равно (fcc+lfe)+flr
     
    В каждом из этих варинтов будет получен разный звук. Вот об этом я писал. Скобки, естественно, для того, что бы подчеркнуть, что с чем микшируется в первую очередь в конкретном примере.

    Плохо то, что вы всякую чушь, не соответствующую действительности, пишите в крайне утвердительной форме.
    Понимаете? Не в вопросительной, а в утвердительной.
    Даунмикс из шести каналов в стерео происходит: путем подмешивания в два канала целевого клипа, каждого из шести каналов исходного, с указанным коэффициентом звукового давления и положением во времени. Впитайте, каждого. И в каком порядке исходные каналы подмешаются на своё место в стерео - без разницы.
     

    Цитата:
    Готовые матрицы микширования для AviSynth:

    Этот хлам из начала 2000`ых, можно спрятать под тег more.
     

    Всего записей: 1939 | Зарегистр. 02-07-2006 | Отправлено: 10:22 18-06-2024
    Enth

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    1. Попробуйте использовать FFmpegSource (FFMS2). Он посовременнее того, что вы нашли.
    Рекомендуется использовать так:
     
    Код:
    A = FFAudioSource("D:\путь\videofile.mkv")
    V = FFVideoSource("D:\путь\videofile.mkv")
    AudioDub(V, A)
     

     
    Не хочет запускаться - плеер пишет Can't open "имя файла.mkv"
     
    Пробовал так:
     
    File = "имя файла.mkv"
    A = FFAudioSource(File)
    V = FFVideoSource(File)
    AudioDub(V, A)
     
    И так:
    A = FFAudioSource(имя файла.mkv)
    V = FFVideoSource(имя файла.mkv)
    AudioDub(V, A)
     
     
    ffms2.dll соответственно положил в папку AviSynth/plugins

    Всего записей: 36 | Зарегистр. 01-08-2023 | Отправлено: 15:55 18-06-2024 | Исправлено: Enth, 16:02 18-06-2024
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Enth

    Цитата:
    ffms2.dll соответственно положил в папку AviSynth/plugins

    Скачал ffms2-5.0-msvc.7z. Разблокировал скаченный архив. Распаковал файлы ffmsindex.exe и ffms2.dll в папку С:\Program Files (x86)\AviSynth+\plugins64+\ . Проверил - работает. Первый раз открывается долго, второй - быстро.

    Всего записей: 10795 | Зарегистр. 05-02-2003 | Отправлено: 18:21 18-06-2024
    Enth

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Скачал ffms2-5.0-msvc.7z. Разблокировал скаченный архив. Распаковал файлы ffmsindex.exe и ffms2.dll в папку С:\Program Files (x86)\AviSynth+\plugins64+\ . Проверил - работает. Первый раз открывается долго, второй - быстро.

     
    Закинул ffmsindex.exe - не помогло. Вроде должно работать без него. Только что обновил MSVC - тоже не помогло. Операционка Win7 x64.
     
    На doom9 нашел подобную проблему - решение не найдено:
     
    https://forum.doom9.org/showthread.php?t=175274
     

    Всего записей: 36 | Зарегистр. 01-08-2023 | Отправлено: 01:13 19-06-2024
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Enth

    Цитата:
    Не хочет запускаться - плеер пишет Can't open "имя файла.mkv"  

    Кириллица в пути и/или имени файла?

    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6092 | Зарегистр. 22-10-2005 | Отправлено: 08:51 19-06-2024
    bbcby

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    плеер пишет Can't open

    Это полное сообщение об ошибке? Больше ничего нету?
     
    Битность плеера / AviSynth / плагина - соответствуют?
     

    Цитата:
    Кириллица в пути и/или имени файла?

    Без разницы.
     
    Есть программы-энкодеры, которые работают через AviSynth, типа MeGUI и т.п. Посмотрите что они сделают.

    Всего записей: 623 | Зарегистр. 11-06-2003 | Отправлено: 11:06 19-06-2024 | Исправлено: bbcby, 11:10 19-06-2024
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Enth

    Цитата:
    Операционка Win7 x64.

    Тогда зачем вы закидываете 64-битный плагин (ffms2-5.0 только на 64 бита) в папку для 32-битных плагинов?
    Так же посоветую использовать более современный AviSynth+.

    Всего записей: 10795 | Зарегистр. 05-02-2003 | Отправлено: 18:14 19-06-2024 | Исправлено: V0lt, 20:49 19-06-2024
    Enth

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Кириллица в пути и/или имени файла?

    Есть. И пробелы есть. Сегодня исправлю и перепроверю
     

    Цитата:
    Это полное сообщение об ошибке? Больше ничего нету?

    FFAudioSource can't open имя файла.mkv - как то так
     
    Если в сценарии сначала запускать видео - соответственно ошибка изменится на FFVideoSource can't open имя файла.mkv
     

    Цитата:
    Битность плеера / AviSynth / плагина - соответствуют?

     
    Все 64 бита. Но как ниже заметил V0lt - AviSynth на 64бита установился по пути С:\Program Files (x86)\AviSynth+\
     

    Цитата:
    Тогда зачем вы закидываете 64-битный плагин (ffms2-5.0 только на 64 бита) в папку для 32-битных плагинов?
    Так же посоветую использовать более современный AviSynth+.

    Обе папки 64-бит. Plugins64 и Plugins64+ - с чего вы вызяли, что какая то из них 32бит? Из-за пути установки С:\Program Files (x86) ?  
     
    Я использовал последний доступный AviSynth+ 3.7.3 с GitHub
    https://github.com/AviSynth/AviSynthPlus/releases/tag/v3.7.3
    Инсталятор соответственно содержит обе версии 32 и 64.  
     
    Кроме того, LSMASH 64bit на этом AviSynth+ запускается без проблем
     

    Всего записей: 36 | Зарегистр. 01-08-2023 | Отправлено: 23:50 19-06-2024
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

    Компьютерный форум Ru.Board » Компьютеры » Программы » AviSynth, AviSynth+ и фильтры для него


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru