1 (изменено: Lord_D, 2018-11-25 09:24:59)

Тема: MPC Audio Renderer, LAV Filters и внешнее аудио

Если для декодирования используются LAV Filters (все встроенные фильтры отключены), в качестве аудио-рендерера выбран MPC Audio Renderer и установлена галка "Всегда использовать внешние аудио-файлы как основные", то при открытии видео с внешним аудио плеер не начинает воспроизведение. То есть, состояние плеера меняется на "Воспроизведение", но ничего не выводится. Если при этом перемотать видео, плеер зависнет.
Вывести плеер из этого состояния можно выбрав встроенное аудио. После этого воспроизведение начинается. Теперь можно выбрать внешнее аудио - всё будет нормально.

С аудио-рендерером DirectSound баг не воспроизводится. Там воспроизведение начнётся сразу с внешним аудио.

Обязательным условием является то, чтобы и сплиттер и оба декодера аудио (и внешнего, и встроенного) были LAV. Если хотя бы один декодер будет встроенным в MPC-BE, то бага не будет. Также обязательно, чтобы стояла галка "Всегда использовать внешние аудио-файлы как основные". Если первым будет запущен встроенный поток аудио, то бага также не будет.

Воспроизводится на связках форматов mkv+mka, mp4+aac, mkv+aac, mp4+mka.

Воспроизводится на всех версиях (замечен ещё на версиях 1.3.*). Тестировалось на MPC-BE 1.5.3 (build 4197) beta x64.
Что интересно, баг воспроизводится с Sanear Audio Renderer.
LAV Filters 0.73.1.
Windows 7 SP1 x64.

Видео процесса воспроизведения бага и тестовые наборы: https://www.mediafire.com/file/paidnvokj43n3sy/

2

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Проверил на матроске + mp3 - все отлично, аудио декодер - LAV Audio.

Тестовые наборы тоже проверил - все отлично. Правда я и использую только встроенные фильтры - ну кроме LAV Audio для данного момента.


P.S. А если такое только с LAV - вопросы к его автору. Мы не сможем в любом случае узнать причину, где-то не стартует в Source возможно.

I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

3

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Важно, чтобы все встроенные фильтры были отключены, включая сплиттер. С одним лишь декодером аудио от LAV ошибки не будет. Воспроизводится ли ошибка у вас в этом случае? Проверьте на mkv+mka. С mp3 ошибка может и не повторяться, она происходит не со всеми форматами.

Возможно что ошибка и в LAV, но хотелось бы хотя бы понять, что именно происходит. Если я напишу ему не зная ничего, он ответит, что ошибка в MPC-BE.

Плюс, то, что ошибка не повторяется с рендерером DirectSound, наводит на мысли, что дело не в LAV.

4

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Ну как это не в LAV, если именно с ними(фильтрами) не стартует. То что в связке это понятно. Завтра покопаюсь немного в отладчике, посмотрю - может что и пойму.

I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

5 (изменено: Lord_D, 2018-11-25 14:10:56)

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Благодарю.

Я зарегистрировал фильтры из архива MPC-BE standalone filters той же версии, что указана в первом сообщении, и попытался повторить ситуацию в GraphStudio. Вот что получилось:

Так работает:
https://imgur.com/H1IB0hH
https://imgur.com/iCr2hXP
https://imgur.com/vRyQjb4 (выбран первый поток)
https://imgur.com/64RePLW (у каждого собственный рендерер)

А так нет: https://imgur.com/0Ksh3ya (выбран второй поток)
То есть, проблема либо в LAV (но тогда почему работают отдельные потоки или когда выбран первый поток?), либо в MPC Audio Switcher.

Вариант, когда оба потока отправляются в собственные MPC Audio Renderer навёл меня на мысль отключить Audio Switcher, но, как оказалось, в BE такой опции нет (в HC была).
Но я сделал это (включил второй вывод): https://imgur.com/vqr7xDr и.. так почему-то всё работает нормально.

Надеюсь, эта информация поможет вам разобраться.

6

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Не смог воспроизвести. Даже если фильтры LAV - все гуд. Правда я использую в wasapi эксклюзив.

I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

7

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

У меня тоже все норм.

1. Какая звуковая карта?
2. Какие настройки в аудиорендерере?
3. Какие  настройки в "Обработке звука"?

