winlin
c12deded98
GB28181: Fix bug for parsing GB to RTC.
2022-10-07 19:47:34 +08:00
Winlin
5a420ece3b
GB28181: Support GB28181-2016 protocol. v5.0.74 ( #3201 )
...
01. Support GB config as StreamCaster.
02. Support disable GB by --gb28181=off.
03. Add utests for SIP examples.
04. Wireshark plugin to decode TCP/9000 as rtp.rfc4571
05. Support MPEGPS program stream codec.
06. Add utest for PS stream codec.
07. Decode MPEGPS packet stream.
08. Carry RTP and PS packet as helper in PS message.
09. Support recover from error mode.
10. Support process by a pack of PS/TS messages.
11. Add statistic for recovered and msgs dropped.
12. Recover from err position fastly.
13. Define state machine for GB session.
14. Bind context to GB session.
15. Re-invite when media disconnected.
16. Update GitHub actions with GB28181.
17. Support parse CANDIDATE by env or pip.
18. Support mux GB28181 to RTMP.
19. Support regression test by srs-bench.
2022-10-06 17:40:58 +08:00
winlin
efdbf37255
Squash: Move GB28181 to feature/gb28181. 5.0.4
2021-06-16 14:03:55 +08:00
winlin
15901cacee
SquashSRS4: Use SPDX-License-Identifier: MIT. 5.0.3
2021-05-31 13:42:20 +08:00
cfw11
4d6f00e6bf
GB28181: fix parse rtp-tcp failed ( #2378 )
...
* fix parse rtp-tcp failed
* fix parse rtp-tcp failed
Co-authored-by: cfw <fangwei.cheng@transwarp.io>
2021-05-28 21:19:05 +08:00
xialixin
2e14d80aa4
SquashSRS4: Refine GB28181
2021-05-18 09:11:57 +08:00
winlin
e3bca883e1
SuqashSRS4: Build SRT native
2021-05-16 16:14:00 +08:00
winlin
aa07f45545
SquashSRS4: Happy 2021
2021-04-20 19:03:02 +08:00
xialixin@kanzhun.com
4df6fa540f
For #2200 , Enable RTC and FLV for GB28181
2021-02-18 21:51:49 +08:00
xbpeng121
47422b7819
GB28181: 无法对接平台问题及一些小bug ( #2109 )
...
* 1-新增srs_string_split2函数,该函数支持空串也能按照原有顺序进行切分并放入数组
2-SrsGb28181Device增加属性字段,并在收到catalog命令时能够更新该属性
3-修复sip包解包不严谨bug(body中有可能会有SRS_RTSP_CRLFCRLF那么导致header_body[1]就不一定是body了可能只是body的一部分)
* 1-修复停用rtp多路复用参数(invite_port_fixed)不起作用bug
* bugfix: 当srs发送invite时会指定一个ssrc作为流媒体序列号,但有些平台发流时并不使用这个作为ssrc,而是自己新生成一个。(修复该bug是在invite response时解析内容中的sdp,把对方生成的流媒体序列号ssrc读出来,并且更新srs的channel映射)
* Update push.gb28181.conf
恢复成原来的conf
* bugfix,在取得muxer时需要更新。之前写反了
* Merge branch 'develop' into 4.0release
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 修改sdp_map相同属性的连接符
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 修改sdp_map相同属性的连接符
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 解决冲突时,优先选择原有代码(还原选择develop的代码)
* 回退原来代码
* 删除parse_sdp存储至map相关代码
* 格式恢复
* 格式恢复
* 恢复格式
* srs_string_split() 函数的bugfix
Co-authored-by: xbpeng <xianbin.peng@sibat.cn>
2021-01-06 15:37:02 +08:00
PieerePi
3d5c18c25a
GB28181 code crashed in ffmpeg after commit "RTC: Use FFmpeg to transcode aac to opus" < d5a0ad3dd8
>. ( #2057 )
...
Change the size from 64K to 256K.
2020-11-30 11:02:30 +08:00
Jesse Xi
8515f5a91e
incomplete_len 在大华摄像头下,因为大华包头对音频的不标准处理,可能为负值,而sizeof(SrsPsPacketStartCode) 返回的是unsigned 类型, 因些增加判断 ( #2039 )
...
Co-authored-by: jesse.xi <jj.xi@tianrang-inc.com>
2020-11-17 16:44:37 +08:00
winlin
c779d95246
GB28181: Remove chinese comments.
2020-11-16 00:06:03 +08:00
Pieere Pi
ffae1720ec
gb28181模块可用性增强
...
主要改动,
1. 支持作为GB/T 28181上级平台
2. 新的目录接口sip_query_devicelist (/api/v1/gb28181?action=sip_query_devicelist)
3. 各种异常和问题修复
4. 其他一些小改动
以上改动基于feature/rtc分支,因为需要网页用WebRTC来拉GB28181的监控流,gb28181分支代码有点老了。
下面的序号n是指第n个差异块("@@ -"之间的内容)。
srs_gb28181.html
1. 原页面上多加了一个端口号
2-4. 给摄像头加上名称显示
5. 查询目录去掉chid
6. 删除通道参数分解为id和chid
7. API端口固定为1985
srs_app_gb28181.cpp
1-4. 四处因为错误而退出GB28181媒体处理循环,修改为不退出
5. payload为空异常
6. 修正判断startcode越界一个字符导致内存写越界的问题
ps流有可能末尾是全零填充,而且越界的那个字符正好是0x01,这样会多出一个nalu(末尾的三个0x00和一个越界的0x01),后面写video_data内存越界(if (first_pos != pre_pos){块,此处size - pre_pos - 4为-1,uint32_t naluLen得到的值为0,video_data[pre_pos+3] = p[0];写越界)破坏了其他数据,后续video_stream析构出错程序异常退出。
7. 此处srs后来已修复
8. 更新ssrc为被叫返回的值
原代码只支持标准中的《点播域内设备媒体流SSRC处理方式》(设备注册上来),不支持《点播外域设备媒体流SSRC处理方式》(即作为上级平台)。
这是因为如果srs作为上级平台,ssrc不是自己生成的,而是下级平台生成的。
9. 删除通道参数分解为id和chid
10. notify_sip_unregister后delete_stream_channel无效
11. notify_sip_query_catalog清空内存中的设备列表
12. 新函数query_device_list
srs_app_gb28181.hpp
1. update_rtmpmuxer_to_newssrc_by_id声明
2. 新函数get_gb28181_config_ptr和函数delete_stream_channel声明修改
3. 新函数query_device_list
srs_app_gb28181_sip.cpp
1-4. 在调试界面给摄像头加上名称显示;新函数clear_device_list和新函数dumpItemList
5-6. 两处因为错误而退出GB28181信令处理循环,修改为不退出
7. 设备注册上来,不检查服务器ID匹不匹配(支持作为上级平台)
8. 收到一个目录上报消息,更新内存中的数据
9. 更新ssrc为被叫返回的值
10. 新函数query_device_list
srs_app_gb28181_sip.hpp
1. 在调试界面给摄像头加上名称显示
2. 每个设备加上item_list,用于存储目录;新函数clear_device_list和新函数dumpItemList
3. 新函数clear_device_list
srs_app_http_api.cpp
1. 删除通道参数分解为id和chid
2. 新的接口sip_query_devicelist,用于查询所有设备的目录
srs_sip_stack.cpp
1. GB2312转UTF-8类
2. 被叫返回的ssrc初始化
3. parse_xml声明修改
4. 对XML内容进行字符集检测和转换
5-7. parse_xml定义修改
8. SIP BODY里面也有可能有\r\n
9-10. 防止恶意SIP消息 by vicious sip prober
11-12. 新的XML解析目录代码
13. 获取被叫返回的ssrc
srs_sip_stack.hpp
1. 依赖vector
2. 每个设备加上item_list,用于存储目录
3. 被叫返回的ssrc
4. parse_xml声明修改
2020-11-15 23:14:34 +08:00
yinjiaoyuan
fe65c7bf84
For 2034, GB28181: Support transport over TCP
2020-11-15 22:50:59 +08:00
winlin
1661876633
Fix build fail
2020-09-19 10:41:58 +08:00
winlin
64705d1cc8
RTC: Refine resouce management
2020-09-19 10:30:05 +08:00
winlin
4eae93d27b
Rename SrsCoroutineManager to SrsConnectionManager
2020-09-11 17:20:41 +08:00
winlin
2f22a3d38b
For #1926 , refine code
2020-08-30 12:43:55 +08:00
jasongwq
7e5572c5e1
FIX:When 28181 stream stopped,Stream API does not remove it
2020-08-30 12:42:23 +08:00
kyxlx550
d02b560217
remove 28181 is_aac define
2020-08-30 12:06:34 +08:00
kyxlx550
5864ea3472
supprot ps jitbuffer different timestamp of audio and video
2020-08-30 12:06:34 +08:00
kyxlx550
65a23418ed
notes w_ps_file define
2020-07-02 09:06:05 +08:00
kyxlx550
1bbf5c8126
fix ps to h264 frame_size < 0 checkt
2020-07-02 09:06:05 +08:00
kyxlx550
83c2586d79
support audio g711
2020-07-02 09:06:05 +08:00
kyxlx550
e506191484
fix rtmp muxer cycle sleep
2020-07-02 09:06:05 +08:00
kyxlx550
ed82d60aac
fix while sleep time
2020-06-08 18:27:03 +08:00
kyxlx550
2172209321
ps to rtmp via source, h264 start code with replace nalulen
2020-06-07 21:51:06 +08:00
winlin
215b1c234b
Refine the local ip and interface retrieve
2020-05-09 10:40:25 +08:00
kyxlx550
6a070a9a64
support sip ptz cmd
2020-04-20 21:34:18 +08:00
kyxlx550
fb23739113
fix use gb28181 log id
2020-04-17 17:03:03 +08:00
kyxlx550
33b91cd6f2
fix gb28181 api error code
2020-04-16 12:30:11 +08:00
kyxlx550
28bde1d448
fix rtmp send timeout, first key frame wait
2020-04-11 20:36:28 +08:00
winlin
cf48a5594d
Refactor code for #1691
2020-04-09 08:37:28 +08:00
xialixin
d2b8b937d6
fix generate ssrc, rtmp muxer cycle sleep, ps steam parase etc..
2020-04-05 13:53:14 +08:00
xialixin
92d351ef35
fix 'output' format define; support 'host' auto get; time config use SRS internal format; support auto create stream channel on/off
2020-04-04 16:07:23 +08:00
xialixin
5e4fdfd1d4
fix after RTMP is closed, empty PPS and SPS. sip client sockaddr set
2020-04-04 16:07:23 +08:00
xialixin
ac8acc0b22
fix 28281 to 28181, sip heart message, timeout channel peer ip and port reset
2020-04-04 16:07:23 +08:00
winlin
d81cde695d
Refactor code
2020-03-31 22:48:38 +08:00
winlin
6012ac4eb0
Refine code
2020-03-31 22:30:57 +08:00
xialixin
c99fb99ab6
refactor gb28181, supporting SIP server enable, multiplex, API interface
2020-03-31 00:39:10 +08:00
xialixin
8b4f84e336
fix push.gb28181.conf, gb28181conn repeat call serve()
2020-03-20 10:38:38 +08:00
xialixin
cbe9c1dabc
Support gb28181 sip over udp, ps steam over rtp
2020-03-20 00:01:48 +08:00