最好 linux 下的,可以制作一个像乐视轮播台那样的服务
局域网内用
比如准备 100 部电影,通过 flash/html5 播放器可以按集循环播放,但又不同于点播,不需要每集点播,但又必须支持几小时内的节目回放。
使用 nginx 的话,知道采集直播,但是这种的话 怎么实现?
1
cnleoyang 2015-10-09 07:47:40 +08:00
貌似乐视用了直播技术,客户端仅做播放器使用。服务端,你可以考虑用 nginx-rtmp 建 live 服务,用 ffmpeg 将视频文件作为流推送到 nginx-rtmp 。播放列表可以考虑用 ffmpeg 实现(参考 https://stackoverflow.com/questions/11647868/using-ffmpeg-to-stream-continuously-videos-files-to-a-rtmp-server ),或者自己写脚本。
|
2
lshero 2015-10-09 09:08:12 +08:00 via Android
微软的流媒体服务器可以超简单做播放列表直播但是用的不是 h264 编码,用 ffmpeg 一直没有成功的做过视频列表播放楼上的方法可以试一下
|
3
xylophone21 2015-10-09 11:40:20 +08:00
没有抓包看过,仅凭空分析。
1. 乐视不是基础网络运营商,因此无法使用电信 IPTV 早期使用的组播等技术节省带宽。 2. 因此个人认为乐视所谓的“直播”,本质还是单播,点播。最多使用一些 p2p 技术。 3. 既然本质还是单播,点播,那就跟优酷这些没有本质区别了,就是节目少一些而已。 4. 当然你可以在服务端加一些限制,比如请求的时间只能从-xxx 到 0 等。 |
4
realpg 2015-10-09 12:44:59 +08:00
@xylophone21
[直播] 跟 [单播] [组播] [点播] 是风马牛不相及的事儿 纯直播引擎一般来说是没有时移功能的,就是实时流,你几秒接入就从几秒开始,否则就跟普通视频播放器没区别了 现在包括乐视的一般直播系统都是扩展的有时移引擎的直播系统,反而是乐视的轮播频道的非自己接口是真没有时移的纯直播引擎 单播组播点播是传输方式,只有上层网络归你管,才能用组播方式去传输,当然也可以使用 VPN 搞组播,把一堆客户端虚拟到一个网络里面去,多级组播只节省上层的下发带宽开销,越上层省的越多。 |
5
xylophone21 2015-10-10 09:38:51 +08:00
@realpg
站在引擎的角度来说,你说的没错。 但你再往其本质想,对乐视来说,点播也好,轮播也好,都只能来一个客户端,发一组 TCP/UDP 包过去。至于每个客户端发的内容是否相同(相同即轮播,不同即点播)影响的只是各层缓存等,不属于本质区别。 也就是说几秒接入就只能从几秒开始是业务层面故意设置的“限制”,对底层来说,它跟你想要几秒就给你几秒是相同的,没有太大区别。 但对于组播来说,底层就限制了你只能几秒接入几秒开始,这种情况下需要的是一个完全不同的引擎。 所有,我想表达的是由于乐视无法采用类似组播这样的技术,它的引擎本质上还是一个点播的引擎,只不过业务层有一些差异,当然优化上有差异,但没有必要盯着轮播引擎去找,这只会限制方案选择的范围。 |
6
xylophone21 2015-10-10 09:44:02 +08:00
相反,如果你盯着轮播引擎找,可能会找到一些使用了组播等技术,围绕真正的轮播做了大量优化,对网络环境有要求的引擎。(一般来说适用于局域网)
但这显然不是楼主需要的,也不是乐视使用的技术。 |