mirror of
https://github.com/ossrs/srs.git
synced 2025-02-13 11:51:57 +00:00
WebRTC: Support WHEP for play. v5.0.182 v6.0.80 (#3404)
RFC for WHIP: https://datatracker.ietf.org/doc/draft-ietf-wish-whip/ RFC for WHEP: https://datatracker.ietf.org/doc/draft-murillo-whep/ Please note that SRS 5.0 already had WHIP support. I didn't write a document about WHIP, because WHIP is not a RFC right now, but there are clues in [srs-unity](https://github.com/ossrs/srs-unity#usage-publisher). SRS WHIP url for publisher: `http://localhost:1985/rtc/v1/whip/?app=live&stream=livestream` This PR is for WHEP, the url for player is `http://localhost:1985/rtc/v1/whep/?app=live&stream=livestream` PS: There is a great PR for OBS to have WHIP support, see https://github.com/obsproject/obs-studio/pull/7926 and #3581 PS: WHIP for FFmpeg https://github.com/ossrs/ffmpeg-webrtc/pull/1 See #3170 --------- Co-authored-by: Haibo Chen <495810242@qq.com> Co-authored-by: john <hondaxiao@tencent.com> Co-authored-by: ChenGH <chengh_math@126.com>
This commit is contained in:
parent
03d1d91f2f
commit
f9bba0a9b0
7 changed files with 14 additions and 6 deletions
|
@ -7,6 +7,7 @@ The changelog for SRS.
|
|||
<a name="v6-changes"></a>
|
||||
|
||||
## SRS 6.0 Changelog
|
||||
* v6.0, 2023-09-21, Merge [#3404](https://github.com/ossrs/srs/pull/3404): WebRTC: Support WHEP for play. v6.0.80 (#3404)
|
||||
* v6.0, 2023-09-21, Merge [#3807](https://github.com/ossrs/srs/pull/3807): Prevent the output of srt logs in utest. v6.0.79 (#3807)
|
||||
* v6.0, 2023-09-21, Merge [#3696](https://github.com/ossrs/srs/pull/3696): SRT: modify log level from error to debug when no socket to accept. v6.0.78 (#3696)
|
||||
* v6.0, 2023-09-18, Merge [#3804](https://github.com/ossrs/srs/pull/3804): Support FFmpeg timecode, fix AMF0 parsing failed. v6.0.77 (#3804)
|
||||
|
@ -91,6 +92,7 @@ The changelog for SRS.
|
|||
<a name="v5-changes"></a>
|
||||
|
||||
## SRS 5.0 Changelog
|
||||
* v5.0, 2023-09-21, Merge [#3404](https://github.com/ossrs/srs/pull/3404): WebRTC: Support WHEP for play. v5.0.182 (#3404)
|
||||
* v5.0, 2023-09-21, Merge [#3807](https://github.com/ossrs/srs/pull/3807): Prevent the output of srt logs in utest. v5.0.181 (#3807)
|
||||
* v5.0, 2023-09-21, Merge [#3696](https://github.com/ossrs/srs/pull/3696): SRT: modify log level from error to debug when no socket to accept. v5.0.180 (#3696)
|
||||
* v5.0, 2023-09-18, Merge [#3804](https://github.com/ossrs/srs/pull/3804): Support FFmpeg timecode, fix AMF0 parsing failed. v5.0.179 (#3804)
|
||||
|
|
|
@ -179,5 +179,5 @@ function srs_init_whip(id, query) {
|
|||
}
|
||||
function srs_init_whep(id, query) {
|
||||
update_nav();
|
||||
$(id).val(build_default_whip_whep_url(query, '/rtc/v1/whip-play/'));
|
||||
$(id).val(build_default_whip_whep_url(query, '/rtc/v1/whep/'));
|
||||
}
|
||||
|
|
|
@ -571,7 +571,7 @@ function SrsRtcWhipWhepAsync() {
|
|||
|
||||
// See https://datatracker.ietf.org/doc/draft-ietf-wish-whip/
|
||||
// @url The WebRTC url to play with, for example:
|
||||
// http://localhost:1985/rtc/v1/whip-play/?app=live&stream=livestream
|
||||
// http://localhost:1985/rtc/v1/whep/?app=live&stream=livestream
|
||||
self.play = async function(url) {
|
||||
if (url.indexOf('/whip-play/') === -1 && url.indexOf('/whep/') === -1) throw new Error(`invalid WHEP url ${url}`);
|
||||
|
||||
|
|
|
@ -678,7 +678,8 @@ srs_error_t SrsGoApiRtcWhip::do_serve_http(ISrsHttpResponseWriter* w, ISrsHttpMe
|
|||
if (action.empty()) {
|
||||
action = "publish";
|
||||
}
|
||||
if (srs_string_ends_with(r->path(), "/whip-play/")) {
|
||||
// For whip-play or whep, parsed to https://datatracker.ietf.org/doc/draft-murillo-whep/
|
||||
if (srs_string_ends_with(r->path(), "/whip-play/") || srs_string_ends_with(r->path(), "/whep/")) {
|
||||
action = "play";
|
||||
}
|
||||
|
||||
|
|
|
@ -471,13 +471,18 @@ srs_error_t SrsRtcServer::listen_api()
|
|||
}
|
||||
|
||||
// Generally, WHIP is a publishing protocol, but it can be also used as playing.
|
||||
// See https://datatracker.ietf.org/doc/draft-ietf-wish-whep/
|
||||
if ((err = http_api_mux->handle("/rtc/v1/whip/", new SrsGoApiRtcWhip(this))) != srs_success) {
|
||||
return srs_error_wrap(err, "handle whip");
|
||||
}
|
||||
|
||||
// We create another mount, to support play with the same query string as publish.
|
||||
// See https://datatracker.ietf.org/doc/draft-murillo-whep/
|
||||
if ((err = http_api_mux->handle("/rtc/v1/whip-play/", new SrsGoApiRtcWhip(this))) != srs_success) {
|
||||
return srs_error_wrap(err, "handle whip play");
|
||||
return srs_error_wrap(err, "handle whep play");
|
||||
}
|
||||
if ((err = http_api_mux->handle("/rtc/v1/whep/", new SrsGoApiRtcWhip(this))) != srs_success) {
|
||||
return srs_error_wrap(err, "handle whep play");
|
||||
}
|
||||
|
||||
#ifdef SRS_SIMULATOR
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
#define VERSION_MAJOR 5
|
||||
#define VERSION_MINOR 0
|
||||
#define VERSION_REVISION 181
|
||||
#define VERSION_REVISION 182
|
||||
|
||||
#endif
|
||||
|
|
|
@ -9,6 +9,6 @@
|
|||
|
||||
#define VERSION_MAJOR 6
|
||||
#define VERSION_MINOR 0
|
||||
#define VERSION_REVISION 79
|
||||
#define VERSION_REVISION 80
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue