FFmpeg在Centos服务器上离线安装(包含所需依赖)并实现拉取rtsp流与推送至rtmp服务器
场景
Windows上使用FFmpeg实现rtsp视频流推流到RTMP流媒体服务器(EasyCVR流媒体服务器):
Windows上使用FFmpeg实现rtsp视频流推流到RTMP流媒体服务器(EasyCVR流媒体服务器)_rtsp 转流-CSDN博客
上面讲了在windows上ffmpeg的应用示例,如果是在centos服务器上,且服务器无法访问外网,需要离线安装
FFmpeg以及所需的依赖,可以参考如下流程。
注:
博客:
霸道流氓气质_C#,架构之路,SpringBoot-CSDN博客
实现
1、首先安装ffmpeg所需的依赖nasm
centos上离线安装nasm
下载nasm软件包
https://www.nasm.us/pub/nasm/releasebuilds/2.14/nasm-2.14.tar.gz
上传至服务器上,比如这里在/etc下新建nasm目录,并上传至此目录。
解压
tar -xvf nasm-2.14.tar.gz
进入解压后的目录执行
./configure
然后编译
make && make install
编译成功之后无报错可进行验证
nasm -version
2、centos离线安装yasm
下载软件包并上传至服务器,这里在/etc/yasm目录下
http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
解压软件包
tar zxvf yasm-1.3.0.tar.gz
进入解压后的目录,执行配置和编译
./configure
make && make install
可通过如下验证是否安装成功
yasm --version
3、centos上离线安装x264
下载安装包
x264, the best H.264/AVC encoder - VideoLAN
下载并上传至服务器之后是.tar.bz2文件,这里是在/etc/x264目录下
centos上解压.tar.bz2文件可以使用如下命令
tar -jxvf x264-master.tar.bz2
解压并进入到目录后执行配置和编译
./configure --enable-shared --enable-static
make && make install
可以通过如下进行验证
x264 --version
4、检查服务器上gcc以及pkg是否已经安装
gcc安装验证
gcc --version
pkg安装验证
pkg-config --version
这里以上两个依赖服务器已经具备,不再安装。
5、Centos上离线编译安装FFmpeg
下载软件安装包
http://ffmpeg.org/releases/ffmpeg-6.0.tar.xz
或访问官网选择任意版本
Download FFmpeg
上传安装包到服务器上,解压
tar -xvf ffmpeg-6.0.tar.xz
将解压后的目录移动到指定目录下
mv ffmpeg-6.0/ /usr/local/ffmpeg/
这里移动到/usr/local/ffmpeg下,进入该目录执行
./configure --enable-gpl --enable-libx264 --enable-static --disable-shared --enable-encoder=libx264 --extra-libs=-ldl
没有任何报错则编译成功
然后编译
make && make install
此处编译时间较长,编译成功之后可通过
ffmpeg
验证
6、踩坑:在配置时提示
ERROR: x264 not found using pkg-config
这是因为x264安装时使用默认位置,pkg-config会搜索指定路径下的.pc文件,所以将.pc文件移动到指定目录下即可。
首先找到x264的位置
find / -name 'libx264.so.164'
然后进入到找到的/usr/local/lib/pkgconfig/x264.pc移动到/usr/share/pkgconfig目录下
sudo mv /usr/local/lib/pkgconfig/x264.pc /usr/share/pkgconfig
然后修改ld.so.conf配置文件
vim /etc/ld.so.conf
最后一行添加如下
/usr/local/lib/
加载改动
ldconfig
再执行以上的配置ffmpeg的命令则不会报错。
7、centos上使用ffmpeg拉取海康威视rtsp视频流并转换推流至rtmp服务器
首选rtmp服务器搭建好端口为11935,执行如下指令
ffmpeg -i "rtsp://admin:123456@摄像头ip:554/h264/ch01/main/av_stream" -vcodec libx264 -acodec aac -f flv rtmp://流媒体服务器ip:11935/myapp/badao
拉流与推流成功。
使用流媒体自带的预览页面验证
流媒体搭建参考如下
Monibucav4(开源流媒体服务器)在Windows上搭建rtmp服务器并实现拉取rtsp视频流以及转换flv播放:
Monibucav4(开源流媒体服务器)在Windows上搭建rtmp服务器并实现拉取rtsp视频流以及转换flv播放_monibuca 搭建流媒体服务-CSDN博客