当前位置: 首页 > news >正文

GB28181开发--SRS+Jessibuca‌

SRS-SIP做为SIP服务器,与前端设备进行信令交互。SRS做为媒体服务器,与前端设备进行音视频预览/回放。视频播放采用Jessibuca‌,可以解决播放实时性和H265问题。

一、SRS

SRS是一个开源的(MIT协议)简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等协议。SRS媒体服务器和FFmpeg、OBS、VLC、 WebRTC等客户端配合使用,提供流的接收和分发的能力,是一个典型的发布 (推流)和订阅(播放)服务器模型。SRS支持互联网广泛应用的音视频协议转换,比如可以将RTMP或SRT, 转成HLS或HTTP-FLV或WebRTC等协议。推荐使用SRS 5.0的GB,比如:版本为5.0.74+

1、编译SRS

./configure --gb28181=on
make

2、启动SRS

前台启动

./objs/srs -c conf/gb28181.conf

后台启动

nohup ./objs/srs -c ./conf/gb28181.conf >/dev/null 2>&1 &
# 查看日志
 tail -n 30 -f ./objs/srs.log
 # 查看服务器状态
./etc/init.d/srs status

注意: 如果你是公网服务器,一定要配置对Candidate,请参考Candidate的说明。

配置SRS(GB28181)

SRS流媒体服务器中和GB28181相关的配置在conf目录下的gb28181.conf文件中,内容如下:

# push gb28181 stream to SRS.

listen                  1935; ## RTMP服务端口号,可用于拉取28181的推流数据
max_connections         1000;
daemon              off;
srs_log_tank        console; ## 表示服务在控制台运行,方便看日志

http_api {  		## SRS提供了标准的HTTP API接口,可用于触发GB28181-SIP信令
    enabled         on;
    listen          1985;
}

http_server {  ## HTTP Server用于支持HLS拉流
    enabled         on;
    listen          8080;
}

stats {
    network         0;
}

stream_caster {
    enabled             on;  
    caster              gb28181; ## 打开GB28181功能

    # 转发流到rtmp服务器地址与端口
    # TODO: https://github.com/ossrs/srs/pull/1679/files#r400875104
    # [stream] is VideoChannelCodecID(视频通道编码ID) for sip
    # 自动创建的道通[stream] 是‘chid[ssrc]’ [ssrc]是rtp的ssrc
    # [ssrc] rtp中的ssrc
    output              rtmp://127.0.0.1:1935/live/[stream];
    
    # 接收设备端rtp流的多路复用端口
    listen              9000;
    # 多路复用端口类型,on为tcp,off为udp
    # 默认:on
    tcp_enable            on;

    # rtp接收监听端口范围,最小值
    rtp_port_min        58200;
    # rtp接收监听端口范围,最大值
    rtp_port_max        58300;

    # 是否等待关键帧之后,再转发,
    # off:不需等待,直接转发
    # on:等第一个关键帧后,再转发
    wait_keyframe       on;
    
    # rtp包空闲等待时间,如果指定时间没有收到任何包
    # rtp监听连接自动停止,发送BYE命令
    rtp_idle_timeout    30;

    # 是否转发音频流
    # 目前只支持aac格式,

相关文章:

  • LINUX网络基础 [一] - 初识网络,理解网络协议
  • 集合论--形式化语言里的汇编码
  • vulnhub渗透日记23:bulldog
  • SQLite Having 子句详解
  • java基础100道面试题
  • AT32F421专题---PA9 PA10的I2C1连接AT24C02失败及解决
  • Diffusion模型中时间t嵌入的方法
  • Teaching Small Language Models Reasoning throughCounterfactual Distillation
  • Hive-07之企业级调优
  • Docker部署MySQL
  • Python:简单的爬虫程序,从web页面爬取图片与标题并保存MySQL
  • 大模型核心要素完全解析:从数字神经元到智能对话的奥秘
  • go语言数据类型
  • (50)[HGAME 2023 week2]before_main
  • AutoGen学习笔记系列(六)Tutorial - Termination
  • unittest框架 核心知识的系统复习及与pytest的对比
  • uniapp x 学习之 uts 语言快速入门
  • 【Embedding】何为Embedding?
  • 筑牢网络安全防线:守护您的数据安全
  • 单体架构、集群、分布式、微服务的区别!
  • 吉利汽车一季度净利润大增264%,称整合极氪后实现整体效益超5%
  • 工商银行杭州金融研修院原院长蒋伟被“双开”
  • 盛和资源海外找稀土矿提速:拟超7亿元收购匹克,加快推动坦桑尼亚项目
  • 甘肃发布外卖食品安全违法行为典型案例:一商家用鸭肉冒充牛肉被罚
  • 陕西河南山西等地将现“干热风”灾害,小麦产区如何防范?
  • 中国巴西关于乌克兰危机的联合声明