一、前言
前面介绍了Android中视频直播中的一个重要类ByteBuffer,不了解的同学可以 android%E4%B8%AD%E7%9B%B4%E6%92%AD%E8%A7%86%E9%A2%91%E6%8A%80%E6%9C%AF%E6%8E%A2%E7%A9%B6%E4%B9%8B-%E5%9F%BA%E7%A1%80%E6%A0%B8%E5%BF%83%E7%B1%BBbytebuffer%E8%A7%A3%E6%9E%90/" rel="nofollow" style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; color: rgb(12, 137, 207); text-decoration-line: none; cursor: pointer; overflow-wrap: break-word;">点击查看 到这里开始,我们开始动手开发了,因为我们后续肯定是需要直播视频功能,然后把视频推流到服务端,本地在进行拉流播放的流程。所以这个过程中,我们需要首先来把服务端这个中间环节的工作搞定,后续再弄推流和拉流功能。现在推流大部分都是使用RTMP/HLS协议的,关于这两个协议的区别:
https://github.com/FFmpeg/FFmpeg,不过这个工具在Windows下已经编译好了工具,直接去官网下载即可:https://ffmpeg.org,这个工具包功能很强大的,可以做视频编码,加字幕,水印等效果的。
下载了Windows平台的工具包之后,再把命令配置到环境变量中,直接在命令行中进行推流:
ffmpeg -re -i D:\tmp.mp4 -f flv rtmp://www.wjdiankong.cn:1395/mylive/rtmpstream
这里我把本地的一个mp4文件推流到服务器中,然后这时候我们还需要拉流进行观看,这个就需要一个很常用的流媒体工具:VLC了,可以自行下载这个工具即可,安装之后,在打开选项中,选择网络流媒体:
六、流程分析
到这里,我们就完成了视频直播的后台环境搭建,也是我们后续要介绍推流和拉流的中间环节,下面在来看一下整个直播的推拉流的流程:
推拉流端都支持PC端和移动端的,采用的协议大部分都是RTMP或者是HLS。而且还有一个比较好的推拉流工具包:FFMpeg,
所以现在很多直播的App,一个主播先出点血花钱买一个比较牛逼的设备(推流设备),然后就可以在家坐着赚钱了,而有一些土豪就开始拉流观看,送钱!!
其实,有时候服务器的结构可能如下:
这里会把推流的视频保存到一个地方,然后既可以支持视频的点播,也可以支持视频的直播了!
最后再来看一下现在很多大公司已经开始开发了整个视频直播功能的SDK,这里看一下腾讯云推出的录制+播放功能的SDK:
他的功能还是很全的,可以支持本地移动设备的推流(视频采集一般就是摄像头和桌面),然后对采集的视频做一些处理,然后在进行拉流播放,可以支持硬件加速,视频解码等功,这个也是我们后续会一一介绍的功能。
因为本文只是介绍环境搭建,所以真正在开发的过程中还会遇到一些问题的,到时候就需要去配置服务端信息了!
七、总结
本文主要介绍了如何搭建视频直播的服务端环境,这个是后续介绍推流和拉流的关键中间点,后续测试都需要这个环境的,我们采用了市面上常用的技术:Nginx+RTMP协议,需要弄到源码包,然后编译安装即可,然后为了验证效果,在Windows中使用了FFMpeg工具进行推流,使用VLC工具进行拉流视频观看,这个流程就算是通了,后续要做的就是如何把Android中的摄像头视频数据和桌面视频数据进行推流,以及拉流观看的功能。
https://blog.csdn.net/yelin042/article/details/78434989
本文链接:https://www.kinber.cn/post/817.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: