Казалось бы, такая обыденная задача, как воспроизведение видео не должна вызывать никаких проблем, но по прежнему это не совсем так.
Т.к. речь идет о HD-видео, то потребуется высокая производительность декодера. Например, если декодериуем на CPU, то на потоках 30-35 MBps на Intel Core2 Duo E8500 3.2 GHz уже начинают выпадать кадры. Процессор довольно быстрый, разница в производительности по сравнению с ядром Sandy Bridge на той-же частоте будет порядка 20%. Качественно пережатый full-HD фильм может создать проблемы, не говоря уж об оригинальных потоках с Blu-ray, там поток может достигать 45 MBps. Обладатели ноутбуков обычно имеют процессоры послабее, да и настольные системы не у всех с мощными CPU. Еще один случай, где CPU становится узким местом – это deinterlacing. Deintrlacing необходим при просмотре потоков спутниковых HD каналов, потоки там с разумным bitrate (обычно 10-15 MBps), но программный deintarlace съедает все остатки ресурсов. Причем качественный deinterlace, без замыливания и с сохранением fps, тяжелы для CPU. Единственный выход – использовать аппаратное декодирование, которое предлагают современные GPU. Про видео со спутниковых каналов следует отметить, что они бывают частично поврежденными, т.к. прием не всегда идеален, поэтому важно, чтобы плеер стабильно переваривал такие “срывы” потока.
В Windows аппаратное декодирование реализовано через API DXVA. Все современные GPU AMD и Nvidia реализуют DXVA отдельным физическим модулем (AMD – UVD, Nvidia – PureVideo). Эти модули сделаны специально для этой задачи, работают они практически идентично как в видеокартах начального так и старшего класса. У Intel-а ситуация сложнее. Только в ядрах CPU Sandy Bridge Intel добавил модуль Intel Clear Video HD. Предыдущие поколения графики Intel, формально выполняли ускорение, но реализация была с использованием шейдеров GPU, чего хватало только для 720p видео и как мне кажется было сильно неэффективно в смысле затрат энергии. По этой причине обладатели большинства ноутбуков с графикой Intel не могут себе позволить просмотр full-HD видео. Загрузка CPU при использовании DXVA составляет несколько процентов, при этом DXVA обеспечивает высокое качество deinterlace. Производители дают дополнительные настройки декодирования, например сглаживание движения в 24/25 fps фильмах через генерацию промежуточных кадров (подобная функциональность имеется в телевизорах), устранение шумов и пр.
На практике нередко встречаются потоки выходящие за рамки спецификаций Blu-ray и с этим были проблемы у DXVA декодеров. Первой здесь оказалась AMD, которая обеспечила поддержку профиля H.264 L5.1. Не знаю как с этим у Nvidia и Intel, поэтому пока рекомендую решения AMD.
Есть еще одно новшество — профиль H.264 High 10 Profile (Hi10P). Hi10P преподносят (хабр) как следующий шаг в развитии сжатия видео. Выяснилось, что если внутри кодека использовать 10-битную дискретизацию сигнала, то можно обеспечить 20-40% (?!) прироста сжатия при сохранении качества. Главный плюс – улучшение передачи градиентов, что видно даже при выводе на экраны с обычной глубиной цвета (8-бит на канал). Известно, что анимешники находятся в авангарде использования новинок кодирования видео и вот появились группы релизеров, которые выкладывают видео закодированное в этом профиле. Этот профиль не понимает большинство кодеков и уж тем более аппаратные плееры и DXVA реализации. Декодирование проходит только софтовыми декодерами, которые при этом еще сильнее нагружают CPU. Не все пользователи имеют топовые процессоры и это вызывает негодование публики, но не останавливает авторов релизов, которые иногда не дают альтернатив Hi10P. Но все это носит характер локальной проблемы в среде некоторых анимешных релизеров.
Замечание по поводу внешних кодеков H.264. Ранее я пытался использовать дополнительные внешние кодеки Divx H.264 DXVA и PowerDVD8 H.264 DXVA, теперь от них отказался. PowerDVD8 H.264 – это старая версия, которая не развивается и имеет проблемы при работе в Windows 7, а нв Divx H.264 я неоднократно замечал проблемы с неравномерностью воспроизведения. В Windows 7 есть встроенный кодек Microsoft H.264 с поддержкой DXVA, который оказался очень стабильным и я его давно использую в качестве базового в Media Player Classic Home Cinema.
При выборе плеера руководствуюсь следующими принципами: не замусоривать систему кодеками; поддержка DXVA; всеядность – разные контейнеры и кодеки; по возможности поддержка Hi10P.
VLC Player Плюсы
Минусы
|
|
Media Player Classic Home Cinema Плюсы
|
|
Windows Media Player 12 (часть Windows 7) Плюсы
Минусы
|
|
XBMC Это родитель двух других мощных медиа центров – boxee и mediaportal, они в разное время отпочковались от XBMC. Плюсы
Минусы
|
|
SMPlayer Плюсы
Минусы
|
|
UMPlayer Родственник SMPlayer, интерфейсы очень близки. Плюсы
Минусы
|
Вывод из моей практики: номер 1 – это MPC-HC, если проблемы – использую VLC, спутниковые потоки иногда с меньшими проблемами идут в WMP.
PS Есть конечно еще и другие плееры, я перечислил то, чего сам касался и использую.