FFmpeg网络传输协议

抓流和推流

视频直播中说的抓流和推流,是什么意思,两种有什么区别? - 知乎

各种协议比较

RTMP直播应用与延时分析-andersonyan-ChinaUnix博客
关于直播,所有的技术细节都在这里了(二) | U刻
直播服务器简单实现 http_flv和hls 内网直播桌面 - lucpp - 博客园
直播协议的选择:RTMP vs. HLS - 推酷
HLS与RTMP ,RTSP对比 - coder - CSDN博客
直播http-flv小调研 - ahoustep的博客 - CSDN博客

http、rtmp、hls
支持的音视频格式、是否分片、延迟、自适应码率
hls: 苹果公司开发、主要用于iOS设备、流媒体的直播和点播、视频和音频数据封装为MPEG-TS包、需要分片、延迟大(与TS切片有关)、自适应码率、任意两个切片无缝连接,播放器播放不卡顿
rtmp:Adobe Systems、

flv有文件大小限制,剩下功能性的差不多,ts可以实时插入节目数据,flv也能要自定义一些东西实现

假如你有这样一个需求,你需要直播拉斯维加斯一个赌桌上,一个荷官在玩21点的游戏。如果延时很高。比如用HLS来直播,那么会有超过10秒以上的延时。你看到服务端发过来的牌点数,但是视频上的荷官10秒后才发牌,完全不能用。
那么只能选择低延迟的直播协议,而所有直播协议延迟和实时性最好的就是RTMP,在中国看美国的视频直播延迟也能控制在1秒内,很神奇的一个协议。但是RTMP有个缺点,他只能在PC端上用flash来直播,不支持移动端。如果要在手机上网页端用html5播放,那么只能选择HLS,而且HLS在中国看美国的视频直播有时候高达18秒的延迟。
而真正能解决这个需求的,目前来说只有flv.js,通过HTTP-FLV,在手机网页端用html5播放,延迟是能控制在1秒内的。
其实很多外国游戏直播网站都是用RTMP来直播。他们都是在手机上用APP,用C++来解析的。看过一个英文论坛上的讨论,他们的技术对于网页端播放低延迟直播几乎无解,网页端非常难。很多人都没有意识到,这是非常有技术含量,非常伟大的一项技术。

对于flv.js的作用,个人持看中立态度,首先,这个东西有必要存在,为什么这么说呢,首先,国内直播主要传输协议都是httpflv,因为httpflv拥有极低的延时和极好的穿透性,还有,flv这个封装格式极其简单,对服务器开发人员友好。所以,国内主流直播平台都是httpflv为主线路,比如斗鱼熊猫。然而,html5可不支持flv格式的解码,所以,前有hls.js,后有flv.js,就是通过html5,获取http视频流数据,比如获取flv格式流数据,然后解包flv至aac&h264,然后再次封包成mp4,mp4就直接能用html5播放了,值得注意的是整个过程可用了N多html5技术。
但是这么做有缺点,那就是耗费cpu,首先,js这个东西,算不上快,而且是单线程,解flv然后封装为mp4,喂给html5,这是个既简单也算复杂的计算过程,有点耗费cpu的,所以,低端设备比如手机,这个东西就别想了,甚至在pc浏览器端,这也并不是一个很优秀的选择,用优化过后的flv.js和flash来播放一段httpflv流,flash占用cpu反而稍微低一点点。
最后,反正flash诟病很多,总要被淘汰的,而如今直播协议中,延时低且具有http穿透性而且封装简单,那首当其冲的就是httpflv了,flv.js算是历史长河中应有的存在。
貌似熊猫tv的pc端,也有这个的直播技术了,用上了html5播放器来播放httpflv。
如何看待哔哩哔哩的开源 HTML5 播放器内核 flv.js? - 知乎

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值