Главное меню

Последние сообщения

#41
Обсуждение / Discussion / От: Переделка поддержки кодиро...
Последний ответ от V0lt - 03 сентября 2025, 22:13:13
Что хочется сделать в MPC-BE?

1. Набор символов НЕ должен определять кодировку. Соответствующая настройка выбора набора символов будет удалена или заменена выбором кодировки.

2. Кодировка будет определять набор символов. Потому что набор символов много где используется: LOGFONT, в полях стилей SSA/ASS и др.

3. Разобраться со полем "Encoding" в стилях SSA/ASS, в котором прописывается набор символов.
- В чем смысл этого поля?
- Что если кодировка файла русская (Windows-1251), а в поле "Encoding" прописан греческий набор символов?
- Что должно быть в поле "Encoding", если файл субтитров сохранен в UTF-8?

4. Разобраться, зачем в LOGFONT прописывают конкретный набор символов, когда у нас есть шрифты с несколькими наборами символов и уже кучу лет Юникод. Я не нашел ответа в доках MicroSoft. :-|

5. Упростить чтение файлов текстовых субтитров. И ничего не сломать. Ха-ха. Привет азиатским иероглифам.

6. Aleksoid1978 предлагает сделать автоопределение кодировки. У меня есть сомнения:
- Не особо то и нужно. Обычно хватает получить кодировку из системы. В редких случаях придется один раз указать вручную. Сомневаюсь, что есть пользователи, которые смотрят субтитры на нескольких языках (английский не в чет) да еще без UTF-8.
- Автоопределение кодировки ошибается. Если сейчас юзер может спокойно смотреть на системной или выбранной кодировке, то автоопределение кодировки начнет изредка портить ему настроение. А если не повезет, то и чаще.
#42
Обсуждение / Discussion / От: Переделка поддержки кодиро...
Последний ответ от V0lt - 03 сентября 2025, 21:08:45
Что делать юзерам?

Для юзеров хорошим решением может оказаться сохранение файлов субтитров в формате UTF-8. На современных плеерах для Windows, Linux и Android проблем быть не должно.
Если юзеру нужно смотреть субтитры на старом оборудование (вопрос зачем поднимать не будем), то скорее всего он и так знает, какая там должны быть кодировки и форматы.

Для субтитров, встроенных в видеофайл MKV, проблем быть не должно, потому что они хранятся в UTF-8. Если делает MKV с субтитрами самостоятельно, то обязательно проверьте результат на плеере.
#43
Обсуждение / Discussion / Переделка поддержки кодировок ...
Последний ответ от V0lt - 03 сентября 2025, 17:38:02
Вообще однобайтные кодировки (и не только однобайтные, вспомним иероглифы) - зло. Потому что кодировку обычно никак не прописывают в файлах субтиров. Но с ними приходиться работать.

Тут нужны определения.

Сharacter Set - набор символов и ничего более. Бывают наборы для латиницы, кириллицы, греческих символов и других. Как параметр используется в структуре LOGFONT (см. lfCharSet)

Code Page - это собственно кодировка символов. Сопоставление бинарных значений с конкретными символами.


Что мы имеем сейчас.

С настройками по умолчанию MPC-BE читает файл с системной кодировкой. Для русской локали это Windows-1251, для других языков что-то свое.

Если нужно переопределить кодировку, то в настройках MPC-BE можно поменять набор символов для стиля субтитров по умолчанию. Это очень странный способ, но он часто срабатывает. Набору символов с помощью функции TranslateCharsetInfo сопоставляется определенная кодировка символов.

Проблема возникает, если у вас субтитры в нестандартной кодировке. Возьмем пример из недавнего баг-репорта. У китайцев ранее использовался набор символов GB2312, сейчас появился GB18030. Для этих наборов символов используются немного разные кодировки и соответственно некоторые иероглифы GB18030 не будут отображены.

С кириллицой проблем нет. Тестовые субтитры всегда писали в Windows-1251, других не встречал. Иначе были бы проблемы с аппаратными плеерами.
#44
Обсуждение / Discussion / От: Официальные релизы
Последний ответ от V0lt - 07 августа 2025, 08:20:47
Релиз MPC-BE 1.8.6

Важные изменения:
Добавлена экспериментальная поддержка аудио Dolby AC-4.
Улучшена передача TrueHD + Dolby Atmos по HDMI passthrough.
Устранено падение при преобразовании NV12 в YV12 при использовании декодера D3D11cb, D3D12cb или NVDEC.
Исправлен выбор формата по умолчанию (VP9 720p + Opus) после сброса настроек.
Обновлен MPC Video Renderer 0.9.11.
#45
Внешние фильтры / External filters / От: MPC Video Renderer
Последний ответ от V0lt - 05 августа 2025, 06:38:42
Релиз MPC Video Renderer 0.9.11.2440

