ChromeFirefox 无法在 HTML 播放器中播放 HLS videomp2t 视频流。

问题描述 投票:0回答:1

我目前正在做一个网络应用,其主要目的是流媒体时移电视频道。应用程序是用Javascript React框架编写的,对于网络播放器,我们使用的是 CookPete ReactPlayer 与集成的hls.js。我们已经成功地播放了直播电视频道,但不幸的是,我们遇到了一些关于频道时移的问题。

直播流分布在 XtreamUI 所以当用户在观看电视直播时,这种URL会进入播放器源,CookPete播放器+hls.js会对m3u8列表进行解析处理,从而完美播放视频。

问题来了,XtreamUI使用的是这种URL example.orgstreamingtimeshift.php?username=XXX&password=XXX&stream=2&start=2020-04-26:19-23&duration=7。正如你所看到的,它的PHP脚本将原始字节传输到播放器中。 下面是streamtimeshift.php的响应头文件。

Web inspector

正如你所注意到的,内容类型是videomp2t,由于某些原因不能在浏览器环境中播放。 ( Google Chrome, Mozilla Firefox, IE 11)。这个警告会弹出。

Console warning

另一方面,Safari浏览器在Mac上的视频播放完全正常,但从Safari的请求是有点不同。这是Safari的控制台网络标签的截图。正如你所看到的,有几个不同字节范围的请求。

Network tab

我们正在寻求一个解决方案,它将提供播放时移视频(videomp2t内容)在谷歌浏览器,火狐和IE 11。欢迎所有的建议和意见。

javascript encoding video-streaming html5-video hls.js
1个回答
0
投票

内容类型是videomp2t,由于某些原因不能在浏览器环境下播放。

这是因为chrome和Firefox不支持mpeg传输流,而safari支持。hls.js之所以能够工作,是因为它知道如何读取二进制ts文件,并在发送到媒体源扩展缓冲区之前将其重写为mp4片段。你也需要做同样的事情。看看mux.js。


0
投票

在Firefox中,通过运行这个命令安装一个编解码器。

sudo apt-get install libavcodec58

在chrome中也安装一个类似的编解码器。它应该可以解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.