2010-05-03 79 views
9

我运行一个网站,其中包含约700个参考视频(并且不,它不是色情内容 - 让您的主意摆脱阴沟:-))。HTML的H.264/FLV最佳实践

视频目前采用FLV格式。我们使用JWPlayer来渲染这些视频。 IIS6托管。一切正常。据我所知,H.264(不是FLV,可能不是OGG)是新兴的首选HTML5视频标准。今天,iPad真的只尊重H.264或YouTube。据推测,很多更重要的浏览器都会遵循苹果的标准,只尊重HTML5标签。

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

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

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

+0

更新 - 它看起来像JWPlayer团队深知此问题,并正在开发一个HTML5更新:HTTP:// WWW .longtailvideo.com/support/forums/jw-player/feature-suggestions/10383/html5-version-of-jw-player仍然会喜欢任何建议。 JWPlayer确实是一个Flash应用程序,我不太了解他们的HTML5方法,但看起来他们正在尝试处理正常的故障转移。 – 2010-05-03 03:45:23

+0

专利侵权诉讼的H.264(MPEG4)公司 http://bit.ly/9vNGZW – Rob 2010-05-03 11:14:11

回答

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> 
+3

非常有趣 - 这些格式的争斗似乎决定让我们的网站运营商/发行商使用相同的多种编码的硬盘空间视频... :-) – 2010-05-03 04:01:53

+0

Flash可以播放H.264视频,所以我不确定这是多少问题,唯一额外的内容是swf视频播放器,希望它不应该太大。 – quoo 2010-05-03 17:29:13

4

我不知道这是否是一个答案,或只是一个评论,但我真的需要去挑战原题的假设之一:“据推测,很快许多更重要的浏览器将仿效苹果的领先地位和只尊重HTML5标签。“

这只是没有任何我能看到的备份。

  1. 所有的桌面浏览器都支持插件,包括Flash。大多数非Apple智能手机/平板电脑支持Flash,支持插件或支持其他浏览器。
  2. 所有的浏览器,甚至是iPhone OS的,都支持对象标签,并且至少试图用它做一些事情。他们甚至支持像滚动字幕和字体标签的东西!对象标签将会存在很长时间,并且据我所知甚至是HTML5的一部分。
  3. Firefox,可能是各种IE版本之后的#2浏览器,目前不支持H.264。
  4. 微软已经明确表示,他们不喜欢Flash,并希望人们使用Silverlight,支持我认为对象标签留在这里的感觉。他们模糊地致力于仅在IE9中支持本地HTML5视频标签。同时,他们将Flash插件作为Vista和Win7操作系统的一部分。

无论如何,要真正了解这个问题:“我的问题是关于容器本身 - 也就是为所有用户规划优雅的过渡。渲染这些视频的最佳做法建议是什么“

HTML5视频标签支持命名多个来源,因此您可以将原生H.264视频作为”主要“视频并将Flash播放器视为”后备“视频如果使用的浏览器不具备直H.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> 
+0

非常感谢您抽出时间 - 我并没有真正关注WC3/HTML5/H.264的内容,并欣赏上述背景。 – 2010-05-03 04:00:42

+0

上面的解决方案我认为对我们的需求来说是一个很好的解决方案。没有意识到新的

+0

我很确定Flash不包含在Windows中 - 它总是一个单独的下载。但IE处理ActiveX的方式使它*几乎*无缝(点击黄色信息栏,“安装组件”,它的工作原理) – 2010-05-03 04:05:31

1

在每个浏览器的视频编解码器支持是这样的:

  • 火狐:奥格Theora格式/ Vorbis格式
  • 歌剧院:奥格Theora格式/ Vorbis格式
  • 铬:奥格Theora格式/ Vorbis和H.264
  • Safari中:H.264(奥格的Theora/Vorbis的安装XiphQT组件)
  • IE9:H.264

我也会推荐使用Ogg Theora替代品。我知道,如果你关心磁盘空间,这并不是一个好主意,但是要感谢专利使用费和对专利巨魔的恐惧,这就是我们所面临的困境。

1

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

3

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