使用videojs进行实时流式传输的CORS和请求标头错误[重复]

Posted

技术标签:

【中文标题】使用videojs进行实时流式传输的CORS和请求标头错误[重复]【英文标题】:CORS and Request Headers errors on live streaming using videojs [duplicate] 【发布时间】:2019-02-24 00:30:14 【问题描述】:

我正在尝试使用 videojs@7.0.0 和 videojs/http-streaming 播放带有 html5 的实时流视频,但我无法使其正常工作,因为我遇到了请求标头和 CORS 错误。 我使用的是 HLS 协议,文件是 m3u8 格式。

打印 - 标题

打印 - 控制台错误

这是来自测试的代码:

videojs.Hls.xhr.beforeRequest = function(options) 
    options.headers = 
        "Content-Type": "application/x-mpegURL",
        "Access-Control-Allow-Origin": "*"
    
    return options;
;
player.ready(function() 
    this.src(
        src: 'http://my-url/playlist.m3u8',
        type: 'application/x-mpegURL',
    );
    player.play();
);

当我尝试按需播放视频时,它可以正常工作,但对于实时流媒体,它在任何浏览器中都不起作用。 我认为这可能是服务器端设置的标头出现的一些错误,但我已经使用 Angular 和 Videogular 做了另一个项目,并且无需其他设置即可使其工作,所以我认为我可能在设置请求标头时犯了一些错误在客户端什么的。

【问题讨论】:

我遇到了同样的问题,您是否找到任何解决方法或真正的原因。 【参考方案1】:

Access-Control-Allow-Origin 不是客户端发送的请求头。您需要配置提供 HLS 的服务器以在其响应中发送标头。

https://enable-cors.org/

【讨论】:

以上是关于使用videojs进行实时流式传输的CORS和请求标头错误[重复]的主要内容,如果未能解决你的问题,请参考以下文章

进行实时 HTTP 流式传输时出现 AVPlayerItemStatusUnknown

将实时视频流式传输到浏览器(低延迟)[关闭]

通过 CloudFront 进行私有 HTTP 实时流式传输

使用 Nginx 或 Node 流式传输保存的 HLS 视频

使用 ffmpeg 实时流式传输 MPEG-TS 和 windows 媒体服务

每个用户通过某些 Comet 服务器进行实时流式传输