【问题标题】:Javascript manipulation of video tag视频标签的Javascript操作
【发布时间】:2013-05-03 11:45:16
【问题描述】:

我正在尝试在 iPhone 上播放视频,该视频编码为 MP4,但扩展名和 mime 类型错误(无法在服务器上更改)。

如果我使用类似的东西:

<video width="320" height="240" controls>
  <source src="internal.mp4" type="video/mp4">
  <Your browser does not support the video tag>
<video>

我可以使用 Javascript / jQuery 让视频播放器认为它播放的是一个名为 internal.mp4 的文件,但实际上是在播放类似

http://192.168.0.1/video.tjc

【问题讨论】:

    标签: javascript jquery iphone html video


    【解决方案1】:

    源标签的属性type 用于定义MIME 类型,意味着您的浏览器知道会发生什么,但这并不是真正的问题。 MP4 是一种 MIME 类型,但它不会告诉您的浏览器视频是用哪个编解码器压缩的。该文件应该这样做,但在您的情况下,它似乎混淆了。

    HTML5 中有一个 Codec 属性,定义如下: http://www.rfc-editor.org/rfc/rfc4281.txt

    您真的应该阅读这篇文章,因为它是网络视频的最佳介绍: http://diveintohtml5.info/video.html

    您可以在此处找到所有编解码器类型参数的完整列表: http://wiki.whatwg.org/wiki/Video_type_parameters

    【讨论】:

    • 看起来不错,感谢您提供的信息,但我认为 mime 类型是由 Web 服务器提供的,并且视频 src 中的 mime 类型被覆盖,所以没有任何效果
    • @user2302694 对什么有影响?视频无法播放。好吧,如果您不知道如何(作为浏览器说话),那是有道理的。你可以在这里更深入地挖掘:whatwg.org/specs/web-apps/current-work/multipage/…
    • 嗨,约翰看过文件,他们暗示就像你说的我应该能够强制使用 mime 类型,我有点卡住了,我已经确定视频 mime 类型是“aac -lc-sbr-ps" 但不知道如何转换成这种格式 "avc1.42E01E, mp4a.40.2" - 任何想法都欢呼
    • @user2302694 我认为你走错路了。 AAC 甚至不受所有浏览器的支持,并且已在 Chrome 中删除。你真的应该清理你的视频源。您可以使用 VLC 对视频流进行转码,如下所述:videolan.org/doc/videolan-howto/en/ch09.html
    • 阅读这个:diveintohtml5.info/video.html 它简直就是最好的网络视频介绍。
    【解决方案2】:

    尝试这样做:

    $('#divVideo video source').attr('src', videoFile);
    

    然后:

    $("#divVideo video")[0].load();
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-05
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多