通过SRS+FFmpeg实现推拉流摄像头功能

本文最后更新于:2022年3月15日 中午

官网文档搭建SRS → 点击进入

gb28181 资源库 → 点击进入

srs4.0 HTTP API → 点击进入

① 搭建SRS

1.1 环境、下载

1
2
3
4
5
6
7
8
下载编译安装所需环境
# yum groupinstall "Development Tools"

安装git
# yum install -y git

下载git仓库srs的编译安装文件
# git clone -b 4.0release https://gitee.com/ossrs/srs.git

1.2 编译、安装

1
2
3
4
5
6
7
8
进入程序编译的目录 srs/trunk
# cd srs/trunk

进行编译
# ./configure

进行安装
# make

1.3 启动、测试

1
2
3
4
5
6
7
8
9
10
启动srs服务器(在srs/trunk目录下)
# ./objs/srs -c conf/srs.conf

测试是否启动成功,通过浏览器打开 http://localhost:8080/

或者命令查看SRS的状态
# ./etc/init.d/srs status

或者看SRS的日志
# tail -n 30 -f ./objs/srs.log

② 安装FFmpeg

2.1 环境,下载

1
2
3
4
5
6
Nux存储库部分软件来自EPEL软件存储库,需要安装
# yum install epel-release

导入存储库GPG密钥并通过安装rpm软件包来启用Nux存储库
# rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

2.2 安装、验证

1
2
3
4
5
安装FFmpeg
# yum install ffmpeg ffmpeg-devel

验证安装
# ffmpeg -version

③ 推拉流测试

3.1 通过FFmpeg拉流与推流

插播:我用的是海康威视测试,rtsp预览取流,新版规则:
rtsp://<username>:<password>@<ipaddress>:<port>//Streaming/Channels/<id>(?parm1=value1$parm2=value2)
注释 说明
username 用户名
password 密码
ipaddress 设备IP
port 端口号默认为554,默认可以不写
id 通道号+0+码流类型 码流类型:1-主码流、2-自码流、3-第三码流;如1202表示第12通道的子码流
parms 其他参数 如:transportmode=unicast(默认单播transportmode=multicast(多播)
示例:rstp://admin:admin@127.0.0.1:554/Streaming/Channels/101
1
2
3
4
5
6
7
8
9
在服务器上通过FFmpeg进行拉流
# ffmpeg -rtsp_transport tcp -i rtsp://admin:PassWD@CameraIP:554/Streaming/Channels/1601 -vcodec copy -acodec copy -f flv -y rtmp://localhost/live/livestream

后台FFmpeg
# nohup 加上推流所有链接 1>/dev/null 2>&1 &

杀掉程序
# ps -aux |grep ffmpeg
# kill -9 进程号

3.2 进入网页测试(我是通过虚拟机搭建)http://192.168.23.141:8080/

3.3 点击SRS播放器,进入点击播放即可出现摄像头画面了


通过SRS+FFmpeg实现推拉流摄像头功能
https://simple2ich4n.top/14568/
作者
2ich4n
发布于
2022年3月3日
更新于
2022年3月15日
许可协议