1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-02-12 19:31:53 +00:00
Commit graph

8455 commits

Author SHA1 Message Date
winlin
33db1584bf WHIP: Improve HTTP DELETE for notifying server unpublish event. v5.0.153 2023-05-12 15:27:03 +08:00
Winlin
d1e770c4e5 WHIP: Improve HTTP DELETE for notifying server unpublish event (#3539)
This PR improves the functionality of the HTTP DELETE method used by WHIP to notify the server when the client stops publishing. The URL is parsed from the location header returned by SRS, and the URL is refined with the addition of the action=delete parameter to ensure more accurate identification of the DELETE request.

Furthermore, SRS will disconnect and close the session, enabling the client to publish the stream again quickly and easily. This update eliminates the approximately 30-second waiting period previously required for republishing the stream after an unpublish event.

Overall, this update provides a more effective and efficient method for notifying the server about unpublish events and will enhance the workflow experience for users of the WHIP platform.

-------

Co-authored-by: Haibo Chen <495810242@qq.com>
Co-authored-by: ChenGH <chengh_math@126.com>
2023-05-12 15:25:26 +08:00
Haibo Chen
12f3a31175 API: Support HTTP basic authentication for API. v6.0.4, v5.0.152 (#3458)
PICK 771ae0a1a6

Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: john <hondaxiao@tencent.com>
2023-04-01 12:48:33 +08:00
chundonglinlin
41decbae95 WebRTC: Error message carries the SDP when failed. v5.0.151, v6.0.39 (#3450)
PICK 571043ff3d

Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: ChenGH <chengh_math@126.com>
2023-03-27 22:28:34 +08:00
Winlin
fdaab863dc WebRTC: Support configure CANDIDATE by env (#3470)
In dockerfile, we can set the default RTC candidate to env:

```
ENV SRS_RTC_SERVER_CANDIDATE=\$CANDIDATE
CMD ["./objs/srs", "-e"]
```

When starts a docker container, user can setup the candidate by env:

```
docker run --rm -it --env CANDIDATE=1.2.3.4 ossrs/srs:5
```

We should parse the content of SRS_RTC_SERVER_CANDIDATE as env variable name and parse it again.

PICK b34255c3d0

---------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
Co-authored-by: pengfei.ma <pengfei.ma@ctechm.com>
2023-03-27 19:25:20 +08:00
yashwardhan-jyani
6b2c6b3274 Remove unneccessary NULL check in srs_freep. v5.0.150, v6.0.38 (#3477)
PICK b574ad1a07

Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: john <hondaxiao@tencent.com>
2023-03-25 12:10:17 +08:00
john
cd19667a34 RTC: Call on_play before create session, for it might be freed for timeout. v5.0.149, v6.0.37 (#3455)
PICK d8755711c1

Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: ChenGH <chengh_math@126.com>
2023-03-25 11:45:59 +08:00
winlin
cdc65be447 Fix release workflow bug. 2023-03-23 13:58:58 +08:00
winlin
55fbee3304 Release v5.0-a5, 5.0 alpha5, v5.0.148, 162066 lines. 2023-03-23 10:35:01 +08:00
Winlin
5cc794b22d WHIP: Support DELETE resource for Larix Broadcaster. v5.0.148 v6.0.36 (#3427)
* WHIP: Support DELETE resource.
* Support push by Larix.
* FLV: Disable stash buffer for realtime.
* WHEP: Fix muted issue.

-------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
Co-authored-by: panda <542638787@qq.com>
2023-03-23 10:22:00 +08:00
Winlin
dfef94411f Support WHIP and WHEP player. v5.0.147 and v6.0.35 (#3460)
PICK c001acaae9

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
Co-authored-by: panda <542638787@qq.com>
2023-03-21 08:51:42 +08:00
chundonglinlin
2f1d0ccd34 HttpConn: judge nb_chunk no memory address. (#3465)
Co-authored-by: john <hondaxiao@tencent.com>
2023-03-20 14:22:28 +08:00
Winlin
34c78a74fe WebRTC: Warning if no ideal profile. v6.0.33, v5.0.146 (#3446)
For WebRTC, SRS expect the h.264 codec is:

```
a=rtpmap:106 H264/90000
a=fmtp:106 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
```

But sometimes, the device does not support the profile, for example only bellow:

```
a=fmtp:123 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e033
a=fmtp:122 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=420033
a=fmtp:121 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640033
a=fmtp:120 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0033
```

So we should warning user about the profile missmatch, because it might not work.

PICK a7514484a2

----------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
Co-authored-by: LiPeng <lipeng19811218@gmail.com>
2023-03-07 20:02:05 +08:00
Winlin
47aa42f1e2 Support configure for generic linux. v5.0.145, v6.0.32 (#3445)
If your OS is not CentOS, Ubuntu, macOS, cygwin64, run of configure will fail with:

```
Your OS Linux is not supported.
```

For other linux systems, we should support an option:

```
./configure --generic-linux=on
```

Please note that you might still fail for other issues while configuring or building.

PICK b31940a15a

-------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
Co-authored-by: ChenGH <chengh_math@126.com>
2023-03-07 19:12:06 +08:00
MarkCao
36a72282e6 Kickoff publisher when stream is idle, which means no players. v6.0.31, v5.0.144 (#3105)
For some use scenario, the publisher is invited when player want to view the stream:

1. Publisher connect to system, but does not publish any stream to SRS yet.
2. Player connect to system and start to request the stream.
3. System notifies publisher to publish stream to SRS.
4. Player play the stream from SRS.

Please notice that `system` means your business system, not SRS.

This is what we called `on-demand-live-streaming`, so when the last player stop to view the stream, what happends?

1. System needs to notify publisher to stop publish.
2. Or, SRS disconnect the publisher when idle(the last player stops playing).

This PR is for the solution 2, so that the cleanup is very simple, your system does not need to notify publisher to stop publish, because SRS has already disconnected the publihser.

PICK 8fde0366fb

---------

Co-authored-by: winlin <winlin@vip.126.com>
Co-authored-by: chundonglinlin <chundonglinlin@163.com>
2023-03-06 09:13:39 +08:00
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>
2023-02-25 08:44:59 +08:00
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>
2023-02-23 10:13:18 +08:00
chundonglinlin
f12096534a SRT: fix req param leak. (#3423)
PICK b957463e5e

Co-authored-by: john <hondaxiao@tencent.com>
2023-02-16 08:26:24 +08:00
winlin
9c9f3f1247 Rename SRS_SRS_LOG_TANK to SRS_LOG_TANK. #3410 2023-02-13 11:35:06 +08:00
winlin
af7f5b3c55 Release v5.0-a4, 5.0 alpha4, v5.0.141, 161897 lines. 2023-02-12 16:25:31 +08:00
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>
2023-02-12 16:23:57 +08:00
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>
2023-02-08 20:48:42 +08:00
Haibo Chen
ed95a8f53d GB: fix pointer not free (#3396)
PICK 47c2d59b31

Co-authored-by: pengfei.ma <pengfei.ma@ctechm.com>
Co-authored-by: chundonglinlin <chundonglinlin@163.com>
2023-02-07 20:28:17 +08:00
winlin
b602e47e1c Update the dev code for SRS 2023-01-31 16:18:41 +08:00
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>
2023-01-29 11:43:04 +08:00
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>
2023-01-19 10:55:16 +08:00
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>
2023-01-18 13:14:26 +08:00
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>
2023-01-18 08:54:01 +08:00
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>
2023-01-18 07:28:25 +08:00
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>
2023-01-17 13:05:35 +08:00
Winlin
a4e7427433
Config: Support better env name for prefixed with srs (#3370)
* Actions: Fix github action warnings.

* Forward: Bind the context id of source or stream.

* Config: Support better env names.

Co-authored-by: pengfei.ma <pengfei.ma@ctechm.com>
Co-authored-by: Haibo Chen <495810242@qq.com>
2023-01-11 10:39:05 +08:00
winlin
920d492942 GB: Compatible with deprecated config. 2023-01-08 13:20:41 +08:00
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>
2023-01-08 12:05:37 +08:00
winlin
fb1790230b Test: Refine blackbox test args. 2023-01-08 11:52:06 +08:00
Winlin
e655948e96 DVR: Support blackbox test based on hooks. v5.0.132 (#3365) 2023-01-07 21:33:02 +08:00
winlin
a27ce1d50f FFmpeg: Support build with FFmpeg native opus. v5.0.131 (#3140) 2023-01-06 17:44:00 +08:00
winlin
372390f8d1 Build: Refine install tips. 2023-01-06 17:43:41 +08:00
winlin
3612473516 CORS: Refine HTTP CORS headers. v5.0.130 2023-01-05 20:25:38 +08:00
winlin
62963b206f Test: Add blackbox test for SRT. 2023-01-05 09:03:12 +08:00
winlin
95b534ff10 Test: Run fast and slow blackbox tests seperately. 2023-01-03 22:47:07 +08:00
winlin
c31a8076bb Test: Add chunksize and atc blackbox test for RTMP. 2023-01-03 22:11:33 +08:00
winlin
d02b942263 SRS4: Security: Enable CIDR for allow/deny play/publish. (#2914)
PICK 55ca61ec9c
2023-01-03 17:09:47 +08:00
winlin
3b59972a90 Add blackbox test for HLS and MP3 codec. v5.0.129 (#296) (#465) 2023-01-03 16:49:59 +08:00
Winlin
e3a4ff9fa1
Test: Add blackbox for MP3 audio codec. (#3358) 2023-01-03 16:46:39 +08:00
winlin
30779f3b5a Test: Add blackbox for HLS. 2023-01-03 14:23:32 +08:00
winlin
a47b3a7842 Release v5.0-a3, 5.0 alpha3, v5.0.128, 161327 lines. 2023-01-02 19:09:37 +08:00
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.
2023-01-02 15:33:17 +08:00
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>
2023-01-02 14:57:47 +08:00
winlin
02a18b328c MP3: Upgrade mpegts.js to support HTTP-TS with mp3. v5.0.126 (#296) 2023-01-01 20:15:00 +08:00
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>
2023-01-01 19:24:50 +08:00