第三方程序播放M3U8失败
提示:查看该问题的时候,请确保EFV高级版自身的M3U8播放没问题;可通过后台复制M3U8处预览视频。

一般我们将转码后的M3U8链接拿到第三方程序播放出现的话,大致上会出现以下问题,这里详细说下。

https协议与http协议问题

出现原因

第三方程序绑定的域名开启了SSL,即https访问,而转码端未开启SSL,依然使用http访问。

调试确定

pc上使用谷歌浏览器打开播放页面,按下f12,点击播放的时候查看控制台,看到以下类似错误即为该问题。

解决办法

给转码程序绑定的域名开启SSL,强制https访问;或者将第三方程序绑定的域名去掉SSL,使用http访问,也就是均为httphttps

防盗链问题

如果你开启了防盗链,且由于部分防盗链需要进行对接,所以未对接的自然播放会失败,具体参考:点击查看

跨域问题

提示:如果程序未绑定域名,即M3U8为ip:3000链接,则必跨域,请先看文档安装教程绑定域名即可。

程序内置跨域放行所有文件,即默认对所有域名放行;如果只对部分域名放行,则前往转码设置设置引用域名即可。

调试确定

pc上使用谷歌浏览器打开播放页面,按下f12,点击播放的时候查看控制台,看到以下类似错误即为该问题。

解决方法

一般如果你没有在转码设置 设置引用域名,默认是不会跨域的;且如果你是使用宝塔的nginx绑定EFV高级版,则大概率是nginx问题,你可以换nginx 1.18版本试试,或者直接卸载nginx,使用EFV高级版自带的网站管理,可解决该问题。

部分设备或浏览器不能播放

1、开启https的,可能是域名ssl证书链有问题,检测修复方法看下方。
2、如果你是宝塔安装的nginx绑定域名,可以换nginx 1.18版本试试,还不行可以直接卸载nginx,使用EFV高级版自带的网站管理。
3、上面2个方案还不能解决,可以直接在手机端播放切片后台的m3u8预览地址,如果可以播放,可能和播放器有关,也可换播放器测试看看。

证书相关问题可以使用相关工具检测,如:点击查看,如果检测超时,或提示证书链等问题,则为该问题,可以自己补全下证书链,也就是pemcrt文件证书,补全证书链网站:点击查看,补全后替换原证书文件即可;如果不会补全,可以直接使用自动签发的免费ssl证书。

图片伪装和随机命名切片问题

如果你视频体积过大或时间过长,且转码完成立马就播放的,则可能是缓存问题,解决详情:点击查看

关于图片伪装,还有一种可能问题就是用的播放器hls.min.js或者hls.js版本过旧,更新下该文件即可,推荐版本:

#可用版本
https://cdn.bootcdn.net/ajax/libs/hls.js/0.14.1/hls.min.js

https://cdn.bootcdn.net/ajax/libs/hls.js/0.14.1/hls.js

APP或IOS不能播放

1、可能在【转码设置】中开启了防下载合并功能,关闭即可。
2、如果开启了TS随机广告,可关闭后再测试,如确定该问题,可以换个广告试试,直到没问题即可。
3、对于APP,http不能播放的话,建议开启https。
4、开启https的,可能是域名ssl证书链有问题。

证书相关问题可以使用相关工具检测,如:点击查看,如果检测超时,或提示证书链等问题,则为该问题,可以自己补全下证书链,也就是pemcrt文件证书,补全证书链网站:点击查看,补全后替换原证书文件即可;如果不会补全,可以直接使用自动签发的免费ssl证书。