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博客

  • 26
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Android项目中使用FFmpeg拉取RTSP推送RTMP服务器,可以按照以下步骤进行操作: 步骤1:添加FFmpeg库 首先,将FFmpeg库添加到Android项目中。可以使用开源的FFmpeg库,也可以使用第三方的FFmpeg库。在项目的build.gradle文件中添加FFmpeg库的依赖。 步骤2:初始化FFmpeg 在代码中初始化FFmpeg,可以在Application的onCreate()方法中进行初始化操作。 步骤3:拉取RTSP 使用FFmpeg命令行或者FFmpeg库提供的API来拉取RTSP。可以通过设置输入源和输出格式等参数,实现RTSP服务器拉取数据。 步骤4:推送RTMP服务器 使用FFmpeg命令行或者FFmpeg库提供的API来推送数据到RTMP服务器。可以通过设置输出源和RTMP服务器地址等参数,实现拉取到的数据推送RTMP服务器。 步骤5:对推送过程进行监听和处理 通过FFmpeg库提供的回调函数,可以对推送过程进行监听和处理。例如,可以监听传输的状态、推送的进度等。 步骤6:处理异常情况 在使用FFmpeg的过程中,可能会遇到各种异常情况,比如网络异常、编解码错误等。需要在代码中进行异常处理,保证项目的稳定性和可靠性。 需要注意的是,使用FFmpeg进行RTSP拉取RTMP推送需要一定的编程技巧和对FFmpeg库的理解。并且,由于FFmpeg库在不同平台和版本之间可能存在差异,因此在集成和使用FFmpeg库时,需要确保库的版本和平台的兼容性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霸道流氓气质

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值