HTML的H.264 / FLV最佳实践

时间:2010-05-03 03:27:29

标签: html5 flv h.264 html5-video

我经营一个网站,其中包含大约700个参考视频(不,它不是色情片 - 让你的思绪脱离阴沟:-))。

视频目前采用FLV格式。我们使用JWPlayer渲染这些视频。 IIS6托管。一切正常。

据我了解,H.264(不是FLV,可能不是OGG)是新兴的首选HTML5视频标准。今天,iPad真的只尊重H.264或YouTube。据推测,很快更多重要的浏览器将遵循Apple的主导并仅尊重HTML5标签。

好的,所以我想我可以弄清楚如何将现有视频转换为适当的H.264格式。有各种可用的工具,包括ffmpeg.exe。我还没有尝试过,但我不认为在摆弄编解码器设置后会出现问题。

我的问题更多的是关于容器本身 - 也就是说,计划所有用户的优雅过渡。渲染这些视频的最佳做法建议是什么?如果我只是使用HTML5标签,那么可能任何尚未支持HTML5的浏览器都不会看到这些视频。如果我通过JWPlayer或其他播放器以Flash格式呈现它们,那么它们将无法在iPad上播放。我是否必须在此处进行丑陋的UserAgent检测以确定要呈现的内容?

我知道JWPlayer支持H.264媒体,但播放器本身不是Flash组件,因此无法在iPad上播放?对不起,如果我不清楚,但我正在抓住一个优雅的过渡计划,这将适用于当前的浏览器,iPad和即将推出的HTML5浪潮。我不是视频专家,所以任何建议都会受到欢迎,谢谢。

6 个答案:

答案 0 :(得分:8)

请注意Firefox不支持带有视频标签的H.264,因此如果您想要优雅的后备,那么您应该像下面那样呈现您的视频标签,并拥有该视频的OGG版本。

       <video controls id="video" width="320" height="240" preload autobuffer >
            <source src="http://mycdn.com/videos/vid1.ogg" type="video/ogg" />
            <source src="http://mycdn.com/videos/vid1.mp4" type="video/mp4" />
            <!--RENDERED ON BROWSERS WITH NO HTML5 VIDEO SUPPORT-->
            <object width="320" height="240">
            <param name="movie" value="myplayer.swf">
            <embed src="myplayer.swf" width="550" height="400">
            </embed>
            </object>
             <!---->
        </video>

答案 1 :(得分:4)

我不确定这是答案还是仅仅是评论,但我真的需要挑战原始问题的一个假设:“大概很快,许多更重要的浏览器将遵循Apple的领先优势并仅尊重HTML5标签“。

这只是我无法看到的任何内容。

  1. 所有桌面浏览器都支持插件,包括Flash。大多数非Apple智能手机/平板电脑都支持Flash,支持abitrary插件或支持其他浏览器。
  2. 所有浏览器,甚至是iPhone OS,都支持对象标记,至少尝试使用它。他们甚至支持诸如字幕和字体标签之类的东西!对象标签将会存在很长时间,据我所知,甚至是HTML5的一部分。
  3. Firefox,可能是各种IE版本之后的#2浏览器,目前还不支持H.264。
  4. 微软已明确表示他们不喜欢Flash,并希望人们使用Silverlight,这让我感觉对象标签就在这里。他们模糊地致力于仅在IE9中支持原生HTML5视频标签。与此同时,他们将Flash插件作为Vista和Win7上操作系统的一部分发布。
  5. 无论如何,要了解问题的真正含义:“我的问题更多是关于容器本身 - 也就是说,为所有用户规划优雅的过渡。渲染这些视频的最佳实践建议是什么”

    HTML5视频标签支持命名多个源,因此如果浏览器不支持直接H,您可以将原生H.264视频作为“主要”和Flash播放器作为“后备”使用.264视频流。

    <video>
    <source src="../videos/primary.mp4" type="video/mp4" />
    <object>
        <param name="movie" value="fallbackplayer.swf">
        <embed src="../videos/fallbackplayer.swf">
        </embed>
    </object>
    </video>
    

答案 2 :(得分:3)

建议您阅读video for everybody以获得良好的跨浏览器实施。您也可以使用H.264 for Flash后备,但Lachlan表示您也应该使用Ogg进行渲染,以实现完全跨浏览器兼容性。

答案 3 :(得分:1)

每个浏览器中对视频编解码器的支持如下:

  • Firefox:Ogg Theora / Vorbis
  • 歌剧:Ogg Theora / Vorbis
  • Chrome:Ogg Theora / Vorbis和h.264
  • Safari:h.264(安装了XiphQT组件的Ogg Theora / Vorbis)
  • IE9:h.264

我还建议您使用Ogg Theora替代品。我知道你不关心磁盘空间,但是由于专利使用费和对专利巨魔的恐惧,这是我们一直坚持的情况。

答案 4 :(得分:1)

不直接回答您的问题,但doom9.org有很多关于视频转换/处理的精彩教程。可能对你有用

答案 5 :(得分:0)

由于Chrome实际上从未真正拔出插件以获得h264支持,因此Firefox也保留了该插件,并计划更好地支持该格式。

https://developer.mozilla.org/en-US/docs/HTML/Supported_media_formats (大约在页面的三分之一处)