ios 中flv使用的流式播放,调用window.MediaSource 为undefended。 因为要使用flv视频流播放视频,使用的flv.js 来进行解析,用three.js 来播放全景视频,如果RTMP 的话就是flash播放,flash不能使用three.js 实现全景,但在ios中,flv使用的window.mediasoures不能使用,尝试使用过window.WebKitMediaSource,但ios中window 并不存在两个方法 希望各位大哥给个解决方法
flv.js是个好东西,作者高中毕业,在哔哩哔哩一个月才挣5000元还被评为绩效差,最后愤而离职去日本了。它的原理是利用浏览器里的Media Source Extensions(MSE)转化flv,但无奈苹果这个又坏又蠢的公司拒绝支持MSE,到现在才勉强同意在未发布的iOS 13里支持MSE,而且注意:是只在iPad的iOS 13里支持,也就是说,iPhone上的iOS 13依然不支持MSE!也就是说,如果你要用flv.js的话,最早也要等到iOS 14发表,也许iOS 14也没有,那就还得等。 目前来看,如果想在浏览器里播放flv的话,只能要求后端利用ffmpeg把rtmp转成苹果支持的hls格式: ffmpeg -v verbose -i rtmp://<host>:<port>/<stream> -c:v libx264 -c:a aac -ac 1 -strict -2 -crf 18 -profile:v baseline -maxrate 400k -bufsize 1835k -pix_fmt yuv420p -flags -global_header -hls_time 10 -hls_list_size 6 -hls_wrap 10 -start_number 1 <pathToFolderYouWantTo>/<streamName>.m3u8 前端直接用video标签写src=m3u8就可以了。
flv.js是个好东西,作者高中毕业,在哔哩哔哩一个月才挣5000元还被评为绩效差,最后愤而离职去日本了。它的原理是利用浏览器里的Media Source Extensions(MSE)转化flv,但无奈苹果这个又坏又蠢的公司拒绝支持MSE,到现在才勉强同意在未发布的iOS 13里支持MSE,而且注意:是只在iPad的iOS 13里支持,也就是说,iPhone上的iOS 13依然不支持MSE!也就是说,如果你要用flv.js的话,最早也要等到iOS 14发表,也许iOS 14也没有,那就还得等。
目前来看,如果想在浏览器里播放flv的话,只能要求后端利用ffmpeg把rtmp转成苹果支持的hls格式:
前端直接用video标签写src=m3u8就可以了。