Commit Graph

303 Commits (eb788a62ad6fa81bca15f73f8feb873fb1b139cb)

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>
11 months ago
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>
1 year ago
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>
1 year ago
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>
1 year ago
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>
1 year ago
panda 30c2f50cae
Upgrade jquery from 1.10.2 to 1.12.2 (#3571)
---------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
2 years ago
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>
2 years ago
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>
2 years ago
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>
2 years ago
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>
2 years ago
winlin 4bfc4de710 SRS5: MP3: Upgrade mpegts.js to support HTTP-TS with mp3. v5.0.126 (#296)
PICK 02a18b328c
2 years ago
winlin ead49e747b MP3: Support play HTTP-MP3 by H5(srs-player). v6.0.7 (#296) (#3338) 2 years ago
Winlin c39edf4788
Player: Support nginx-http-flv-module stream url. (#3305) 2 years ago
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>
2 years ago
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.
2 years ago
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.
2 years ago
Winlin 59d37abc2b
Player: Use H5 native to play mp4. (#3262) 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 f7280399d4 Merge 4.0release, migrate to new website. 3 years ago
winlin 310514ea94 Update players and console. 3 years ago
winlin 2b2379de12 RTC: Refine player sdk, reject with xhr. 3 years ago
winlin b3baa888ee RTC: Refine player sdk, directly use raw HTTP. 3 years ago
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>
3 years ago
winlin c2b07ad943 Squash: Fix bugs 3 years ago
winlin e27b658ef9 Refine the error for WebRTC H5 publisher. v4.0.239 3 years ago
winlin 7c9f88be0b Eliminate unused *.as files for Adobe Flash. v5.0.22 3 years ago
winlin 93aa0eb5ba Squash: Fix bugs 3 years ago
winlin 73d0ce1cee Support api to specify the WebRTC API port. v4.0.225 3 years ago
winlin c6c2e97189 Support api_port to specify the WebRTC API port. v4.0.225 3 years ago
winlin db3ceb445b Support api_port to specify the WebRTC API port. v4.0.224 3 years ago
winlin e16830e989 Squash: Merge 4.0.201 3 years ago
winlin 542a3e4f36 RTC: Refine publish security error message (#2762). v4.0.200 3 years ago
winlin 440f29b758 Squash: Merge #2732 3 years ago
winlin 7771fbe858 Fix #2732: WebRTC: Fail to publish RTC automatically for HTML5. 3 years ago
winlin 8f91a90f28 Squash: Fix padding packets for RTMP2RTC 4 years ago
winlin 10b9a81061 RTC: Support eip/candidate to set the eip of server 4 years ago
winlin efdbf37255 Squash: Move GB28181 to feature/gb28181. 5.0.4 4 years ago
winlin 68c48e27f5 Change GB28181 to feature/gb28181. 4.0.127 4 years ago
winlin 15901cacee SquashSRS4: Use SPDX-License-Identifier: MIT. 5.0.3 4 years ago
winlin 3cd22b6e6e Use SPDX-License-Identifier: MIT. 4.0.124 4 years ago
winlin 81bda41b31 SquashSRS4: Refine srs.sdk.js 4 years ago
winlin c353f1fe57 Update Usage 4 years ago
winlin e50582f9c7 SquashSRS4: Refine SDK 4 years ago
winlin 7ea05dddf2 RTC: Allow set constrain for publisher 4 years ago
winlin 9ed388523f RTC: Refine demo H5 page 4 years ago
winlin a7ab78a588 SquashSRS4: Update SDK 4 years ago
winlin 37c9066636 RTC: Refine sdk, migrate from onaddstream to ontrack. 4.0.120 4 years ago
winlin eb339432c4 SquashSRS4: Update benchmark data. 4 years ago
winlin 3bf1b0cb7d Refine tid for sdk and demos. 4.0.106 4 years ago