Commit Graph

343 Commits (56a4ca3f7e8d0aad4533917d3ddaaade155da8a9)

Author SHA1 Message Date
chundonglinlin 0a0fb23be0 API: Add service_id for http_hooks, which identify the process, v6.0.28, v5.0.142 (#3424)
PICK 733aeaa641

Co-authored-by: Winlin <winlin@vip.126.com>
Co-authored-by: Haibo Chen <495810242@qq.com>
2 years ago
Winlin 7fe0e28dd5 Compatible with legacy RTMP URL. v5.0.142. v6.0.27 (#3429)
For compatibility, transform
  rtmp://ip/app...vhost...VHOST/stream
to typical format:
  rtmp://ip/app/stream?vhost=VHOST

This is used for some legacy devices, which does not
support standard HTTP url query string.

PICK b75668b509

---------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
Co-authored-by: john <hondaxiao@tencent.com>
2 years ago
john 7839c667af SRT: Reduce latency to 200ms of srt2rtc.conf (#3409)
PICK 64fa116c65

Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: chundonglinlin <chundonglinlin@163.com>
2 years ago
chundonglinlin d1dec927d9 Config: Error when both HLS and HTTP-TS enabled. (#3400)
PICK 5b001fe344

Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: john <hondaxiao@tencent.com>
2 years ago
Haibo Chen a970bfd2a3 HLS: support kick-off hls client (#3371)
* HLS: support kick-off hls client
* Refine error response when reject HLS client.
* Rename SrsM3u8CtxInfo to SrsHlsVirtualConn
* Update release v5.0.139 v6.0.21

PICK 7e83874af0

---------

Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: john <hondaxiao@tencent.com>
2 years ago
john d6477c24d6 RTC: fix rtc publisher pli cid (#3318)
* RTC: fix rtc publisher pli cid
* RTC: log bridge request keyframe
* Update release v6.0.19 v5.0.138

PICK 7922057467

Co-authored-by: Winlin <winlin@vip.126.com>
Co-authored-by: ChenGH <chengh_math@126.com>
2 years ago
panda 9600e495c7 Rewrite research/api-server code by Go, remove Python. (#3382)
* support api-server golang

* Update release to v6.0.18 and v5.0.137

PICK 81566868bf

Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: chundonglinlin <chundonglinlin@163.com>
Co-authored-by: ChenGH <chengh_math@126.com>
2 years ago
john 4a31b2ea1f SRT: fix crash when srt_to_rtmp off (#3386)
* SRT: fix crash when srt_to_rtmp off
* Release v5.0.136 v6.0.17

PICK c5ccee1edf

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
2 years ago
chundonglinlin be8b1b94a6 API: Support server/pid/service label for exporter and api. (#3385)
* Exporter: Support server/pid/service.(#3378)
* API: Support return server/pid/service.(#3378)
* Use 8-length service id.
* Update release v5.0.135 v6.0.16

PICK 02653ce2aa

Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: Haibo Chen <495810242@qq.com>
2 years ago
Haibo Chen 9bf45bea01 GB: Fix PSM parsing indicator bug. v5.0.134 (#3383)
PICK a78936f517

Co-authored-by: pengfei.ma <pengfei.ma@ctechm.com>
Co-authored-by: chundonglinlin <chundonglinlin@163.com>
2 years ago
stone 25eb21efe8
Improve file writer performance by fwrite with cache. v5.0.133 (#3308)
* SrsFileWriter leverages libc buffer to boost dvr write speed.

* Refactor SrsFileWriter to use libc file functions mockable

* Add utest and refine code.

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
Winlin e655948e96 DVR: Support blackbox test based on hooks. v5.0.132 (#3365) 2 years ago
winlin a27ce1d50f FFmpeg: Support build with FFmpeg native opus. v5.0.131 (#3140) 2 years ago
winlin 3612473516 CORS: Refine HTTP CORS headers. v5.0.130 2 years ago
winlin d02b942263 SRS4: Security: Enable CIDR for allow/deny play/publish. (#2914)
PICK 55ca61ec9c
2 years ago
winlin 3b59972a90 Add blackbox test for HLS and MP3 codec. v5.0.129 (#296) (#465) 2 years ago
Winlin 2141d220b4
Test: Support blackbox test by FFmpeg. v5.0.128 (#3355)
1. Enable blackbox test for each PR and push.
2. Refine Makefile and README for srs-bench.
3. Add blackbox using FFmpeg and ffprobe.
4. Add blackbox basic test for RTMP stream.
5. Add blackbox basic test for HTTP-FLV stream.
6. Fix utest rand seed issue.
2 years ago
ChenGH dd0f398296
Asan: Disable asan for CentOS and use statically link if possible. v5.0.127 (#3347) (#3352)
* Asan: Disable asan for CentOS and use statically link if possible. v5.0.127 (#3347)

1. Disable asan for all CentOS by default, however user could enable it.
2. Link asan statically if possible.

* Update version to v5.0.127

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin 02a18b328c MP3: Upgrade mpegts.js to support HTTP-TS with mp3. v5.0.126 (#296) 2 years ago
Haibo Chen 3727d0527c
API: Fix duplicated on_stop callback event bug. (#3349)
* fix hls bug:Duplicated on_stop callback

* improve utest

* Refine magic number.

* API: Fix duplicated on_stop callback event bug. v5.0.125

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin 7750bdae10 GB28181: Enable regression test for gb28181. v5.0.122
1. Build regression test tool for gb28181.
2. Run regression test for gb28181.
3. Format go code and eliminate logs.
4. Change base docker to ubuntu20.
2 years ago
winlin 5559ac25fe Refine configure to guess OS automatically. v5.0.121
1. Guess for macOS and cygwin64.
2. Refine options for configure.
2 years ago
winlin 07a9a005d5 Refine default config file for SRS. v5.0.120
1. Docker use srs.conf and env variables.
2. Show help if run SRS without any options.
3. Do not guess config file, use whatever from user.
2 years ago
winlin 8a0ac8e3a1 FLV: Fix bug for header flag gussing. v5.0.119 (#939) 2 years ago
winlin 37867533cd MP3: Convert RTMP(MP3) to WebRTC(OPUS). v5.0.118 (#296) (#3340) 2 years ago
winlin 95defe6dad MP3: Support dump stream information. v5.0.117 (#296) (#3339) 2 years ago
winlin f6e0b1c894 MP3: Support mp3 for RTMP/HLS/HTTP-FLV/HTTP-TS/HLS etc. v5.0.116 2 years ago
winlin 05d7400cd5 Merge branch v4.0.269 into 5.0release
1. MP3: Fix bug for TS or HLS with mp3 codec. v4.0.269 (#296) (#3333)
2 years ago
Winlin 577cd299e1
MP3: Fix bug for TS or HLS with mp3 codec. v4.0.269 (#296) (#3333)
* MP3: Fix bug for TS or HLS with mp3 codec. v4.0.269 (#296)

1. Refresh HLS audio codec if changed in stream.
2. Refresh TS audio codec if changed in stream.
3. Fix mp3 demux bug in SrsFormat::audio_mp3_demux.
4. Use 3(MPEG1) not 4(MPEG2) as PMT stream type, follow FFmpeg.
5. MP3: Update utest for mp3 sample parsing.
6. MP3: Ignore empty frame sample.
7. UTest: Fix utest failed, do not copy files.
2 years ago
winlin 5dcd6637e3 Fix #3328: Docker: Avoiding duplicated copy files. v5.0.115 2 years ago
Winlin 6f3d6b9b65
GB: Refine lazy object GC. v5.0.114 (#3321)
* GB: Refine lazy object GC.

1. Remove gc_set_creator_wrapper, pass by resource constructor.
2. Remove SRS_LAZY_WRAPPER_GENERATOR macro, use template directly.
3. Remove interfaces ISrsGbSipConn and ISrsGbSipConnWrapper.
4. Remove ISrsGbMediaConn and ISrsGbMediaConnWrapper.

* GC: Refine wrapper constructor.

* GB: Refine lazy object GC. v5.0.114
2 years ago
ChenGH 7eaee46f1f
Asan: Support parse asan symbol backtrace log. v5.0.113 (#3324)
* asan: support parse asan symbol log

* asan: refine srs_parse_asan_backtrace_symbols error code

* asan: Refine code, extract asan log to error file.

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
john 09a96175e8
SRT: Fix srt to rtmp crash when sps or pps empty. v5.0.112 (#3323)
* SRT: fix crash when sps/pps empty. v5.0.112

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
Winlin 56040cab42
GB28181: Fix memory overlap for small packets. v5.0.111 (#3315) 2 years ago
Winlin a36cb57949
FLV: Support set default has_av and disable guessing. v5.0.110 (#3311)
* FLV: Support set default has_av and disable guessing. v5.0.110

1. Support config default has_audio and has_video.
2. Support disable guessing has_audio or has_video.

* FLV: Reset to false if start to guess has_av.

* FLV: Add regression test for FLV header av metadata.
2 years ago
Winlin 4551200e95
FLV: Drop packet if header flag is not matched. v5.0.109 (#3306)
1. Ignore audo or video packets if FLV header disable it.
2. Run: Add regression test config and run for IDEA.
3. Test: Refine regression test to allow no audio/video for FLV
4. Config: Whether drop packet if not match header.
2 years ago
Winlin 35185cf844
FLV: Reset has_audio or has_video if only sequence header. (#3310)
1. Reset has_audio if got some video frames but no audio frames.
2. Reset has_video if got some audio frames but no video frames.
3. Note that audio/video frames are not sequence header.
2 years ago
john d1bc155c8b
DASH: Fix dash crash bug when writing file. v5.0.108 (#3301)
Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
john bbe333d3ca
SRT: Support SRT to RTMP to WebRTC. v5.0.107 (#3296)
* SRT: Support SRT to RTMP to WebRTC. v5.0.107

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
Haibo Chen c5a0c5947f
API: Parse fragment of URI. v5.0.106 (#3295)
* parse fragment of uri
* adapt FMLE URL: 'rtmp://ip/app/app2#k=v/stream', then add more test case

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin 0e550d496b Cygwin: Enable gb28181 for Windows. v5.0.105 2 years ago
chengh 8be4c8e334 Asan: Set asan loging callback. v5.0.104 2 years ago
winlin 41769308d2 GB28181: Enable GB for CentOS 7 package. v5.0.103 2 years ago
winlin 4b5ae7b3d2 Package script support extra options. v5.0.102 2 years ago
winlin e86e0c8999 Disable CLS and APM by default. v5.0.101 2 years ago
mapengfei53 c7b7921712
Config: Add utest for configuring with ENV variables. v5.0.100 (#3284)
* Config: Add utest for configuring with ENV variables.

Co-authored-by: pengfei.ma <pengfei.ma@ctechm.com>
Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
stone a4d9e45545
Live: Fix bug for gop cache limits. v5.0.99 (#3289)
* bugfix: setting srt bridge to rtmp gop cache limit while SrsMpegtsSrtConn::acquire_publish 

* setting http_stream gop cache limit while SrsHttpStreamServer::hijack

* if gop_cache_max_frames_ == 0, don't enable the got cache max frames limit

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
Winlin 5cadfff2e5
SRT: Support transform tlpkdrop to tlpktdrop. 5.0.98 (#3279) 2 years ago
Winlin fdbfe59784
Config: Add ENV tips for config. 5.0.97 (#3278) 2 years ago
john 271afbbf82
DASH: Fix number mode bug to make it run. v5.0.96 (#3240)
* Add utc time utility
* Fix calculate duration in fmp4
* Refine dash code, use segment template timeline
* Shrink m4s file and cleanup
* Support play by dash.js
* Use SegmentTemplate timeline mode with $Number$

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
Winlin af192d6184
For #3176: GB28181: Error and logging for HEVC. v5.0.95 (#3276)
1. Parse video codec from PSM packet.
2. Return error and logging if HEVC packet.
3. Ignore invalid AVC NALUs, drop AVC AUD and SEI.
4. Disconnect TCP connection if HEVC.
2 years ago
stone ec76512e42
Live: Limit cached max frames by gop_cache_max_frames (#3236)
* add gop_cache_max_frames

* Live: Limit cached max frames by gop_cache_max_frames. v5.0.93

Co-authored-by: wanglei <wanglei@unicloud.com>
Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin cdbebb3729 Merge branch '4.0release' into develop 2 years ago
johzzy e529536563 WebRTC: Fix no audio and video issue for Firefox. (#3079) v4.0.268
* Remove extern SrsPps* duplicate declarations

* fix(rtmp2rtc): fix video payload type for rtmp to rtc bridge (#3041)

* Revert changes not belongs to this PR.

* Fix naming issue, follow SRS style.

* Use srs_assert instead of assert.

* Fix firefox no audio issue.

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
Winlin b72ad85502
Asan: Check libasan and show tips. v5.0.92 (#3266) 2 years ago
ChenGH 6b130d4205
Asan: Try to fix st_memory_leak for asan check (#3264)
* asan: try to fix st_memory_leak for asan check

* asan: srs_st_unit should be call in hybrid server stop

* Rename st_uninit to st_destroy. v5.0.91

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
ChenGH f4f9c70d79
Asan: Fix global ip address leak check bug. v5.0.90 (#3248)
* asan: fix global ips memory leak bug

* Asan: Fix global ip address leak check. v5.0.90

* Asan: Directly start SRS for daemon error fixed.

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
Winlin b18ee398ed
Windows: Support cygwin pipline and packager. v5.0.89 (#3257)
1. Support github actions on Windows Server 2022.
2. Use cygwin64 in windows-latest to build SRS.
3. Package SRS-xxx-setup.exe by NSIS.exe
4. Patch crypto/include/config.h for libsrtp.
5. Support run as administrator.
6. Apply utest for cygwin.
7. Enable srtp over openssl.
2 years ago
winlin efea38c51a Update features for SRS 5.0 2 years ago
winlin 5bae930621 Fix #3215: Callback: Fix bug for response string 0. v5.0.88 2 years ago
wenjie.zhao e9503a9c9a For #2532: Windows: Replace ln by cp for windows. v5.0.87 (#3246)
1. Replase ln by cp for windows.
2. Refine OS and CPU arch detecting.
3. Support configure from any directory by `SRS_WORKDIR`.
4. Support output to any directory by `SRS_OUTPUT`.
5. Disable sanitizer for gperf.
6. Use parallels build for make.
7. Refine bash variable check.
2 years ago
chundonglinlin 9f4338bd9d
For #2899: Exporter: Add metrics cpu, memory and uname. (#3224)
* Exporter: metrics support cpu gauge.
* Exporter: metrics support memory and uname..
* Exporter: Ignore error when uname fail.

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin 9f7a06bc9e Config: Support startting with environment variable only. v5.0.85 2 years ago
Winlin 2d1ba46e37
Fix #3218: Log: Follow Java/log4j log level specs. v5.0.83 (#3219)
1. Support Java/log4j log level text.
2. Support configuring by `--log-new-level=on` which is enabled by default.
3. Support `--log-new-level=off` to use SRS 4.0 log level for compatibility.
2 years ago
winlin e9915c3bd7 Log: Refine the log interface. v5.0.82 2 years ago
winlin 252851d1b0 For #3216: Support Google Address Sanitizer. v5.0.81 2 years ago
winlin e10fa6dc91 Kernel: Support grab backtrace stack when assert fail. v5.0.80 2 years ago
winlin 5a1a234855 ST: Refine tools and CMakeLists.txt. Add backtrace example. v5.0.79 2 years ago
winlin 21b9345387 Fix #2901: Edge: Fast disconnect and reconnect. v5.0.78 2 years ago
winlin 7d782ee8c9 Fix #2901: Edge: Fast disconnect and reconnect. v4.0.267 2 years ago
john f1be2ebd3b
SRT: use default streamid when empty (#3202)
* SRT: use default streamid when empty

* Fix #3198: SRT: Support PUSH SRT by IP and optional port. v5.0.76

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
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.
2 years ago
winlin cfbbe3044f HTTP: Skip body and left message by upgrade. v5.0.73 2 years ago
winlin dc20d5ddbc ST: Support set context id while thread running. v5.0.72 2 years ago
winlin 4ad4dd0975 RTC: Refine SDP to support GB28181 SSRC spec. v5.0.71 2 years ago
winlin 1e6143e2eb GB28181: Refine HTTP parser to support SIP. v5.0.70 2 years ago
winlin 927dd473eb Kernel: Support lazy sweeping simple GC. v5.0.69 2 years ago
winlin 4b7d9587f4 HTTP: Support HTTP header in creating order. v5.0.68 2 years ago
chundonglinlin 981cab40d3
API: support metrics for prometheus.(#2899) (#3189)
* API: support metrics for prometheus.

* Metrics: optimize metrics statistics info.

* Refine: remove redundant code.

* Refine: fix metrics srs_streams param.

* Metrics: add major param.

* Metrics: refine params and metric comments.

* For #2899: API: Support exporter for Prometheus. v5.0.67

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin e31f3b0e64 For #3167: WebRTC: Refine sequence jitter algorithm. v5.0.66 2 years ago
winlin 0c6d30861b Merge branch '4.0release' into develop 2 years ago
winlin 386b92e9ab For #3167: WebRTC: Refine sequence jitter algorithm. v4.0.266 2 years ago
john b328142140
Printf warn log when SRT audio duration too large (#3186)
* SRT: print warning log when audio duration too large

* Fix #3164: SRT: Choppy when audio ts gap is too large. v5.0.65

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin 3e2f8622f8 APM: Support distributed tracing by Tencent Cloud APM. v5.0.63 2 years ago
winlin 4d0a4faa9d For #3179: WebRTC: Make sure the same m-lines order for offer and answer. v5.0.63 2 years ago
winlin 1b25ef9028 Merge branch '4.0release' into develop 2 years ago
winlin 686f57799e Fix #3179: WebRTC: Make sure the same m-lines order for offer and answer. v4.0.265 2 years ago
winlin 98ba8ae541 For #3174: WebRTC: Support Unity to publish or play stream. v5.0.62 2 years ago
winlin 6d18093e16 Merge branch '4.0release' into develop 2 years ago
winlin aea2bfbaf9 For #3174: WebRTC: Support Unity to publish or play stream. v4.0.264 2 years ago
winlin 1c0236aa0d Fix #3093: WebRTC: Ignore unknown fmtp for h.264. v4.0.263 2 years ago
winlin 3eb046612b Fix #3170: WebRTC: Support WHIP(WebRTC-HTTP ingestion protocol). v5.0.61 2 years ago
winlin e47c3c410c Merge branch '4.0release' into develop 2 years ago
winlin 15610ca488 Fix #3170: WebRTC: Support WHIP(WebRTC-HTTP ingestion protocol). v4.0.262 2 years ago
winlin 625069af7f WebRTC: Extract SrsRtcNetwork layer for UDP/TCP. 2 years ago
winlin 424713a31d Merge branch '4.0release' into develop 2 years ago
winlin e0c8c199d5 Fix HTTP url parsing bug. v4.0.261 2 years ago
winlin 79358673ef Merge branch '4.0release' into develop 2 years ago
winlin 34196ea7f7 Fix #3167: WebRTC: Play stucked when republish. v4.0.260 2 years ago
winlin 84c96076a9 Merge branch '4.0release' into develop 2 years ago