【问题标题】:Unable to play webM file on chromium with Media Source Extensions. Works in firefox and vlc无法使用媒体源扩展在 chromium 上播放 webM 文件。适用于 Firefox 和 vlc
【发布时间】:2018-10-18 23:59:04
【问题描述】:

我目前正在尝试使用媒体源扩展来实现视频播放器。目前只是一个非常简单的概念证明,遵循我找到的教程here

我使用来自 github here 的所有源代码克隆了他们的 repo,并正在使用各种视频文件在 Chromium 和 Firefox 上测试实现。

所有浏览器的 repo 中的示例 webm 文件都运行良好。

接下来,我尝试将使用 ffmpeg 和 mse-tools 从某个随机站点下载的视频转换为使用以下命令“对齐集群”的 webm 文件:

ffmpeg -i randomvideo.mp4 -c:v libvpx -c:a libvorbis output.webm
mse_webm_remuxer output.webm aligned.webm

同样,两种浏览器都运行良好。

最后,我想转换一个我在搅拌机中创建的非常简单的动画(在 mp4 中用 h264 渲染)。

我尝试使用与上述相同的过程转换生成的文件,该文件在 firefox 上正常播放,但在 chromium 上没有加载。

我假设我在转换文件时犯了一些错误,但是用 vlc 和 ffprobe 检查最终文件的属性,我找不到任何明显的问题。

关于我做错了什么有什么想法吗?

我做的最后一个测试是去this site 获取一些示例 webm 文件。

我下载了“WebM 中的 Big Buck Bunny Trailer”和“Elephants Dream as WebM File”。

这两个文件都可以在 Firefox 中运行,但“Elephants Dream”文件无法在 chromium 中播放。

我在使用以下浏览器版本的 linux 机器(Arch Linux 发行版):

Chromium 版本 69.0.3497.100(官方构建)Arch Linux(64 位)

Firefox 62.0.3(64 位)

我已经在谷歌驱动器here 上分享了我从搅拌机动画创建的文件(非常小 - 只有 36 KB),以防有人想查看。

【问题讨论】:

    标签: video ffmpeg webm media-source


    【解决方案1】:

    所以,在周末敲了敲脑袋之后,我终于发现了我的小搅拌机渲染的 mp4 文件的问题。把它贴在这里,以防有人有类似的问题。

    我尝试使用各种其他软件套件转换我的原始 mp4 文件,以查看 ffmpeg 是否正在做一些使我的最终 webm 文件不兼容的事情。尝试了几个在线转换器和一个商业视频转换器(试用版),但都得到了相同的结果。没有带有 MSE 的视频。然后,偶然我使用 KDENLIVE 转换了它。不是真正的转换,而是“渲染”,就好像它是一个视频编辑项目一样。令我惊讶的是,它奏效了!在检查文件之间的差异后,我注意到 KDENLIVE 在 webm 文件中添加了一个音频流。

    这让我意识到,没有音频的原始文件正在生成一个 mime 类型为 'video/webm; codecs="vp8"'(而不是 'video/webm;codecs = "vp8,vorbis"')的 webm 文件。所以我的解决方案是要么更改传递给addSourceBuffer() 的mimetype,要么生成带有静音音频流的webm 文件(从而创建'video/webm;codecs = "vp8,vorbis"' 类型的文件)。

    上述两种解决方案都有效,我的文件能够在 chromium 中播放。

    作为最后的旁注,来自 webm demo files site 的“大象梦”文件仍然没有按原样播放,但我确实用 kdenlive“重新渲染”它,还用 ffmpeg 重新编码,并且在两者中情况下,新文件有效。所以我相信,原始文件可能存在一些问题。

    【讨论】:

      猜你喜欢
      • 2019-11-05
      • 2012-09-01
      • 2018-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多