Commit Graph

162 Commits (1601381ae813232150d45df39d774f3056d9f2b0)

Author SHA1 Message Date
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
winlin d7248bbb0e Update the template for issues. 1 year ago
john 3e463a8e56
Fix opus delay options, use ffmpeg-opus in docker test. v6.0.102 (#3883)
The `ffmpeg-opus` tool allows you to control the delay using the
`opus_delay` option. The minimum delay can be set to 2.5ms. However, in
practice, you cannot set it this low. You need to set at least 10 frames
to allow the audio encoder to lookahead. Otherwise, the sound will be
distorted.

---------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
1 year ago
john 24235d8b6a
Fix the test fail when enable ffmpeg-opus. v6.0.100 (#3868)
1. After enabling FFmpeg opus, the transcoding time for each opus packet
is around 4ms.
2. To speed up case execution, our test publisher sends 400 opus packets
at intervals of 1ms.
3. After the publisher starts, wait for 30ms, then the player starts.
4. Due to the lengthy processing time for each opus packet, SRS
continuously receives packets from the publisher, so it doesn't switch
coroutines and can't accept the player's connection.
5. Only after all opus packets are processed will it accept the player
connection. Therefore, the player doesn't receive any data, leading to
the failure of the case.

---------

Co-authored-by: winlin <winlinvip@gmail.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 d10e16e335
Use new cache image name. v6.0.86 (#3815)
---------

Co-authored-by: john <hondaxiao@tencent.com>
1 year ago
winlin 42bd4a9fb8 Update the ISSUE TEMPALTE. 1 year ago
Winlin 73dd8af4c9
HLS: Ignore empty NALU to avoid error. v6.0.65 (#3750)
For the DJI M30, there is a bug where empty NALU packets with a size of
zero are causing issues with HLS streaming. This bug leads to random
unpublish events due to the SRS disconnecting the connection for the HLS
module when it fails to handle empty NALU packets.

To address this bug, we have patched the system to ignore any empty NALU
packets with a size of zero. Additionally, we have created a tool in the
srs-bench to replay pcapng files captured by tcpdump or Wireshark. We
have also added utest using mprotect and asan to detect any memory
corruption.

It is important to note that this bug has been fixed in versions 4.0.271
6477f31004 and 5.0.170
939f6b484b. This patch specifically
addresses the issue in SRS 6.0.

Please be aware that there is another commit related to this bug that
partially fixes the issue but still leaves a small problem for asan to
detect memory corruption. This commit,
577cd299e1, only ignores empty NALU
packets but still reads beyond the memory.

---------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
2 years ago
Winlin e19efe0bcd
Support helm to optimize the deployment procedure of a SRS cluster. v6.0.64 (#3611)
1. Introduce a novel Docker tag in the x.y.z format, akin to the HELM
format, such as ossrs/srs:5.0.155.
2. Incorporate the SRS_PLATFORM flag for containers initiated through
HELM.

---------

`TRANS_BY_GPT3`

---------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
2 years ago
Winlin 8c061fcf5d
Docker: Refine the main dockerfile. v6.0.54 (#3594)
------

Co-authored-by: Haibo Chen <495810242@qq.com>
2 years ago
john 113a3dd85e
Fix crash when process rtcp feedback message. v5.0.159, v6.0.52 (#3591)
---------

Co-authored-by: johzzy <hellojinqiang@gmail.com>
2 years ago
Winlin dcd02fe69c
Support composited bridges for 1:N protocols converting. v6.0.41 (#3392)
Co-authored-by: john <hondaxiao@tencent.com>
Co-authored-by: chundonglinlin <chundonglinlin@163.com>
2 years ago
winlin 2ac9eb84bc Fix release bug. Release v6.0.36 2 years ago
winlin 35fd9be863 Scorecard: Pin some github actions. 2 years ago
winlin 8ea7d8b33f Scorecard: Add OpenSSF Best Practics badge. 2 years ago
winlin 1ead71891c Scorecard: Only update for 5.0release. 2 years ago
winlin edb4866889 Actions: Rename workflow name. 2 years ago
Winlin 498ce72af8 SRS5: 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.

PICK a4e7427433

Co-authored-by: pengfei.ma <pengfei.ma@ctechm.com>
Co-authored-by: Haibo Chen <495810242@qq.com>
2 years ago
winlin badf33c544 Scorecard: Delcare default permissions as read only except CodeQL. 2 years ago
Winlin d34085615b
Create scorecard.yml (#3374) 2 years ago
Winlin f06a2d61f7 SRS5: DVR: Support blackbox test based on hooks. v5.0.132 (#3365)
PICK e655948e96
2 years ago
winlin 7a56208f2f Test: Use long duration for HLS balckbox test. 2 years ago
winlin b104826a96 SRS5: Test: Run fast and slow blackbox tests seperately.
PICK 95b534ff10
2 years ago
Winlin 4c2db0073a SRS5: 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.

PICK 2141d220b4
2 years ago
winlin 7bd8682d40 SRS5: Script: Refine depends tools. v5.0.124
1. Never auto install tools now, user should do it.
2. Support --help and --version for SRS.
3. Install tools for cygwin64.

PICK e690c93bcf
2 years ago
winlin 3f7c4a7ff4 GB28181: Enable regression test for gb28181. v5.0.122
1. Build regression test tool for gb28181.
2. Run regression test for gb28181.
3. Format go code and eliminate logs.
4. Change base docker to ubuntu20.

PICK 7750bdae10
2 years ago
winlin 39c9487a73 Support first SRS6 version. v6.0.10 2 years ago
Winlin 4bc716179b Use english template for issue. 2 years ago
winlin 2ed9516a35 SRS5: Actions: Fix github actions bug.
PICK fe3502e6ad
2 years ago
winlin 2e1d99002f SRS5: Actions: Fix GitHub actions warnings.
PICK 23b7939574
2 years ago
winlin b5aaf67c93 Merge branch v5.0.116 into develop
1. MP3: Fix bug for TS or HLS with mp3 codec. v4.0.269 (#296) (#3333)
2. MP3: Add config examples for MP3. #296
3. Script: Refine GitHub actions.
2 years ago
winlin 3ed7d88990 Script: Refine GitHub actions. 2 years ago
Winlin 9c066081dd
Update issue_template.md 2 years ago
Winlin 7bb7be4427
Update issue_template.md 2 years ago
winlin 72182865ef Merge branch v5.0.108 into develop
* DASH: Fix dash crash bug when writing file. v5.0.108 (#3301)
* Test: Refine cache for cygwin64 test.
2 years ago
winlin 61d3815fdf Test: Refine cache for cygwin64 test. 2 years ago
winlin 3049fa70eb Merge branch v5.0.106 into develop
* Build: Refine cygwin64 test script.
* API: Parse fragment of URI. v5.0.106 (#3295)
2 years ago
winlin 539f5975d6 Build: Refine cygwin64 test script. 2 years ago
winlin e6c395e473 Merge branch v5.0.105 into develop.
* v5.0, 2022-12-04, Cygwin: Enable gb28181 for Windows. v5.0.105
* v5.0, 2022-12-04, Asan: Set asan loging callback. v5.0.104
2 years ago
winlin 0e550d496b Cygwin: Enable gb28181 for Windows. v5.0.105 2 years ago
winlin fa177679a6 Merge 5.0.100, v5.0-a1 into develop. 2 years ago
Winlin e83fc2388b
Docker: Remove CentOS 6 support. (#3287)
1. Remove CentOS 6 for test and utest.
2. Statically build FFmpeg, no so depends.
2 years ago
Winlin 178e40a5fc
H265: Support HEVC over RTMP or HTTP-FLV. (#3272)
1. Support configure with --h265=on.
2. Parse HEVC(H.265) from FLV or RTMP packet.
3. Support HEVC over RTMP or HTTP-FLV.

Co-authored-by: runner365 <shi.weibd@hotmail.com>
2 years ago
Winlin 136e5cf0e0
Support gitee mirror for release resource files. (#3265) 2 years ago
ChenGH f4f9c70d79
Asan: Fix global ip address leak check bug. v5.0.90 (#3248)
* asan: fix global ips memory leak bug

* Asan: Fix global ip address leak check. v5.0.90

* Asan: Directly start SRS for daemon error fixed.

Co-authored-by: winlin <winlin@vip.126.com>
2 years ago
winlin a2bddbe9c3 Release: Refine pipeline for release. 2 years ago
winlin 05209eb522 Fix bug for regression test, check process by script. 2 years ago
winlin b9284b6cc6 Windows: Support cygwin cache for test. (#3259) 2 years ago
Winlin b18ee398ed
Windows: Support cygwin pipline and packager. v5.0.89 (#3257)
1. Support github actions on Windows Server 2022.
2. Use cygwin64 in windows-latest to build SRS.
3. Package SRS-xxx-setup.exe by NSIS.exe
4. Patch crypto/include/config.h for libsrtp.
5. Support run as administrator.
6. Apply utest for cygwin.
7. Enable srtp over openssl.
2 years ago
Winlin 88641b535c UTest: Enable sanitizer for utest. (#3247)
1. Enable sanitizer for utest.
2. Allow auto detect jobs for make.
3. Show more information about build cache.
2 years ago