Изменения:
Устранено падение при превышении лимита увеличения размера кадра при использовании видеопроцессора DXVA2/D3D11. В этом случае будет использоваться увеличение размера кадра с помощью шейдеров.
Устранено падение при использовании эксклюзивного полноэкранного режима и настройки "Exclusive full screen on additional window" в MPC-BE для двух видеокарт.
Добавлена настройка "Deinterlacing" для видеопроцессоров DXVA2 и D3D11.
Исключено копирование кадров (ZeroCopy) при использовании аппаратного декодера DXVA2 и видеопроцессора DXVA2 для режима Direct3D 9.
Исключено копирование кадров (ZeroCopy) при использовании аппаратного декодера D3D11 и видеопроцессора D3D11 для режима Direct3D 11.
Исправлена регистрация и отмена регистрации фильтров с использованием комплектных файлов CMD.

PS: MPC Video Renderer 0.9.11 включен в состав инсталлятора MPC-BE 1.8.5.77.
#46
Обсуждение / Discussion / От: Video and Audio codec info...
Последний ответ от Aleksoid1978 - 14 июля 2025, 05:17:40
У нас никогда такой информации не было. И не планируется.
#47
Обсуждение / Discussion / Video and Audio codec info at ...
Последний ответ от 1v0live - 14 июля 2025, 00:39:35
Hello and thanks for this project. I like very much the improvements made on MPC-HC.
One thing however i think it is a downgrade: the removal from the audio and video codec info as well as the resolution of the video playing. I think it was very useful for a quick info instead of opening mediainfo on the properties.
What was behind the decision to remove it? Can you put it back please?
#48
Внешние фильтры / External filters / От: MPC Video Renderer
Последний ответ от V0lt - 13 июля 2025, 20:31:47
В MpcVideoRenderer 0.9.10.2417 добавилась настройка "Deinterlacing".

Когда настройка включена, то в окне информации можно увидеть примерно такую информацию
DirectX 9
Graphics adapter: Intel(R) UHD Graphics 750 (8086:4C8A)
VideoProcessor  : DXVA2 {BF752EF6-8CC4-457A-BE1B-08BD1CAEEE9F}
DeinterlaceTech.: EdgeFiltering, InverseTelecine
ReferenceSamples: Backward 1, Forward 0
DirectX 11
Graphics adapter: Intel(R) UHD Graphics 750 (8086:4C8A)
VideoProcessor  : D3D11, RateConversion_0
DeinterlaceTech.: Blend, Bob, Adaptive, Motion Compensation, Inverse Telecine
Reference Frames: Past 1, Future 1

Когда настройка отключена, то получается следующее
DirectX 9
Graphics adapter: Intel(R) UHD Graphics 750 (8086:4C8A)
VideoProcessor  : DXVA2 ProgressiveDevice
DeinterlaceTech.: none
ReferenceSamples: Backward 0, Forward 0
DirectX 11
Graphics adapter: Intel(R) UHD Graphics 750 (8086:4C8A)
VideoProcessor  : D3D11, RateConversion_0
DeinterlaceTech.: none
Reference Frames: Past 0, Future 0

Т.е. в случае полного отключения деинтерлейса, не нужны дополнительные кадры. В видеопроцессор передается только текущий кадр. В этом случае в режиме DX9 рендерер не копирует кадры полученные от декодера, а передает "указатель" в видеопроцессор DXVA2. В итоге мы экономим ресурсы, что очень актуально для встроенной графики.


13 июля 2025, 21:11:14
Ответы на возможные вопросы:

1. Почему рендерер в режиме DX9 не может всегда использовать "указатели" вместо копирования?
Потому что на некоторых графических адаптерах AMD это приводило к падению рендерера. Возможно нужно захватывать входные поверхности (текстуры) как-то иначе, чтобы не было конфликта с аппаратным декодером.

2. Почему рендерер в режиме DX11 не может использовать "указатели" вместо копирования при отключенном деинтерлейсе?
Потому что текущая реализация буфера входных текстур для DX11 не имеет такой возможности.
#49
Внешние фильтры / External filters / От: MPC Video Renderer
Последний ответ от V0lt - 28 июня 2025, 08:20:11
Цитата: punkist33 от 27 июня 2025, 23:04:59Может быть вы знаете как его надо правильно обновлять рендер для сторонних плееров?
Знаем как обновлять DirectShow-фильтр в системе.

1. Скачать архив с DirectShow-фильтр и разблокировать архив через свойства файла.
2. Закрыть все приложения, которые потенциально могут использовать DirectShow.
3. Запустить командный файл деинсталляции (если есть) с правами администратора. Убедиться, что командный файл выполнился успешно.
4. Распаковать архив. Заменить старые файлы новыми.
В случаях, когда для x64 и Win32 названия файлов фильтра одинаковые, нужно убедиться что заменяется правильная версия.
5. Запустить командный файл инсталляции с правами администратора. Убедиться, что командный файл выполнился успешно.
Если командного файла нет, то использовать команду "regsvr32.exe filter.ax".
6. Проверить установку фильтра с помощью DSF/MFT Viewer.

PS: 3-й пункт деинсталяции при обновлении не обязателен. Но если есть проблемы, то почему бы не сделать.
#50
Внешние фильтры / External filters / От: MPC Video Renderer
Последний ответ от punkist33 - 27 июня 2025, 23:04:59
Цитата: Aleksoid1978 от 27 июня 2025, 14:50:41Наверное надо спросить у автора Pot.
Поменялась версия рендера, а плеер остался тотже. Может быть вы знаете как его надо правильно обновлять рендер для сторонних плееров?