最近在研究gb28181,总结起来gb28181也是客户端和服务器的工作方式,通过sip协议协商控制信息,通过rtp协议推送音视频流。
这次在ubuntu中搭建一个srs音视频服务器,使能gb28181功能,win10中使用一个客户端连接服务器推流。
1 下载srs代码,编译链接
github地址:ossrs/srs at 6.0release
这里使用的是6.0版本,注意不要用最新版,那是开发版本,很多特性都不一样,很容易出错。
bash
git clone https://github.com/ossrs/srs.git
cd srs/trunk
# 配置编译选项,强制开启 GB28181 功能
./configure --gb28181=on
make
编译成功后,运行srs
bash
./objs/srs -c conf/gb28181.conf

可以看到服务器运行成功了,sip是tcp类型的,端口是5060。
2 win10上搭建一个rtsp服务器用作客户端码流
可以看我以前的文章,mediamtx+ffmpeg推流

3 win10上下载一个gb28181客户端测试
真实的ipc也是一个gb28181客户端,我们可以在win10上模拟一个客户端来测试。
下载地址:EasyDarwin流媒体音视频资源汇总

打开软件后,会有一堆的参数要填写,需要填对才行,具体参数参考srs的网页说明:

将各种参数设置进客户端软件:

可以看到注册成功了,而且自动开启了推流。
4 打开srs后台查看
srs有个http网页可以管理服务器,打开地址:http://192.168.138.130:8080/


预览中就是推送上去的视频流了:

gb28181大概使用方法就是这样的,但是sip协议和具体的注册、推流流程都比较复杂,要理解还是要花大功夫。
后续1 linux gb28181_client
上面的gb28181客户端是win10的,但是在ipc设备一般是linux的系统,我们来编译一个linux的gb28181_client,让他去连接我们的srs服务器。
仓库地址:lyyyuna/gb28181_client
https://github.com/lyyyuna/gb28181_client
下载编译后,命令行中输入命令:
ubuntu@ubuntu:~/Desktop/temp/gb28181/gb28181_client/cmake-build-debug-gcc$ ./gb28181-client --server-ip 192.168.138.130 --server-id 34020000002000000001 --server-port 5060 --device-id 34020000001310000002 --username admin --password admin --filepath ../samples/bigbuckbunny_1280x720_24fps_annexb_012.h264

在服务器的后台看看,上线了,而且有视频流:
