Почему браузеры имеют свои собственные кодеки вместо поддержки всех уже существующих в операционной системе? - PullRequest
0 голосов
/ 07 марта 2012

Я имею в виду, что все видеоприложения поддерживают любой кодек, который вы уже установили в своей операционной системе. Почему браузеры должны вести себя по-разному в своих тегах и не поддерживают те кодеки, которые уже есть в ОС?

Я думаю, что браузеры могут иметь встроенную поддержку некоторых кодеков (которые они хотят работать везде), но могут также поддерживать те из ОС. Не так ли? Если так, то почему? Спасибо

Я просто проверял исходный код Google Chrome (или лучше сказать Chromium), и он использует библиотеку FFmpeg для воспроизведения видео. Та же самая библиотека, которая используется почти всеми видео приложениями на linux и может воспроизводить все образные формальные изображения. Так что, кажется, было бы легко поддерживать любой кодек, но Google перечислил только некоторые из них: см. Функцию VideoCodecToCodecID в http://src.chromium.org/svn/trunk/src/media/ffmpeg/ffmpeg_common.cc

Ответы [ 2 ]

1 голос
/ 10 марта 2012

Поскольку разные операционные системы поддерживают совершенно разные кодеки, для чего требуется, чтобы браузеры предоставили свои собственные реализации.

В качестве примера рассмотрим Windows XP. У него ужасная поддержка кодеков. По сути, он поддерживает WMV9 / VC-1 и разбрызгивает дерьмовые кодеки, которые никого не интересуют. Он не поддерживал MPEG2, MPEG4, H.264 и т. Д., Что объясняет, почему миллионы из нас не могли понять, как, черт возьми, заставить его воспроизводить DVD. И причина этого в том, что MSFT не хотела платить роялти Некоторые счетчики бобов явно считали, что разумнее потратить деньги на разработку проприетарного кодека (отсюда и VC-1), а не платить лицензионные отчисления MPEG-LA. Я уверен, что математика имела смысл, но помимо этого она была идиотской.

Сравните это с OSX: Apple лицензировала MPEG2 (и более позднюю версию H.264), чтобы их клиентам было проще воспроизводить этот видеоконтент. Это стоило им денег, но никто не сходил с ума, пытаясь понять, как воспроизводить DVD.

Так что у нас остается FireFox: если бы они позволяли базовой ОС определять, какие кодеки были поддержаны, то у них была бы совершенно другая поддержка в зависимости от платформы, на которой был установлен браузер. И это просто дерьмовый пользовательский опыт. Поэтому большинство браузеров начали поставлять некоторые базовые встроенные средства поддержки кодеков.

К сожалению, это отстой. Потому что браузеры не могут решить, будут ли они поддерживать H.264 или WebM, что оставит программистов в дерьме без весла. Ну что ж. Некоторые вещи никогда не меняются.

0 голосов
/ 07 марта 2012

Я полагаю, что это связано с некоторыми запатентованными алгоритмами кодирования и обязывает производителей браузеров платить лицензионные отчисления за их использование.

Причина, по которой вы можете использовать все кодеки своей системы в своем устаревшем теге , заключается в том, что вы загружаете компонент ActiveX из Windows Media Player, который может использовать все кодеки. Производитель браузеров (Mozilla, Google) не платит никаких лицензионных платежей, поскольку они могут использовать любой ActiveX, а не только WMP.

Более того, есть такие противные компании, как Apple, которые не поддерживают формат X, Y, Z без лицензионных платежей, потому что они не хотят менять существующую кодовую базу.

3 основных формата для HTML5 - Ogg, H.264 и WebM. К сожалению, нет единого формата, который работал бы во всех основных браузерах (MSIE, Firefox, Chrome, Safari), поэтому решение:

  • производить видео во всех трех форматах
  • используйте элемент <source> видео HTML5 для ввода всех трех в элемент hTML5
  • пусть браузер сам решит, какой из них использовать. Это происходит автоматически.

Вот пример:

<video id="intro">
    <source src="intro.ogm" />
    <source src="intro.webm" />
    <source src="intro.mkv" />
</video>

Если вы не можете экспортировать видео в эти форматы, я думаю, вам следует придерживаться хорошей Flash: P.

...