ВНИМАНИЕ: в данной статье содержится частично устаревшая информация, актуальная инструкция по настройке здесь: Настройка плавного воспроизведения видео (обучающий видеоролик).
Copyright (C) 2014, Taras Kovrijenko
Полное или частичное копирование текста допускается только с письменного разрешения автора.
Вступление
Этой статьёй я хотел бы открыть новый раздел посвященный воспроизведению видео на компьютере.
На самом деле, темой видео я интересуюсь еще с тех пор как начал смотреть фильмы на своём PC, но достаточно полной информацию по этому поводу мне найти не удалось до сих пор. Потому пришлось как всегда собирать её то тут, то там, по разным сайтам и форумам. Сейчас же я хочу поделиться всем, что узнал, с Вами.
Прошу заметить: я ни в коем случае не гарантирую правильное функционирование приведенных здесь настроек на каком-либо оборудовании кроме своего.
1. Рекомендуемые системные требования
- Двухъядерный процессор не хуже Intel Core 2 Duo 2.2 ГГц- Не менее 2 Гб оперативной памяти
- Видеокарта уровня nVidia 9600/Radeon 3870 или лучше
- 32- или 64-битная операционная система Windows 7 SP1
Если Ваша система не соответствует этим требованием, это не значит что указанные мною настройки не будут работать вообще. Скорее всего придется исключить некоторые составляющие, или понизить качество обработки (см. раздел "Рекомендации для слабых компьютеров")
2. Необходимое ПО
Для стабильной работы нам понадобятся конкретные, проверенные версии программ и кодеков. Тем не менее, скорее всего, комбинации более новых версий тоже будут работоспособны. Таким образом, если у Вас возникнут какие-то проблемы, или Вы обнаружите какой-то значительный баг - можете скачать последнюю версию программы с её официального сайта (ссылки в конце статьи). Я же буду описывать настройку для размещенных ниже версий.
И так, вот, что нам нужно (загрузите эти файлы, но пока ничего не устанавливайте):
- Microsoft Visual C++ 2008 SP1 Redistributable Package - набор библиотек C++ 2008, необходим для работы многих программ.
- Microsoft .NET Framework 3.5 Service Pack 1 (Full Package) (если не установлен) - программная платформа от Microsoft. Необходима для правильного рендеринга видео.
- DirectX 9.29.1962 (Июнь 2010) - последняя версия набора библиотек DirectX 9. Необходима для правильного рендеринга видео.
- Media Player Classic HomeCinema 1.5.0.2827 x86 - один из лучших плееров (на мой взгляд - лучший) использующих DirectShow. Обладает простым, удобным дизайном, и в то же время содержит весь необходимый функционал.
- ffdshow rev. 3760 - DirectShow аудио/видео фильтр, содержащий в себе декодеры всех популярных форматов, а также полезные обработчики. Имеет полностью прозрачный тракт.
- AviSynth 2.58 - средство для обработки видео (в т.ч. потоковой). Позволяет подключать специальный пользовательские скрипты (которые содержит в себе SVP).
- ReClock 1.8.7.7 - DirectShow аудио рендер, имеющий широкие возможности синхронизации аудио и видео ряда (путем подстройки частоты дискретизации). Также способен выводить звук через Kernel Streaming и WASAPI Exclusive, что тоже немаловажно.
- Smooth Video Pack 3.0.3 Lite - пакет программных средств, который позволяет увеличивать частоту кадров воспроизводимого видео путем расчета промежуточных кадров (например, для преобразования 24->60 кадров/с надо рассчитать 36 промежуточных кадров для каждой секунды видео). Таким образом достигается максимальная синхронизация с частотой обновления экрана и значительное повышение плавности движений.
3. Подготовка системы, установка ПО
Этот этап очень важен - от него напрямую зависит стабильность работы устанавливаемых компонентов. Алгоритм действий следующий:
- Установите все доступные обновления для операционной системы.
- По возможности закройте все открытые программы (особенно плееры и браузеры).
- Удалите все DirectShow кодеки (и их пакеты - например, K-Lite Codec Pack) с компьютера.
- Установите последние версии драйверов для звуковой и видеокарты (AMD или nVidia). Перед установкой нового драйвера видеокарты настоятельно рекомендуется удалить старый.
- Перезагрузите компьютер.
- Установите ПО в том порядке, в котором оно размещено в предыдущем разделе. Во всех установщиках, кроме SVP оставьте все параметры по умолчанию. Для SVP во время установки укажите процессор наиболее схожий с Вашим (по количеству физических ядер процессора: 8 - для Core i7, 4 - для Core 2 Quad, 2 - для Core 2 Duo. Также рекомендуется установить режим Эксперта.
- Если Вы устанавливали .NET Framework, еще раз проверьте наличие обновлений для ОС. Если таковые имеются, установите их.
- Перезагрузите компьютер.
4. Настройка ПО
4.1 Media Player Classic HomeCinema
Чтобы попасть в настройки, необходимо нажать в строке меню на Вид и выбрать пункт Настройки. Не будем заострять внимание на параметрах не влияющих непосредственно на процесс воспроизведения видео. Потому перейдем сразу к декодерам.
Здесь надо выключить все встроенные декодеры, так как для декодирования аудио и видео мы будем использовать ffdshow.
Чтобы исключить из цепочки лишнее звено, следует отключить встроенный в плеер переключатель дорожек. Для этого будем также использовать ffdshow.
Здесь главным образом надо включить EVR рендер, установить бикубическую интерполяцию с максимальным сглаживанием, а также включить использование аудио рендера ReClock. После настройки не забывайте нажимать кнопку Применить.
4.2 ffdshow audio/video decoder
Для перехода к настройками этих декодеров откройте список программ в меню Пуск и найдите там папку ffdshow. В ней находятся ярлыки конфигуратора аудио и видео декодера.
4.2.1 Video
Тут по возможности установите для всех форматов (для которых декодирование запрещено) декодер libavcodec.
Здесь будет полезно включить очередь (для обработки в несколько потоков).
Формат вывода установим RGB32 с высококачественной конверсией из YV12, что послужит гарантией наиболее точной цветопередачи.
4.2.2 Audio
По аналогии с видео декодерами, вместо "запрещен" выберите декодер libavcodec или другой доступный. Для Uncompressed установите "all supported". Сразу же выключите микшер (снимите галочку) - он нам не понадобится, преобразование каналов будет производить звуковая карта.
Тут надо включить переключение потоков (звуковых дорожек).
Выводить звук будем в 24-битном PCM. Если Ваш драйвер аудио не поддерживает 24 бита, включите 16-битный режим.
ВНИМАНИЕ: Для правильного воспроизведения звуковой дорожки в настройках звуковой карты должна быть указана реальная конфигурация акустической системы (или наушники).4.3 ReClock
Настройка ReClock предельно проста. Надо всего лишь перейти в Пуск->Программы->ReClock->Configure ReClock и проверить настройки:
Обратите внимание на Sampling Rate (частоту дискретизации) и Format (глубину квантования в битах). Глубину квантования следует установить такую же, как в настройках вывода ffdshow audio. Частоту - в соответствии с опорной частотой Вашей звуковой карты (для встроенных карт это обычно 48 кГц).
4.4 SVP Manager
Здесь настройки тоже сводятся к минимуму. Чтобы запустить программу, откройте Пуск->Все программы->SVP 3.0->SVP Manager. Обратите внимание: для повышения плавности видео SVP Manager обязательно должен быть запущен. Вы можете добавить его в автозагрузку с помощью правого клика по значку в трее->Настройки->Загружать вместе с Windows.
Для более эффективной авторегулировки параметров отметьте пункт Алгоритм выбора профиля->Ближайший больший по величине потока.
В случае поддержки видеокартой OpenCL очень важно включить GPU-ускорение - это позволит значительно снизить нагрузку на процессор.
На всякий случай проверьте количество потоков обработки установленное в менеджере - для оптимальной производительности оно должно соответствовать количеству логических процессоров компьютера (например, для двухъядерный процессоров с технологией HyperThreading число логических процессоров равно четырем). Для трехъядерных (и более) процессоров можно воспользоваться эмпирической формулой Количество Потоков = Количество ядер * 1.823
(например, для четырехъядерного процессора следует установить 7 потоков).
5. Отладка
И так, всё настроено, SVP Manager запущен. Запускаем плеер и открываем какой-нибудь видеофайл. Появится изображение, поверх которого будет наложено сообщение "SVP > Плавное воспроизведение...". Откройте контекстное меню->Фильтры - там должен быть указан ReClock Audio Render, Enhanced Video Render, ffdshow audio/video decoder и фильтр источника:
Теперь обратите внимание на системный трей. Там должно быть три иконки: ffdshow video decoder, ffdshow audio decoder, ReClock и SVP Manager:При задержке указателя над иконкой ffdshow должна выводиться информация о входном и выходном потоке:
Если в списке фильтров отсутствует ffdshow аудио или видео декодер и присутствует другой - значит или Вы не полностью следовали указаниям по настройке, или же другой фильтр имеет больший приоритет и должен быть отключен/удален (например, с помощью Codec Tweak And Fix Tool).
Если не работает Enhanced Video Render, значит у Вас не установлен .NET Framework 3.5 SP1 или имеются проблемы с драйвером видеокарты.
Если не функционирует ReClock аудио рендер - проверьте еще раз настройки вывода звука, особенно формат.
Если значок ReClock красный, щелкните по нему и укажите в верхнем правом углу частоту обновления своего монитора:
Теперь, прямо во время воспроизведения нажмите в плеере комбинацию Ctrl+J. На экране должна отобразиться информация и график синхронизации:
Обратите внимание на зеленую линию: в идеале она должна быть прямой, но это не всегда так. Всплески амплитудой более одного деления (по вертикальной оси) приводят к видимому отклонению времени кадра (единичные отклонения воспринимаются как подергивание, притормаживание, постоянные - как дрожание) - это говорит о недостаточной производительности системы или о проблеме с драйверами. Визуально стабильность синхронизации можно оценить, нажав Ctrl+T.Также обратите внимание на разность уровня зеленой и красной линий - она должна всегда быть примерно одинаковой (или незначительно колебаться относительно постоянной величины). Если первый график постепенно сближается со вторым, необходимо изменить частоту в настройках ReClock (см. выше) - обычно с 60 до 59.940 FPS.
Если картинка сильно дергается, а график мечется вверх-вниз, проверьте загрузку процессора (Ctrl+Alt+Del) - возможно, его мощности не хватает для преобразования частоты кадров. В таком случае щелкните дважды на значке SVP в трее и попробуйте понизить параметры преобразования.
Если при нажатии Ctrl+T на бегущей вертикальной полосе наблюдаются горизонтальные разрезы, это значит, что имеются проблемы с вертикальной синхронизацией. Попробуйте включить альтернативную синхронизацию:
Обратите внимание: нестабильность синхронизации также возможна после выхода из некоторых 3D-приложений. Так что можно попробовать перезагрузить компьютер.
Если загрузка процессора невелика (менее 90%), картинка в целом стабильная, но периодически подергивается (особенно заметно при равномерном движении камеры), попробуйте включить полноэкранный Direct3D режим.
6. Рекомендации для слабых компьютеров
На слабых машинах (особенно, с одноядерными процессорами) первым делом придется исключить из цепочки Smooth Video Pack - он потребляет очень большое количество ресурсов. При наличии видеокарты с поддержкой DXVA очень важно включить декодеры с пометкой DXVA в настройках MPC HC - это позволит просматривать видео закодированное в H.264/AVC даже при слабом процессоре.
Следующим шагом может быть изменение рендера (настройки вывода MPC) и цветового пространства (настройки вывода декодера ffdshow video). Ниже представлены результаты экспресс-теста на загрузку центрального и графического процессора воспроизведением видео (Xvid 720x304 23.98fps 2023kbps). Замеры производились при двукратном увеличении видео в режиме окна. Использовался процессор Intel Core i3 530 (2 ядра, 2.93 Ггц), видеокарта AMD HD3870 512 Mb DDR4 и ОС Windows 7 x64 Ultimate.
Рендер | Цв. пр-во | Загрузка (средн.), % | |
EVR (польз.) | YUV2 | CPU: 1-4 (2), GPU: 7-8 (8) | |
EVR (польз.) | YV12 | CPU: 0-2 (1), GPU: 1 (1) | |
EVR (польз.) | RGB32HQ | CPU: 1-2 (1.5), GPU: 8 (8) | |
EVR (польз.) | RGB32 | CPU: 0-2 (1), GPU: 8 (8) | |
Системный рендер | YUV2 | CPU: 0-3 (2), GPU: 1 (1) | |
Системный рендер | YV12 | CPU: 0-4 (2), GPU: 1-2 (1.5) | |
Системный рендер | RGB32HQ | CPU: 1-3 (2), GPU: 0 (0) | |
Overlay Mixer | RGB32HQ | CPU: 0-4 (1.5), GPU: 0 (0) | |
Overlay Mixer | RGB32 | CPU: 0-2 (0.7), GPU: 0 (0) |
Таким образом, для минимизации нагрузки на ЦП следует пользоваться EVR+YV12 или Overlay Mixer+RGB32. Для разгрузки видеокарты можно использовать Системный рендер + RGB32 (можно с высоким качеством преобразования) или же Overlay Mixer. Но следует помнить, что аппаратное декодирование (DXVA) работает только с рендером EVR.
Полезные ссылки:
Сайт проекта Smooth Video Pack
Сайт Media Player Classic HomeCinema
Последняя версия ffdshow
ReClock - SlySoft Forum
Домашняя страница AviSynth
Информация от спонсора
Агенство Бизнеса ВАША ФИРМА: помощь в продаже и покупке бизнеса. Здесь вы можете ознакомиться с предложениями по покупке и продаже бизнеса в Санкт-Петербурге, а также оставить свою заявку.