8 (изменено: Lord_D, 2018-11-25 19:46:11)

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Звуковая встроенная, Realtek High Definition Audio. Версия драйвера 6.0.1.8186 (последняя, на сайте Realtek значится как 2.82).
Настройки вывода звука: https://imgur.com/7SFCL9D (не влияют)
Настройки аудио: https://imgur.com/GxvaFte (баг исчезает, если включить второй вывод и выбрать там любой рендерер, даже Null)
Настройки аудиорендерера: https://imgur.com/XTvfdFS (не влияют, с Exclusive баг есть)
Обработка звука: https://imgur.com/kgI0jGT (ни одна опция не влияет)

Повторил на ноутбуке в этой же версии MPC-BE.
Но повторяемость не 100%-я, иногда всё нормально. На десктопе повторяется всегда.
Отличие, которое могу назвать - процессор Intel Core i3-380M. На десктопе - AMD Phenom II X6 1100T. Возможно баг не повторяется на новых/быстрых процессорах? Какое-нибудь состояние гонки.
Видеокарта на обоих машинах - Radeon (разных моделей), у которой есть своё аудиоустройство HDMI, но оно не отображается в выборе устройств в плеере, т.к. не подключен провод.

ПО ноутбука:
Тот же Windows 7 SP1 x64, только без обновлений системы за последние года три.
Драйвер на звуковую также старый.
Старый LAV Filters 0.65.

UPD. По непонятной причине баг перестал проявляться с Sanear. Возможно после установки новой версии драйверов на звуковую.
Теперь он есть только с MPC Audio Renderer.

UPD2. Почему-то не получается соединить в GraphStudio MPC-HC AudioSwitcher и ваш MPC Audio Renderer. С другими рендерерами соединяется без проблем.

UPD3. Вероятно, выяснил причину, почему баг не всегда повторяется на ноутбуке - дело в медленном жёстком диске и малом объёме оперативной памяти. Когда файл открывается в первый раз и ещё не попал в кэш в оперативной памяти, баг не проявляется. При повторном открытии того же файла (нажать stop и снова play) баг проявляется. Повторил это на десктопе открыв видео сразу после перезагрузки компьютера. На десктопе 16 ГБ памяти и кэш хранится очень долго. Поэтому баг повторяется каждый раз, даже между перезапусками плеера.
Так что здесь точно какое-то состояние гонки. Возможно ли собрать такую тестовую сборку, где бы потоки из разных файлов запрашивались по-очереди, с задержкой?

9

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

На работе так же не смог воспроизвести )) Даже и не знаю чем помочь.

Ну и напрашивается вопрос - для чего нужен LAV все фильтры. Ну ладно Source для MKV + linked, ладно LAV Video для DXVA2 Copy-back или CUVID. Но LAV Audio то зачем ?? smile

I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

10

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Выполнены все пункты?

  • Все встроенные фильтры отключены (сейчас проверил - видео тоже должно быть LAV, со встроенным не повторяется)

  • Аудио-рендерер MPC Audio Renderer

  • Установлена галка "Всегда использовать внешние аудио-файлы как основные"

После этого плеер следует перезапустить.

Вы сами назвали два преимущества LAV. Плюс к этому, там новые форматы появляются быстрее. Стабильная версия MPC-BE обновляется редко.

У меня осталось два вопроса:

  • Почему не повторяется с другими аудио-рендерами?

  • Возможно ли собрать такую тестовую сборку, где бы потоки из разных файлов запрашивались с задержкой?

11

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

У меня не повторяется ни как.

I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

12

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

А если в этом состоянии вызвать зависание перемоткой, можно будет определить в каком модуле произошло зависание? Или это ничем не поможет?

13

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Такое можно отловить только сидя в отладчике. Но и то - если проблемы на стороне LAV(пусть и из-за MPC Audio Renderer) - поможет только сидеть в отладчике в коде LAV smile

Добавлено: 2018-11-26 19:15:02

И вопрос - какие такие форматы появляются раньше ?? Те которые 99.9% пользователей не нужны ...
По видео ещё могу согласиться. А вот аудио декодер ничем не лучше нашего.

I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

14 (изменено: judelaw, 2018-11-26 22:18:45)

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Lord_D пишет:

