如何在 chrome 中使用 video.js 播放 flash(.flv) 视频

Posted

技术标签:

【中文标题】如何在 chrome 中使用 video.js 播放 flash(.flv) 视频【英文标题】:how to play flash(.flv) video using video.js in chrome 【发布时间】:2015-12-11 07:57:49 【问题描述】:

我正在使用 video.js 播放 flash(.flv) 视频。但是当我按下播放按钮时它不播放视频? 我用过"techorder:"["flash","html"]。但这并没有什么不同。videojs 中是否有用于 Flash 视频的插件?如何在video.js 中播放 .flv 视频?

【问题讨论】:

【参考方案1】:

您应该使用 flv.js,这是一个用纯 javascript 编写的 HTML5 FLV 播放器。不需要 Flash。

https://github.com/Bilibili/flv.js

您可以制作一个源处理程序以将flv.jsvideo.js 集成

【讨论】:

【参考方案2】:

video.js 可以在 Flash 技术中播放 FLV。

如果您是自托管 video.js 而不是使用 CDN,请确保您的 swf 的路径正确,例如

<script>
  videojs.options.flash.swf = "http://example.com/path/to/video-js.swf"
</script>

确保在源标签中使用正确的video/x-flv mime 类型:

<source src="http://example.com/video.flv" type='video/x-flv'>

托管 FLV 的服务器还必须在“Content-Type”标头中返回正确的 mime 类型。

示例:http://output.jsbin.com/juvuca

【讨论】:

它在我的本地文件中不起作用。 jsbin 输出示例工作正常。请指导我如何为本地文件解决此问题 定义本地文件。 video.js 的修改副本,flv 从 file:// 提供,还有什么?最小测试用例的代码或链接会有所帮助。 它在 localhost 上工作正常,但在 c9.io 上不工作,请帮助解决这个问题。我正在使用节点 js。 我已经尝试过了,但没有工作。将我的页面与给定示例进行比较时,我注意到视频标签已替换为对象标签(在示例页面中),但在我的情况下并没有发生。任何人都可以帮助我了解我所缺少的! 打开远程html文件的时候还能播放flv,很奇怪。我保存远程html并在本地打开后,只有一个巨大的播放按钮,没有其他任何事情发生。 File on jsbin.【参考方案3】:

你可以在这里找到插件 -https://github.com/videojs/video.js/wiki/Plugins 不确定这是否可行。

如果不试试这个 -http://jsfiddle.net/N8Zs5/18/

问候, 沙市

【讨论】:

【参考方案4】:

两种方式。

纯 html5 技术。您可以按照用户@xqq 的建议使用flv.js。您可能需要videojs-flvjs 将flv.js 与video.js 集成在一起。

Flash 技术。您必须安装 videojs-flash 才能使用 video.js

您可以选择其中一种来支持播放 flv 视频。此外,您可以同时使用它们并通过techOrder 选项指定它们的顺序。

data-setup='"techOrder":["html5", "flvjs", "flash"]'

【讨论】:

【参考方案5】:

这个项目可以帮助你,https://github.com/mister-ben/videojs-flvjs

<!-- Video.js -->
<link href="//path/to/video-js.css" rel="stylesheet">
<script src="//path/to/video.min.js"></script>
<!-- flv.js -->
<script src="//path/to/flv.min.js"></script>
<!-- videojs-flvjs -->
<script src="//path/to/videojs-flvjs.min.js"></script>
<video id="videojs-flvjs-player" class="video-js vjs-default-skin" controls>
  <source src="movie.flv" type='video/x-flv'>
</video>
<script>
  // For v5 the tech must be added to the tech order.
  // For v6 this is not needed.
  videojs('videojs-flvjs-player', 
    techOrder: ['html5', 'flvjs'],
    flvjs: 
      mediaDataSource: 
        isLive: true,
        cors: true,
        withCredentials: false,
      ,
      // config: ,
    ,
  );
</script>

【讨论】:

【参考方案6】:

我重构了 videojs-flvjs 以兼容 es6 模块。 https://www.npmjs.com/package/videojs-flvjs-es6

【讨论】:

以上是关于如何在 chrome 中使用 video.js 播放 flash(.flv) 视频的主要内容,如果未能解决你的问题,请参考以下文章

在 Chrome 中无法在 video.js 播放器中查找

Chrome 和 IE 的 Video.js 问题)

带有video.js的HTML5视频无法在Safari中使用

video.js 字幕无法加载

video.js播放rtmp

使用 video.js 在 ios 上播放视频内联?