RTMP直播流直接把rtmp://字符串换成https://,再拼接.m3u8,使用AVPlayer播放报错信息:NSLocalizedDescription=你没有访问所请求的资源的许可。
答:如果您直接将 RTMP 直播流的 URL 中的 "rtmp://" 字符串替换为 "https://" 并拼接为 ".m3u8" 后缀,然后尝试使用 AVPlayer 播放,但遇到了许可错误的报错信息,这是因为您的操作并没有将 RTMP 流正确地转换为可通过 HTTPS 播放的 HLS 流。
如前所述,RTMP 和 HLS 是两种不同的流媒体传输协议,且基于不同的传输机制。简单地将 RTMP URL 替换为 HTTPS 并拼接为 .m3u8 后缀并不能正确转换 RTMP 流为可通过 HTTPS 播放的 HLS 流。
要将 RTMP 流转换为可通过 HTTPS 播放的 HLS 流,您需要使用流媒体服务器或服务进行转码和转换。以下是一种可能的流程:
使用流媒体服务器:搭建一个流媒体服务器,如 nginx + rtmp module 或 Wowza,用于接收 RTMP 流并进行转码和转换。
转换为 HLS 流:配置流媒体服务器以将接收的 RTMP 流转换为 HLS 流。这通常涉及将 RTMP 流转换为分段的 .ts 文件,并生成对应的 .m3u8 播放列表文件。
配置 HTTPS 服务器:启动一个支持 HTTPS 的服务器,并将生成的 HLS 文件(包括 .m3u8 和 .ts 文件)部署到该服务器上,同时配置有效的 SSL 证书。
使用 AVPlayer 播放:通过生成的 HTTPS URL(以 .m3u8 为扩展名)来使用 AVPlayer 播放 HLS 流。将 HTTPS URL 分配给 AVPlayer 的播放器项目(AVPlayerItem),然后进行播放。
请注意,这是一个相对复杂的过程,涉及到流媒体服务器的搭建和配置、转码和转换等操作。如果您没有相关的经验或资源,建议考虑使用第三方的流媒体服务提供商或视频云服务提供商,这些服务通常提供了简化的流媒体转码和转换功能,可方便地将 RTMP 流转换为可通过 HTTPS 播放的 HLS 流。
网友评论