Выполнены все пункты?

  • Все встроенные фильтры отключены (сейчас проверил - видео тоже должно быть LAV, со встроенным не повторяется)

  • Аудио-рендерер MPC Audio Renderer

  • Установлена галка "Всегда использовать внешние аудио-файлы как основные"

После этого плеер следует перезапустить.

Словить баг не удалось. вин10

Update:

Словил баг на вин7. Иногда не с первого раза, но как правило да, не запускается

15 (изменено: Lord_D, 2018-11-27 14:26:19)

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Повторил баг в MPC-HC 1.8.3 (тот, который форк от clsid2).

  • Выбираем в настройках вывода "Встроенный рендер аудио" (который на самом деле Sanear).

  • Перезапускаем плеер.

  • Открываем файл с внешним аудио.

  • Выбираем внешнее аудио (HC не умеет выбирать его автоматически, поэтому там баг сложнее поймать).

  • Перематываем куда-нибудь в середину. Воспроизведение не останавливаем.

  • Перематываем в самое начало, причём перетаскиванием вдоль полоски прогресса с зажатой кнопкой мыши от большего времени к меньшему (так, чтобы подряд произошло несколько перематываний).

  • Плеер зависает.

В MPC-BE этот метод тоже срабатывает (там и нашёл).

Не подумайте, что я вот уже несколько дней выискиваю способы повторить баг smile. Нашёл совершенно случайно, когда смотрел фильм. До этого решил попробовать Sanear и включил его.

Общего в этих случаях только LAV и WASAPI. И раз баг не повторяется на Win10, как указал уважаемый judelaw, я допускаю, что проблема может быть даже и в WASAPI. Придётся и дальше пользоваться DirectSound.

Благодарю Aleksoid1978 и V0lt за посильную помощь.
Тему предлагаю оставить. Вдруг найдётся герой, который сможет исправить баг.

16

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

А может просто использовать встроенный аудио-декодер(есть моменты где он даже лучше чем LAV). И тогда использовать спокойно wasapi.

I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

17 (изменено: Lord_D, 2018-11-27 17:18:13)

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Aleksoid1978, специально для вас повторил со встроенными декодерами видео и аудио по схеме из прошлого сообщения. Перестаёт повторяться только если переключиться на встроенный сплиттер. Но и то не факт, что в итоге не вылезет. Дело именно в WASAPI, кривое оно. Без него не повторяется с любыми декодерами/сплиттерами.

Чтобы не быть голословным:
https://imgur.com/qvWQ5lM
https://imgur.com/l7M5VQG

В пользу этого говорит и то, что на Win10 не повторяется. Но там может также и дисковая подсистема отличаться. Теперь не разберёшься из-за чего это происходит.

UPD. Я всё-таки не могу представить, чтобы два LAV Splitter уловчились помешать друг другу считать данные с диска. Это ведь два независимых процесса. Поэтому всё-таки склоняюсь к тому, что проблема в Audio Switcher или MPC Audio Renderer.

И вот опять, добавляю второй вывод в Null Renderer и проблема исчезает. Мне кажется, в этом кроется разгадка. Что меняется?

UPD2. Забыл сказать, что для повторения по той схеме файлы должны быть жирными. Тот, что на скриншоте - видео 2,2 ГБ, внешнее аудио 82 МБ.

18

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Ну скажем так - если вдруг получиться на встроенных фильтрах поймать, тогда я дам билд с созданием лог-файла.

I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

19

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Подсмотрел, что происходит в плеере при включении второго вывода - добавляется Infinite Pin Tee Filter - и повторил в GraphStudioNext:
Баг есть: https://imgur.com/rLeyK2i
Бага нет: https://imgur.com/cV8rOOJ

То есть баг есть только когда данные идут напрямую от MPC Audio Switcher к MPC Audio Renderer. Infinite Pin Tee Filter ведь ничего с данными не делает. Почему баг пропадает?

Можно залогировать что там между ними летает?

20

Re: MPC Audio Renderer, LAV Filters и внешнее аудио

Но если нет со встроенным Source - значит не все так плохо ))

Добавлено: 2018-11-28 18:54:50

Скажу сразу - никакого специального кода для встроенных фильтров и работы wasapi не писал. Так что - что то не то шлёт lav source или что-то такое что мы не учитываем. Мучай автора LAV - пусть он воспроизведет проблему и скажет что же не так.

Хватит уже гадать на кофейной гуще.

I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215