Ты прав.Это потому, что каждый браузер поддерживает разные «кодеки».Первоначально в HTML5 должен был быть один кодек, но производители браузеров не могли договориться о том, какой кодек (обремененный патентом или открытый исходный код) так, чтобы это требование было отброшено.
Например, для видео, IE иПоддержка Safari H264 (MP4), Chrome, FF и Opera WebM / Ogg.Чтобы обеспечить его работу во всех браузерах, вы можете указать несколько исходных элементов и кодировать видео три раза.Сначала Mp4, потом WebM или Ogg (браузеры, поддерживающие видео, будут пробовать каждый элемент источника, пока не найдут тот, который смогут воспроизвести. Примечание: в настоящее время на iPad есть «ошибка», при которой он может воспроизводить только первый элемент источника)
Вы можете даже встроить объект Flash для вашего запасного варианта, чтобы ваше видео также работало в более старых версиях IE (<9).В итоге вы получите что-то вроде этого: </p>
<!—Multiple videos with alternate Flash content-->
<video controls>
<source src="rocpoc.mp4">
<source src="rocpoc.ogv">
<object data="videoplayer.swf" type="application/x-shockwave-flash">
<param name="movie" value="rocpoc.swf"/>
</object>
A movie by Rocky Lubbers
</video>
Если вы хотите показать ссылку на файл, если браузер не может воспроизвести файл MP3, вы можете использовать немного кода JavaScript, чтобы проверить,браузер может обрабатывать формат MP3 и отображать вместо видео ссылку на файл.Для вызова метода JavaScript используется canPlayType.
//Checking for browser support
//canPlayType returns null, maybe, or probably (the best)
//You can check if they are supported in navigator.plugins
var support = videoElement.canPlayType('video/some-format;codecs="some-codec"');
В качестве альтернативы (я думаю, что только для видео) вы можете использовать такие службы, как vid.ly (http://m.vid.ly/user/)), которые обслуживают нужные файлы из облака.