关于flv.js 在ios端播放时候id兼容问题

ios 中flv使用的流式播放,调用window.MediaSource 为undefended。

因为要使用flv视频流播放视频,使用的flv.js 来进行解析,用three.js 来播放全景视频,如果RTMP 的话就是flash播放,flash不能使用three.js 实现全景,但在ios中,flv使用的window.mediasoures不能使用,尝试使用过window.WebKitMediaSource,但ios中window 并不存在两个方法

希望各位大哥给个解决方法

阅读 12.9k
1 个回答

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就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题