1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-02-13 20:01:56 +00:00
Commit graph

303 commits

Author SHA1 Message Date
Winlin
26f4ab9923
WebRTC: Add support for A/V only WHEP/WHEP player. v6.0.116 (#3964)
---------

Co-authored-by: john <hondaxiao@tencent.com>
2024-03-19 21:08:03 +08:00
Winlin
22c2469414
Upgrade hls.js and set in low latency mode. v6.0.112 (#3924)
HLS typically has a delay of around 30 seconds, roughly comprising three
segments, each lasting 10 seconds. We can reduce the delay to about 5
seconds by lowering the segment duration to 2 seconds and starting
playback from the last segment, achieving a stable delay.

Of course, this requires setting the OBS's GOP to 1 second, and the
profile to baseline, preset to fast, and tune to zerolatency.
Additionally, updating a few configurations in the hls.js player is
necessary, such as setting it to start playback from the last segment,
setting the maximum buffer, and initiating accelerated playback to
reduce latency.

---------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
Co-authored-by: john <hondaxiao@tencent.com>
2024-02-05 21:37:29 +08:00
chundonglinlin
e7b629cd39
RTC: Refine FFmpeg opus audio noisy issue. v5.0.197 v6.0.97 (#3852)
### Description

When converting between AAC and Opus formats (aac2opus or opus2aac), the
`av_frame_get_buffer` API is frequently called.

### Objective

The goal is to optimize the code logic and reduce the frequent
allocation and deallocation of memory.

In the case of aac2opus, av_frame_get_buffer is still frequently called.
In the case of opus2aac, the goal is to avoid calling
av_frame_get_buffer and reduce memory allocations.

### Additional Note

Before calling the `av_audio_fifo_read` API, use
`av_frame_make_writable` to check if the frame is writable. If it is not
writable, create a new frame.

---------

Co-authored-by: john <hondaxiao@tencent.com>
2023-11-04 16:21:44 +08:00
chundonglinlin
4a100616fc
Support build without cache to test if actions fail. v5.0.196 v6.0.96 (#3858)
By default, caching is enabled during compilation, which means that data
is cached in Docker. This helps to avoid compiling third-party
dependency libraries. However, sometimes when updating third-party
libraries, it's necessary to disable caching to temporarily verify if
the pipeline can succeed. Therefore, a configure option should be added.
When this option is enabled, the compilation cache will not be used, and
all third-party libraries will be compiled from scratch.

---------

Co-authored-by: winlin <winlinvip@gmail.com>
2023-11-01 17:47:52 +08:00
Winlin
f9bba0a9b0
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>
2023-09-21 18:41:33 +08:00
panda
30c2f50cae
Upgrade jquery from 1.10.2 to 1.12.2 (#3571)
---------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
2023-06-30 06:28:10 +08:00
chundonglinlin
c0e931ae7a
Replace sprintf with snprintf to eliminate compile warnings. v6.0.45 (#3534)
* Replaced all occurrences of sprintf with snprintf to address deprecation warnings
* Ensured proper buffer size is passed to snprintf to prevent potential buffer overflows
* Ran tests to confirm that the changes do not introduce any new issues or regressions

---------

Co-authored-by: ChenGH <chengh_math@126.com>
2023-05-14 13:04:21 +08:00
Winlin
26aabe413d
RTMP: Support enhanced RTMP specification for HEVC. v6.0.42 (#3495)
* RTMP: Support enhanced RTMP specification for HEVC,  v6.0.42.
* Player: Upgrade mpegts.js to support it.

Enhanced RTMP specification: https://github.com/veovera/enhanced-rtmp

First, start SRS `v6.0.42+` with HTTP-TS support:

```bash
./objs/srs -c conf/http.ts.live.conf
```

Then, you can use [OBS 29.1+](https://github.com/obsproject/obs-studio/releases) to push HEVC via RTMP.
Start OBS with the following settings in the `Settings > Stream` tab:

* Server: `rtmp://localhost/live`
* Stream Key: `livestream`
* Encoder: Please select the HEVC hardware encoder.

Finally, open the player http://localhost:8080/players/srs_player.html?stream=livestream.ts

Or use VLS or ffplay to play `http://localhost:8080/live/livestream.ts`

---------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
2023-04-08 09:18:10 +08:00
Winlin
363e0c2a6e
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:01:20 +08:00
Winlin
c001acaae9
Support WHIP and WHEP player. v5.0.147 and v6.0.35 (#3460)
Co-authored-by: chundonglinlin <chundonglinlin@163.com>
Co-authored-by: panda <542638787@qq.com>
2023-03-21 08:49:07 +08:00
winlin
4bfc4de710 SRS5: MP3: Upgrade mpegts.js to support HTTP-TS with mp3. v5.0.126 (#296)
PICK 02a18b328c
2023-01-01 20:26:44 +08:00
winlin
ead49e747b MP3: Support play HTTP-MP3 by H5(srs-player). v6.0.7 (#296) (#3338) 2022-12-25 16:23:52 +08:00
Winlin
c39edf4788
Player: Support nginx-http-flv-module stream url. (#3305) 2022-12-13 21:03:44 +08:00
john
d927996890 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>
2022-11-24 18:13:49 +08:00
Winlin
7e02d972ea
H265: Update mpegts.js to play HEVC over HTTP-TS/FLV. v6.0.1 (#3268)
1. Update mpegts.js to support HEVC over HTTP-TS.
2. Merge https://github.com/xqq/mpegts.js/pull/68 for HEVC over HTTP-FLV.
2022-11-22 22:23:14 +08:00
Winlin
9191217e27
Player: Use xqq/mpegts.js to play HTTP-TS/HTTP-FLV (#3263)
1. Replace flv.js with mpegts.js
2. Use mpegts.js to play HTTP-FLV.
3. Use mpegts.js to play HTTP-TS.
2022-11-21 19:16:44 +08:00
Winlin
59d37abc2b
Player: Use H5 native to play mp4. (#3262) 2022-11-21 19:00:33 +08:00
winlin
1b25ef9028 Merge branch '4.0release' into develop 2022-09-16 08:05:32 +08:00
winlin
686f57799e Fix #3179: WebRTC: Make sure the same m-lines order for offer and answer. v4.0.265 2022-09-16 08:02:12 +08:00
winlin
f7280399d4 Merge 4.0release, migrate to new website. 2022-07-31 18:34:18 +08:00
winlin
310514ea94 Update players and console. 2022-05-16 22:44:21 +08:00
winlin
2b2379de12 RTC: Refine player sdk, reject with xhr. 2022-04-10 16:39:56 +08:00
winlin
b3baa888ee RTC: Refine player sdk, directly use raw HTTP. 2022-04-08 23:02:32 +08:00
CommanderRoot
8a75e8a165
Replace deprecated String.prototype.substr() (#2948)
String.prototype.substr() is deprecated (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr) so we replace it with slice() or substring() which work similarily but aren't deprecated.
Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
2022-03-07 08:02:27 +08:00
winlin
c2b07ad943 Squash: Fix bugs 2022-02-11 08:44:31 +08:00
winlin
e27b658ef9 Refine the error for WebRTC H5 publisher. v4.0.239 2022-02-08 11:54:04 +08:00
winlin
7c9f88be0b Eliminate unused *.as files for Adobe Flash. v5.0.22 2022-01-18 12:04:15 +08:00
winlin
93aa0eb5ba Squash: Fix bugs 2022-01-13 18:26:28 +08:00
winlin
73d0ce1cee Support api to specify the WebRTC API port. v4.0.225 2022-01-13 13:34:06 +08:00
winlin
c6c2e97189 Support api_port to specify the WebRTC API port. v4.0.225 2022-01-13 12:16:45 +08:00
winlin
db3ceb445b Support api_port to specify the WebRTC API port. v4.0.224 2022-01-13 12:07:34 +08:00
winlin
e16830e989 Squash: Merge 4.0.201 2021-12-04 10:43:04 +08:00
winlin
542a3e4f36 RTC: Refine publish security error message (#2762). v4.0.200 2021-12-01 08:27:13 +08:00
winlin
440f29b758 Squash: Merge #2732 2021-11-14 21:50:58 +08:00
winlin
7771fbe858 Fix #2732: WebRTC: Fail to publish RTC automatically for HTML5. 2021-11-14 13:48:48 +08:00
winlin
8f91a90f28 Squash: Fix padding packets for RTMP2RTC 2021-07-08 14:37:18 +08:00
winlin
10b9a81061 RTC: Support eip/candidate to set the eip of server 2021-07-08 14:25:38 +08:00
winlin
efdbf37255 Squash: Move GB28181 to feature/gb28181. 5.0.4 2021-06-16 14:03:55 +08:00
winlin
68c48e27f5 Change GB28181 to feature/gb28181. 4.0.127 2021-06-16 08:27:37 +08:00
winlin
15901cacee SquashSRS4: Use SPDX-License-Identifier: MIT. 5.0.3 2021-05-31 13:42:20 +08:00
winlin
3cd22b6e6e Use SPDX-License-Identifier: MIT. 4.0.124 2021-05-31 12:59:21 +08:00
winlin
81bda41b31 SquashSRS4: Refine srs.sdk.js 2021-05-28 21:44:51 +08:00
winlin
c353f1fe57 Update Usage 2021-05-26 14:21:23 +08:00
winlin
e50582f9c7 SquashSRS4: Refine SDK 2021-05-21 19:57:59 +08:00
winlin
7ea05dddf2 RTC: Allow set constrain for publisher 2021-05-21 18:32:53 +08:00
winlin
9ed388523f RTC: Refine demo H5 page 2021-05-21 17:26:52 +08:00
winlin
a7ab78a588 SquashSRS4: Update SDK 2021-05-21 17:14:04 +08:00
winlin
37c9066636 RTC: Refine sdk, migrate from onaddstream to ontrack. 4.0.120 2021-05-21 16:58:21 +08:00
winlin
eb339432c4 SquashSRS4: Update benchmark data. 2021-05-10 18:09:59 +08:00
winlin
3bf1b0cb7d Refine tid for sdk and demos. 4.0.106 2021-05-09 22:33:43 +08:00