Commit Graph

142 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>
12 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
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
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 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 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 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 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 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 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
winlin becbe45bcd SquashSRS4: Add demo for RTC 4 years ago
winlin 74043b4153 Tools: Update one to one demo 4 years ago
winlin 0b62216999 SquashSRS4: Support av1 for Chrome M90 enabled it. 4 years ago
Winlin e8fe66e3ba
RTC: Support av1 for Chrome M90 enabled it. 4.0.91 (#2324)
* RTC: Support av1 for Chrome M90 enabled it. 4.0.91

* RTC: Show codec for WebRTC publisher
4 years ago
winlin 51aa899358 RTC: Refine H5 demo, extract srs.sdk.js 4 years ago
winlin d4a8a72388 SquashSRS4: Add console. Disable cherrypy by default. 4 years ago
winlin 6f66cf0868 Player: Change the default from RTMP to HTTP-FLV. 4 years ago
winlin 979bf86e8b Support HTTP-FLV and HLS for srs-player by H5. 4.0.63 4 years ago
winlin 5c41766b79 Support HTTP-FLV and HLS for srs-player by H5. 4.0.63 4 years ago
winlin f01da568cb Support HTTP-FLV and HLS for srs-player by H5. 4.0.63 4 years ago
winlin 618333cdd1 Support HTTP-FLV and HLS for srs-player by H5. 4.0.63 4 years ago
winlin efca38cd89 Player: Change default HTTP-API port to 1985 for WebRTC 4 years ago