1

Тема: Аудиодекодер и A/V синхронизация.[Исправлено]

Существуют MKV, в которых реальная длительность аудио дорожки отличается от длительности видео. Такие дорожки укладываются в MKV с корректировкой (масштабированием) временных меток.
Например: Был видеофайл со звуков и частотой 25 к/с, к нему добавили дорожку из видео с частотой 23,976. Чтобы все было хорошо, временные метки новой дорожки подкорректированы.
Примеры: sample.mkv.

В текущих версиях MPC-BE такие файлы нормально воспроизводиться только, если подключить LAV Audio Decoder. Если использовать встроенный MpaDecFilter, то будут рывки.

Добавлено: 2018-04-30 12:47:04

Предлагаю тестовый билд - https://yadi.sk/d/JH-cvVU23UwtTx, там сам .exe + патч(получилось немного некрасиво что в классе ffmpeg декодера используются переменные из самого фильтра, но так на самом деле удобнее чем дублировать переменные и придумывать как их передавать. Тем более что эти новые переменные пригодятся в дальнейшем).
Переделал обработку временных меток(за исключением SPDIF/HDMI Bitstream - руки еще не дошли). Взял за основу код из LAV Audio Decoder.

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

2

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Пример воспроизводиться так же - с нарастающим рассинхроном.

3

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Опцию корректировки включи в декодере 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

4

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

С включенной опцией нормально. Я думал опция больше не нужна.

5

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Как так не нужна. Я просто избавился от резких рывков, так же корректно обрабатываются данные после парсера ffmpeg(более не нужно большое значение jitter для DTS)

Добавлено: 2018-04-30 16:07:18

Седня-завтра доделаю для битстрима, ac3 энкодинга.

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

6

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

А в чем тогда смысл второго режима, который сейчас дает рассинхрон?

7

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Чето попадалось такое, уже и не помню. Пришлось отключать корректировку. Да и что, лишним не будет.

Добавлено: 2018-04-30 18:42:21

Окончательный вариант(сделал для битстрима и AC3 энкодинга).
https://yadi.sk/d/QctAJ4qQ3Uxmvz

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

8

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

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

Добавлено: 2018-04-30 21:39:29

По поводу файла sample.mkv и автопереключалки.
Для этого файла невозможно заранее выставить частоту дисплея. Раньше тоже нельзя было. Хоть usalex и пишет, что было лучше, но сам же признается, что звук постоянно заикался.

Добавлено: 2018-04-30 22:52:15

Хотя такое можно разрулить на стороне аудиорендерера через ускорение-замедление (atempo), но нужен достоверный "детектор" таких случаев.

9

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Можно будет подумать про ускорение/замедление.

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: Аудиодекодер и A/V синхронизация.[Исправлено]

V0lt пишет:

Для этого файла невозможно заранее выставить частоту дисплея

Почему это нельзя? Можно. Частота дисплея должна быть кратна частоте кадров видео. Это главное правило, необходимое для плавности картинки. А звук - это другая история. Он не на дисплей выводится и не надо на него ориентироваться при выставлении частоты дисплея.

Добавлено: 2018-05-01 05:10:38

V0lt пишет:

Хоть usalex и пишет, что было лучше, но сам же признается, что звук постоянно заикался.

Нет. Звук заикался не постоянно, а только тогда, когда я ему это разрешал (была опция выбора режима синхры).
А если какой-то фильм был более разговорного или музыкального жанра, где звук был важнее картинки, можно было поменять режим. Было лучше, потому, что был выбор.

11

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Ну звук ВСЕГДА является "источником" времени вывода, картинки в том числе. Так работают все аудио-рендереры.
Но это никак не относиться к данной теме(тут про аудио-декодер).

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: Аудиодекодер и A/V синхронизация.[Исправлено]

Aleksoid1978 пишет:

Ну звук ВСЕГДА является "источником" времени вывода, картинки в том числе. Так работают все аудио-рендереры.

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

13

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Плавность можно конечно сделать - для этого надо в аудио-рендерере немного разгонять/тормозить аудио-поток.

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

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

К сожалению, после переделки встроенного аудио декодера (временных меток), на некоторых видео файлах появился рассинхрон.

Добавлено: 2018-05-01 10:13:08

И даже не на некоторых....

Да уж, эти переделки временных меток...

