пятница, 17 июля 2009 г.

Как заставить CoreAVC декодировать H.264 вместо FFDShow?

Есть на свете хорошая библиотека libavcodec от команды FFmpeg team (http://ffmpeg.org), на которой основан набор DirectShow-кодеков FFDShow. В этот же набор входит кодек x264 для обработки формата H.264, но в плане быстроты декодирования он не самый лучший. Многие ставят декодер CoreAVC - самый быстрый декодер H.264.
Сейчас я опишу, как заставить систему запускать именно CoreAVC вместо x.264 из FFDShow.


Буду считать, что на компьютере установлен набор кодеков K-Lite.
Вызываем окно настройки видео-кодеков FFDShow (Пуск > Все программы > K-Lite Codec Pack > Configuration > ffdshow video decoder) или с помощью поиска находим файл "ffdshow.ax" и выполняем команду:

rundll32.exe путь_до_ffdshow.ax\ffdshow.ax,configure
В любом случае появится следующее окно:


Находим в списке строку со значением поля Format "H.264/AVC" и устанавливаем поле Decoder в значение "disabled". Теперь нажимаем кнопку "OK" и пытаемся воспроизвести какой-нибудь видео-файл, который закодирован в H.264, если в области уведомлений воявился значок CoreAVC, то всё сделано правильно.