Fork me on GitHub

推流 && 直播开发

直播流程概览图

image | left | 827x293

常见直播协议

  • HLS
  • RTMP
  • HTTP-FLV

常见直播协议延迟与性能数据 ~^以下数据只做对比参考^~

传输协议 播放器 延迟 内存 CPU
RTMP Flash 1s 430M 11%
HTTP-FLV Video 1s 310M 4.4%
HLS Video 20s 205M 3%

推流

rtmp服务器

https://github.com/illuspas/nginx-rtmp-win32
直接下载以上地址启动服务器,默认rtmp服务是1935端口
可看nginx.conf自行配置

ffmpeg推流命令

ffmpeg -re -i [视频地址] -vcodec libx264 -acodec aac -f fl
v rtmp://[rtmp地址]

例如:

image | left | 616x114

在该命令行模式下执行
ffmpeg -re -i ./siyue.mp4 -vcodec libx264 -acodec aac -f fl
v rtmp://127.0.0.1:1935/live/rtmp

推流成功后,如下图所示:

image | left | 649x416
会不断的刷这些信息数据

调试

可在8080端口进行调试

image | left | 827x382

在红色框输入rtmp地址,点击play即可

Web端

播放器选型

  • video.js
    • 现成的UI播放器
  • hls.js
  • flv.js
    • hls和flv都是需要自定义播放器,使用更灵活,更简洁
      这些库demo官方都有,自个儿看吧 0.0

image | left | 300x300

开发

确定好库后,就进行业务开发了。什么弹幕,刷礼物,聊天窗口喊666,以后接触到这些业务再细去研究吧。

最后

本来文章名想叫 直播开发,可是感觉主要还是记录一下推流的方法吧。
然后有人就说,我一小~~前端干嘛要自己推流噢。
嘛嘛,这样前端大大们可以在不依靠后端童鞋的提供接口下也能先自行开发,了解整个直播流程,开发中有问题出错了也能更快速的定位出来~

最近写文档什么的都在用语雀,恩很好用,就酱。 溜=3

-------------本文结束感谢您的阅读-------------
分享