В общем так, после SVN r3574 появились следующие проблемы:

1. Рассинхрон
2. Джиттер, которого раньше и близко ни разу не было на некоторых видео файлах
3. Пропуски кадров во время воспроизведения, опять же из-за нарастающего джиттера, которого быть не должно на некоторых видео файлах.

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

Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

15

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Ну так наверное надо выложить файлы на которых наблюдается рассинхрон, пропуски кадров и т.д.
Я проверял и на разных "тестовых" файлах, и на реальном просмотре(ну 5-10 минут - а несколько часов).

На самом деле переделывание было не из-за одного этого файла с первого поста.

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

16 (изменено: Evgeniy1990, 2018-05-01 13:48:04)

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Aleksoid1978 пишет:

Ну так наверное надо выложить файлы на которых наблюдается рассинхрон, пропуски кадров и т.д.
Я проверял и на разных "тестовых" файлах, и на реальном просмотре(ну 5-10 минут - а несколько часов).

На самом деле переделывание было не из-за одного этого файла с первого поста.

Да, я в курсе, что вам нужны видео файлы, сейчас заливаю их.

Итак, начнем:

Проблема №1 - рассинхрон.

Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

17

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Evgeniy1990
Настройки декодера надеюсь сброшены?

18

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Проблема №2 - джиттер на всех WMV

Добавлено: 2018-05-01 14:00:20

V0lt пишет:

Evgeniy1990
Настройки декодера надеюсь сброшены?

Настройки по умолчанию в аудио декодере у меня стоят.

Добавлено: 2018-05-01 14:03:41

Проблема № 3 - пропуски кадров, во время воспроизведения.
Особенно заметны пропуски кадров, при использовании LAV Splitter на Windows 10.

Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

19

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

RealAudio исправил.
Asf(и похожие) исправил.

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

20 (изменено: Evgeniy1990, 2018-05-01 20:21:01)

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Aleksoid1978 пишет:

RealAudio исправил.
Asf(и похожие) исправил.

Ок, буду проверять.

Проблема №4 - постоянный джиттер в AVI
На данном AVI-видео файле джиттер присутствует и должен быть только в начале, дальше его быть не должно.
Опять ситуация - наоборот, вместо частичного джиттера - постоянный.

Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

21

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Пофиг на джиттер, если файл воспроизводится нормально.

Если проблема воспроизводиться, только на встроенном рендерере, то скорее всего это проблема рендерера, а не декодера. Это в другую тему.

22 (изменено: Evgeniy1990, 2018-05-01 20:26:55)

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

V0lt пишет:

Пофиг на джиттер, если файл воспроизводится нормально.

Что значит - пофиг? Если он вместо одно места присутствия присутствует уже всегда - это уже ненормально, даже если визуально это незаметно.

V0lt пишет:

Если проблема воспроизводиться, только на встроенном рендерере, то скорее всего это проблема рендерера, а не декодера. Это в другую тему.

Перенес остальные проблемы в тему переделанного встроенного "MPC Audio Renderer" (WASAPI Renderer).

Добавлено: 2018-05-02 08:53:40

Aleksoid1978 пишет:

RealAudio исправил.
Asf(и похожие) исправил.

Проверил поведение данных видео файлов в SVN r3580.

1. Рассинхрона на RealAudio больше нет - исправлено.
2. Постоянного джиттера на AVI больше не наблюдается - исправлено.
3. Пропуски кадров во время воспроизведения на WMV (ASF) так и остались - не исправлено.

Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

23

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Этот ASF + 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

24

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Поддержу. "Лечить" корявое воспроизведение WMV/ASF на сторонних сплиттерах себе дороже выйдет, тем более если на системном нормально играет.

25

Re: Аудиодекодер и A/V синхронизация.[Исправлено]

Проблема №5 - рассинхрон, при ускоренном/замедленном воспроизведении на "OGG Vorbis Audio".
Присутствует только на нашем встроенном переделанном "MPC Audio Decoder".

Обратите внимание - при использовании внешнего стороннего аудио декодера "LAV Audio Decoder", рассинхрона на данном видео файле, при ускоренном/замедленном воспроизведении - нет.

Алгоритм воспроизведения:

1. Скачать этот видео файл
2. Запустить его
3. Во время его воспроизведения увеличить скорость воспроизведения на 1.2х

В итоге произойдет рассинхрон.

Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.