2012-03-06 1 views
0

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

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

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

+0

Возможно, вы путаетесь между «кодеком» и «плагином» (программным модулем, который позволяет браузеру воспроизводить медиа)? Это не вопрос программирования. – Kaz

+0

Так было бы справедливо сказать, что вопрос в том, почему данный плагин не поддерживает тот же набор кодеков, что и приложение медиаплеера. – Kaz

+0

Я имею в виду поддержку в теге

ответ

0

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

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

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

Основными форматами 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> 

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

+0

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

+0

Как только я добавил к своему оригинальному вопросу, Google Chrome использует библиотеку, которая поддерживает все эти кодеки, но Chrome имеет белый список только некоторых из них :(Похоже, что у них есть кодеки, но они отключены. –

1

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

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

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

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

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

Смежные вопросы