包含空格的 MediaElement.js RTMP URL 无法在 Firefox 中播放

Posted

技术标签:

【中文标题】包含空格的 MediaElement.js RTMP URL 无法在 Firefox 中播放【英文标题】:MediaElement.js RTMP URL containing whitespace does not play in Firefox 【发布时间】:2013-07-16 21:13:49 【问题描述】:

我遇到了 MediaElement.js 媒体播放器的问题,其中包含空格的文件名(例如,“文件 1.mp4”)无法使用 RTMP 协议播放。只有在 Firefox 中使用媒体播放器时才会出现此问题。我目前正在使用 Firefox 21 测试 MediaElement.js 2.12.0 播放器。但是,如果我在 Internet Explorer 中播放相同的视频,则会使用相同的 URL 成功检索和流式传输视频。示例 URL 可能采用以下格式:

rtmp://host/video/<em>definst</em>/mp4:/path/File 1.mp4

在将 URL 传递给媒体播放器时,我尝试对文件名进行 URL 编码。但是,该文件将无法在 Firefox 或 IE 中播放。

如果我尝试使用 HTTP 协议播放带有空格的视频,那么 Firefox 和 IE 都可以播放视频:

http: //host/video/path/File 1.mp4

这个问题可以解决吗?谢谢!

【问题讨论】:

【参考方案1】:

尝试用 + 号或 %20 替换空格

【讨论】:

我已将 URL 中的空格替换为 %20 和 +。但是,该文件仍无法在媒体播放器中播放。有没有其他人遇到过这个问题? 如果我发现它无法帮助您调试它,您是否在任何地方都有这个在线? 我目前没有公共网站上的媒体播放器。测试它的最简单方法是尝试流式传输任何包含空格的视频文件。为了启用 RTMP 流,我使用了 Adob​​e Media Server。您可以在没有许可证的情况下使用开发版本进行有限的连接。【参考方案2】:

看起来是因为 Firefox 不支持 MP4 ...但看起来脚本支持多个后备编解码器...http://mediaelementjs.com/#installation - “这包括用于各种浏览器的多个编解码器(用于 IE9、Safari 的 h.264和移动浏览器;WebM 用于 Firefox 4、Chrome 和 Opera;Ogg 用于 Firefox 3) 以及禁用 javascript 的非 html5 浏览器的 Flash 后备。最初由 Kroc Camen 构思为“适合所有人的视频”。

<!-- WebM/VP8 for Firefox4, Opera, and Chrome -->
<source type="video/webm" src="myvideo.webm" />
<!-- Ogg/Vorbis for older Firefox and Opera versions -->
<source type="video/ogg" src="myvideo.ogv" />

【讨论】:

感谢您的回复。 MP4 文件确实可以在 Firefox 中播放,因为一旦我从文件名中删除空格,视频就会在基于 Flash 的媒体播放器中播放。如果您在 Firebug 中打开媒体播放器并查看显示编码 URL 的 Flashvar,则空格会被双重编码为​​ %2520,而不仅仅是 %20。我认为这是造成问题的原因。但是,我不确定如何解决这个问题。 developer.mozilla.org/en-US/docs/HTML/… --- "Internet Explorer、Safari 和 Chrome 原生支持带有 H.264 视频编解码器和 AAC 音频编解码器或 MP3 音频编解码器的 MP4 容器格式,但 Chromium和 Opera 不支持该格式。Firefox 将很快支持该格式,但只有在第三方解码器可用时才支持。 .....但是回到您的问题...您可以控制视频文件的命名吗?名字里有空格是不好的。 不幸的是,我无法控制文件名。我意识到在文件名中放置空格并不常见,但媒体播放器仍然应该支持它。对 Firefox 和 IE 使用 HTTP URL 时,空格可以正常工作,但仅适用于 IE 的 RTMP URL。 RTMP URL 中的文件名中有空格在 Firefox 中不起作用。有没有办法在媒体播放器中修复/解决这个问题?谢谢! 我真的不知道下一步该做什么来帮助你,因为我没有工作环境,当你尝试替换空间时,它会出现 %2520。我会尝试做一些谷歌搜索,看看是否找不到其他有问题的人。您是否尝试过联系插件的制造商并让他们知道。我确定他们想知道这个错误,以便他们可以改进他们的插件。 我会联系媒体播放器的开发者,让他们知道这个问题。谢谢!

以上是关于包含空格的 MediaElement.js RTMP URL 无法在 Firefox 中播放的主要内容,如果未能解决你的问题,请参考以下文章

Mediaelement.js - 想要删除所有控件 - 仅显示视频

mediaelement.js - 具有固定最大尺寸的响应式视频

IE 中的 Mediaelement.js 故障,没有闪回工作

MediaElement.js (WordPress) 为 YouTube 视频设置结束时间

mediaelement.js 与 Phonegap 兼容吗?

使用 mediaelement.js 与 HTML5 后备的 Flash 视频