Хитрости HD-видео
Видео высокого разрешения становится всё более популярным. Уже появились пользователи, которые брезгуют качать не только DivX, но и привычные DVD. Однако работа с HD-видео, или, как его в народе чаще называют — HDTV-видео, сопряжена с некоторыми проблемами.
Самая главная среди них — весьма заметные тормоза при просмотре даже на достаточно современных системах, не говоря уж о ноутбуках. Но дело тут не столько в мощности нынешних компьютеров — уж её-то хватает с избытком, сколько в правильной конфигурации установленных в системе декодеров.
На сегодня наибольшее распространение получили несколько форматов HDTV-фильмов:
- MPEG2;
- контейнер MKV с видео, закодированным в формате H.264;
- контейнер MP4 с видео, закодированным в формате H.264;
- контейнер AVI с видео, закодированным в формате XviD.
Встречаются ещё WMV- и MOV-файлы, но это в основном трейлеры и небольшие документальные ролики, кино на FTP-серверах городских локалок в этом формате — редкость. Впрочем, даже если вам попадётся полноценный фильм в одном из этих форматов, то большого выбора при их просмотре всё равно не будет — для WMV используется только «родной» декодер от Microsoft, а для MOV — либо QuickTime, либо Alternative QuickTime из состава K-Lite Mega Codec Pack [1]. C более же популярными форматами вариантов больше.
Дело в том, что в системе может быть установлено несколько сплиттеров (компонентов, предназначенных для выделения видео, звука и субтитров из общего контейнера) и декодеров для одного и того же типа видеофайла. Попробуйте, например, в программе GSpot, входящей в состав K-Lite Mega Codeс Pack, открыть один из HDTV-фильмов и нажать кнопку 1 в разделе Proposed Codec Solutions and Test — увидите, что возможных способов декодирования несколько. В принципе, удаляя лишние декодеры или меняя их приоритет (merit в GSpot) можно выяснить, какой из вариантов менее всего грузит процессор. Но занятие это довольно нудное. Поэтому, дабы не заморачиваться самим, попробуйте воспользоваться нашими рекомендациями, которые довольно близки к оптимальным.
Выбор декодеров
Итак, для комфортного просмотра MPEG2 очень неплохо подходит сочетание Gabest MPEG Splitter и Gabest MPEG Decoder из K-Lite Mega Codeс Pack. Попробуйте открыть и отрендерить в программе GraphEdit (опять же из K-Lite Mega Codeс Pack) HDTV-фильм, сделанный в этом формате. Если программа покажет, что используются другие декодеры, удалите K-Lite Mega Codeс Pack и установите его заново, выбрав на этот раз Gabest MPEG Splitter и Gabest MPEG Decoder. Если они всё равно не будут использоваться, то откройте GSpot и попробуйте в меню этой программы System → List Codecs and other Filters повысить Merit (Set Filter Merit в контекстном меню) для Gabest MPEG Splitter и Gabest MPEG Decoder и одновременно понизить его для тех декодеров, которые используются в настоящий момент. После того, как вы это сделаете, все плееры, которые используют системные настройки, станут работать с Gabest MPEG Splitter и Gabest MPEG Decoder. Плееры типа WinDVD и PowerDVD всегда работают с собственными декодерами, а потому их эта настройка не затронет.
Для фильмов, использующих кодек H.264, нужны уже другие компоненты. Практика показывает, что наименьшую «тормознутость» обеспечивает сочетание Haali Media Splitter и CoreAVC H264 Video Decoder Pro. Первый входит в состав все того же K-Lite Mega Codeс Pack и понимает самые разные типы контейнеров, а второй компонент хоть и платный, но его легко найти в интернете. Аналогичным образом установите их в своей системе, следуя инструкциям разработчика и проконтролируйте их работу, открыв соответствующий по формату видеофайл в GraphEdit. Заметно возросшее после такой операции быстродействие на mkv-файлах вас порадует.
И, наконец, XviD-фильмы. Здесь есть смысл попробовать два варианта. Во-первых, обычный декодер DivX. Главное, в настройках декодера укажите два параметра: Support Decoding of Generiс MPEG-4 Video и Automatic Deblocking. Первый позволяет проигрывать XviD, а второй значительно снижает общую тормознутость декодера. Второй вариант, к которому можно прибегнуть, если не устроит производительность декодера DivX — переход на FFDshow [2], популярный универсальный декодер, имеющий весьма богатые настройки, что при некотором старании позволяет получить оптимальный баланс производительность/качество. Лично я использую только оригинальный DivX и особых проблем не наблюдаю. Так что экспериментировать с FFDshow есть смысл, только если вы действительно не удовлетворены скоростью воспроизведения XviD-видео.
Выбор плеера
Второй важный шаг для достижения максимальной производительности системы — выбор правильного проигрывателя, многие сегодняшние плееры достаточно хорошо оптимизированы и позволяют смотреть HDTV. Теперь же, когда вы ещё и установили наиболее быстродействующие декодеры, ситуация должна серьёзно улучшиться. Но попробуйте, например, сравнить качество воспроизведения Windows Media Player и The Core Media Player [3] — разница будет видна невооружённым взглядом. Последний плеер особенно хорош именно для работы с HDTV. Тормозов не будет!
Но The Core Media Player недостаточно. Дело в том, что The Core Media Player использует системные сплиттеры и декодеры, а есть плеер, в который они уже встроены и при этом он имеет превосходные параметры производительности — VLC Media Player. HD-видео — вещь капризная, и в том случае, если The Core Media Player или другой полюбившийся вам плеер откажется нормально работать, выручить может VLC. Скажу, например, что при использовании этого плеера вполне можно провернуть такой трюк. Если звуковая дорожка идёт отдельным файлом, то вполне реально открыть её ещё в одном плеере, например, в Winamp, да ещё и обработать процессором DFX. В результате видео будет крутиться в VLC, а звук будет идти из Winamp — и без тормозов! Кстати, для декодирования AC3-звука отлично подходит AC3Filter [4] — не забудьте его отметить при установке K-Lite Mega Codec Pack.
Проблемы хранения
С просмотром разобрались, но есть ещё одно большое неудобство — фильмы высокого разрешения, как правило, имеют и приличный объём, выходящий за рамки стандартной DVD-болванки. Как их хранить? На винчестере? Покупать дорогие двухслойные болванки? Если оба эти варианта вас не очень прельщают, то есть способы скидывать большие HDTV-файлы на обычные болванки, предварительно разрезав их на два куска. Главное, чтобы разрезание это происходило без рекомпрессии и потери качества. В данном случае проще всего обстоит дело с MKV-контейнерами. С помощью пакета MKVToolNix [5] любой MKV-файл можно превратить в два, заданного размера. Просто запускайте mkvmerge GUI (в пакет входит две утилиты, вторая — mkvinfo), добавляйте нужный MKV-файл, в разделе Global отмечайте Enable Splitting (удобно заранее выяснить, на какой минуте и секунде по сюжету удобнее всего сделать разрез) и жмите Start Muxing. Причём, если отметить опцию Link Files, то плеер даже не заметит, что у вас два файла, а не один. Если они будут при просмотре скопированы в одну папку, то переход от первого ко второму будет автоматическим.
Хуже обстоят дела с AVI-файлами. Имеется неплохая утилита для разрезки DivX- файлов без перекодирования — Boilsoft AVI-MPEG-RM-WMV Splitter [6], но для её работы с XviD-файлами придётся устанавливать этот, довольно глючный кодек — при наличии только DivX программа работать отказывается. Скорее всего, не сработает она и для H.264. Но если уж попался большой файл в формате AVI, MPEG, RM или WMV, то начать стоит именно с этой программы, поскольку среди аналогичных разрезалок это едва ли не единственная, умеющая работать без перекодирования. Не сработала — пробуйте разбить файл в бесплатном редакторе VirtualDub [7] — подробнейших инструкций про работе с ним в интернете навалом. Но вообще говоря, всё тот же MKVToolNix вполне неплохо разрезает файлы и других форматов — просто в результате вы получите не два, скажем, MPEG-файла, а два MKV — изменится тип контейнера. Недостаток такого подхода, пожалуй, только один — бытовой плеер может не понять MKV. Впрочем, пока слишком мало стационарных проигрывателей, способных воспринимать HD-видео вообще, а для ПК формат контейнера роли не играет.
Проблемы с предпросмотром
Если в результате экспериментов с кодеками у вас начнет регулярно «вываливаться» Проводник при наведении курсора мыши на видеофайл, знайте, виноват механизм предпросмотра видеофайлов, благодаря которому в левой части окна Проводника выводится первый (а потому — совершенно бесполезный, так как обычно это всего лишь черное поле) кадр фильма, а также отображается основная информация о видео. В этом случае сделайте следующее. Удалите K-Lite Mega Codec Pack, перезагрузите ПК и снова установите этот набор кодеков, выбрав следующие его компоненты (подразумеваем, что у вас отдельно установлены Quick Time и Real Player):
- Players
- Media Player Classic (показывает порой то, что другие не могут)
- DirectShow video filters
- On2 VP6
- On2 VP7
- MPEG1/MPEG2/DVD — Gabest
- VFW Video Codecs
- x264
- On2 VP6
- On2 VP7
- Indeo (все версии)
- Intel I263
- Huffyuv
- I420
- YV12
- DirectShow audio filters
- MP3
- AC3/DTS/LPCM (DVD audio)
- MP1/MP2 — AC3Filter
- Vorbis
- AAC
- MusePack
- Monkey's Audio
- WavPack
- FLAC
- Voxware Metasound
- ACM Audio Codecs
- MP3 (Fraunhofer)
- MP3 (LAME)
- AC3
- Vorbis
- Divx ;) Audio
- DirectShow source filters
- AVI Splitter — Microsoft
- MP4 Splitter — Haali
- Ogg Splitter — Haali
- FLV Splitter
- MPEG TS Splitter
- MPEG PS Splitter — Haali
- AAC Parser
- DirectShow subtitle filter
- DirectVobSub 2.37
- Audio encoding tools
- LAME CLI and DLL
- LameDropXPd MP3 Encoder
- OggDropXPd Ogg Vorbis Encoder
- Tools
- GSpot Codec Information Appliance
- Graph Edit
- Compatibility
- Detect broken codecs
- Detect broken Direct Show filters
Возможно, это и не идеальный вариант компоновки K-Lite Mega Codec Pack, но я его всегда использую и пока каких-либо проблем, связанных с выбором именно этих компонентов, не заметил.
После переустановки K-Lite Mega Codec Pack и перезагрузки ПК переустановите свежий DivX (не лишней будет ещё и переустановка Windows Media Player и DirectX), после чего снова попробуйте навести курсор на тот файл, который приводил к сбою explorer.exe. Если сбой повторяется, откройте этот видеофайл в GraphEdit и посмотрите, какие сплиттеры и декодеры используются. Если, например, вместо ожидаемого DivX Decoder Filter вы увидите что-то иное (тот же XviD), или вместо MPEG Layer-3 Decoder будет что-то вроде InterVideo Audio Decoder, то откройте GSpot, выберите System → List Codecs and other filters, найдите нужный декодер и, выбрав в контекстном меню команду Set Filter Merit, повысьте ему приоритет. Аналогичным образом приоритет нужно понизить нежелательному или сбойному декодеру. После этого всё должно заработать нормально.
Если же и это не поможет, то с помощью любого приличного твикера просто отключите предпросмотр видеофайлов в окне Проводника. Вручную это можно сделать, выполнив команду regsvr32 /u shmedia.dll
.
Ещё раз о плеерах
Видеоплеер — странная вещь. Лично у меня их установлено штук десять. Если среди любого другого класса программ практически всегда можно выбрать лучшую или наиболее подходящую для вас лично, то с видеоплеерами такой номер почему-то не проходит. Дефрагментаторов, например, тоже много, но никому не придёт в голову ставить одновременно Diskeeper и, скажем, Perfect Disk. Видеоплеер же часто выбирается в зависимости от типа файла. MOV смотрим через «родной» для него Quick Time, Real Video — через Real Player, обычный DivX — через удобный BSplayer или, если хочется эффекта, подобного Trimension — через Crystal Player, для DVD запускаем крутой WinDVD. Если нет времени ждать загрузки «тяжелого» плеера, используем VideoLAN, а если файл повреждён, пытаемся его открыть во всеядном Classic Media Player или даже в AVI Preview, если это вообще лишь кусок файла. И, наконец, HDTV смотрим в Core Media Player. Плюс имеем на диске нагрузку в виде редко используемого Windows Media Player и Winamp, который видео тоже понимает. Такие вот чудеса.