sonysuqin / WasmVideoPlayer

Play file/stream with wasm & webgl & web audio api, using ffmpeg for multi codec support, especially for h265,support http, websocket, http-flv stream.
GNU General Public License v3.0
1.3k stars 375 forks source link

可以播放 hls/flv 直播流吗? #21

Closed epubcn closed 4 years ago

epubcn commented 5 years ago

Flash被废除就在眼前,急需一个纯网页播放直播流的替代方案。尝试过flv.js、hls.js来播放直播流(hls或flv)都有很多问题(延时大、卡停、黑屏……),不知道您这个是否可应用于稳定播放 hls/flv 直播流的场景呢

BlueBubbleWei commented 5 years ago

同样的需求,可以建个群一起交流一下了

alyen028 commented 5 years ago

同样的需求,有实现方案吗?

kongqueyu commented 5 years ago

群建了没,公布一下啊, 是不是改动downloadaer.js 就可以啊

sonysuqin commented 5 years ago

hls和flv直播流应该没有问题,需要改改对文件长度的依赖,但是这个方案还有一些没有解决的问题,音视频同步、safari的兼容等,用来播放生产环境的直播流可能还需要自己多一点打磨。

wangcheng007 commented 4 years ago

同,求分享

lunhuibuzhi commented 4 years ago

发现大家对直播流的需求还是蛮多的,有没有具体的demo可以参考一下呀,大家都是怎么解决的,作者可以改下代码也支持直播流

giter commented 4 years ago

同, 全村人的希望

sonysuqin commented 4 years ago

目前这个方案主要是围绕着点播来做,使用自定义IO,跟缓存文件耦合比较大,如果要兼容直播的话,感觉方案得变一下,修改FFmpeg增加web-http和websocket协议似乎更合适,这样就能同时兼容点播、直播,也能播m3u8/flv,这段时间有空研究一下吧。

wangcheng007 commented 4 years ago

目前这个方案主要是围绕着点播来做,使用自定义IO,跟缓存文件耦合比较大,如果要兼容直播的话,感觉方案得变一下,修改FFmpeg增加web-http和websocket协议似乎更合适,这样就能同时兼容点播、直播,也能播m3u8/flv,这段时间有空研究一下吧。

同觉得 websocket 更好,但是我认为这部分其实是属于前端自己能解决的问题,自己实现了一套 websocket + mse 的播放方案,但是 cpu 占用率颇高,望大佬早日取得成果

sonysuqin commented 4 years ago

想了一下,ffmpeg加入新的协议需要同步io,而js都是异步的,由于wasm的pthread还没有成熟,所以缺乏异步转同步的手段,这个想法目前无法实现。还是在当前版本上改吧,修改一下缓存,直播流的情况下就不用文件了,用队列就可以了。

wangcheng007 commented 4 years ago

想了一下,ffmpeg加入新的协议需要同步io,而js都是异步的,由于wasm的pthread还没有成熟,所以缺乏异步转同步的手段,这个想法目前无法实现。还是在当前版本上改吧,修改一下缓存,直播流的情况下就不用文件了,用队列就可以了。

我觉得这块用 wasm 实现一个环形缓冲区会比较好一点

sonysuqin commented 4 years ago

目前已经支持播放http-flv直播流,hls涉及到m3u8,在目前的版本就不支持了。