ffmpegrtsp推流_⼿把⼿搭建RTSP流媒体服务器
0.引⾔
本⽂主要讲解如何搭建RTSP流媒体服务器的过程,使⽤开源项⽬ZLMediaKit。通过这个开源项⽬,推RTSP流到服务器,然后拉流端可以拉取RTSP、RTMP等流。
ZLMediaKit源码图⽚:
ZLMediaKit功能列表:
⽀持推流rtsp,推到zlmediak服务器,拉流可以拉取rtsp,rtmp,hls等。功能很多,⽽且这个流媒体服务器是⽀持h265。
1.安装编译器及其插件(如果有需要就安装)
1.1ZLMediaKit采⽤了C++11的语法和库,要求编译器⽀持完整的C++11标准,如下:
(1)linux上要求gcc 版本 >= 4.8(4.7应该也能⽀持)。
(2)macOS上clang >= (我也不知道,估计⼤部分不会遇到这个问题)。
(3)windows 上visual stuido >= 2015(vs2013某些版本也能编译通过,如果怕⿇烦建议直接vs2017)。
1.2安装编译器
(1)如果你是debian系操作系统(包括ubuntu系⽤户),⼀般⾃带的gcc版本够新,你可以这样安装gcc编译器:
sudo apt-get install build-essential
(2)安装cmake
ZLMediaKit采⽤cmake来构建项⽬,通过cmake才能⽣成Makefile(或Xcode/VS⼯程),所以必须先安装cmake才能完成后续步骤。
sudo apt-get install cmake
(3)依赖库
ZLMediaKit可选依赖⼀些第三⽅库,这些库都不是必选的;在构建ZLMediaKit时,cmake能查系统路径中的这些库,并根据安装情况选择是否开启相关特性,你可以选择安装这些依赖并启⽤相关特性:
安装openssl
flash player在播放rtmp时,采⽤的是复杂握⼿模式,如果不安装该库,flash player将播放不了zlmediakit 提供的rtmp url。同时ZLMediaKit的https/rtsps相关功能需要使⽤openssl才能开启。
安装ffmpeg
zlmediakit可以通过fork ffmpeg进程的⽅式实现多种协议的拉流,编译时不需要安装FFmpeg。
安装sdl、avcodec、avutil
这3个库供ZLMediaKit的test_player测试程序使⽤,你通常不需要安装这3个库。
Debian系(包括ubuntu)系统下安装其它依赖的⽅法:
注意:这个根据⾃⼰的实际情况去安装,如果已经安装了就不⽤再安装了。
sudo apt-get install libssl-dev
sudo apt-get install libsdl-dev
sudo apt-get install libavcodec-dev
sudo apt-get install libavutil-dev
sudo apt-get install ffmpeg
2.搭建RTSP流媒体服务器
(1)在如下⽬录路径,如下:
创建⽂件夹,输⼊命令:
mkdir ZLMediaKit_Stream_Server
(2)在如下⽬录路径,如下:
国内⽤户,最好使⽤码云连接,这样会⽐较快,输⼊下载命令:下载界⾯如下:
下载完成后,这⾥会有个如下⽬录⾃动⽣成,如下:
进⼊ZLMediaKit的源码⽬录,输⼊命令:
cd ZLMediaKit/
ZLMediaKit的源码⽬录,如下界⾯:
(3)在如下⽬录和路径:
查看分⽀,输⼊命令:
git branch -a
界⾯如下:
(4)在如下⽬录和路径:
执⾏⼀条⾮常重要的命令(下载组件),千万不要忘记,如下: git submodule update --init
克隆完成后,如下界⾯:
(5)下载的是第三⽅库和组件(⽐如ffmpeg和rtmp等),进⼊如下⽬录和路径:
(6)输⼊如下命令,查看下载的⽂件,如下界⾯:
这⾥举例说明下,如果需要参考rtp的使⽤,可以参考如下⽬录的代码。其它代码也⼀样可以参考。
xcode界面这⾥还有些是实现了reactor模型、线程封装(包括线程池)、⼯具,所以学习流媒体,后台相关的知识也是要学习和使⽤。
(7)ZLMediaKit提供了多平台的编译版本,进⼊如下⽬录:
查看gcc的版本,输⼊命令,如下:
gcc -v
查看版本号,界⾯如下:
注意:根据官⽹提⽰,只要这⾥的gcc版本⼤于4.8就可以,因为需要⽀持c++11版本。同样的,macos、windows也是可以编译。
(8)查看cmake版本:
使⽤cmake进⾏编译,在如下⽬录:
(9)构建⼯程,输⼊如下命令:
mkdir build
cd build
进⼊如下⽬录,执⾏命令:
cmake ..
如下界⾯:
编译过程,如下界⾯:
编译完成,如下界⾯:
(10)在如下⽬录,输⼊编译命令:make -j4
make过程,如下界⾯:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。