From 3e463a8e5639e44ff4e73d43401519f65f344151 Mon Sep 17 00:00:00 2001 From: john Date: Wed, 22 Nov 2023 14:58:30 +0800 Subject: [PATCH] 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 --- .github/FUNDING.yml | 2 +- .github/workflows/release.yml | 4 ++-- .github/workflows/test.yml | 2 +- trunk/Dockerfile.test | 3 ++- trunk/doc/CHANGELOG.md | 1 + trunk/src/app/srs_app_rtc_codec.cpp | 2 +- trunk/src/core/srs_core_version6.hpp | 2 +- 7 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index ee24fe2323..c701a09137 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,7 +1,7 @@ # These are supported funding model platforms github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] -patreon: # Replace with a single Patreon username +patreon: ossrs open_collective: srs-server ko_fi: # Replace with a single Ko-fi username tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fc95ef5f72..f4de493758 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -250,7 +250,7 @@ jobs: echo "SRS_TAG=${{ needs.envs.outputs.SRS_TAG }}" >> $GITHUB_ENV echo "SRS_VERSION=${{ needs.envs.outputs.SRS_VERSION }}" >> $GITHUB_ENV echo "SRS_MAJOR=${{ needs.envs.outputs.SRS_MAJOR }}" >> $GITHUB_ENV - echo "SRS_MAJOR=${{ needs.envs.outputs.SRS_XYZ }}" >> $GITHUB_ENV + echo "SRS_XYZ=${{ needs.envs.outputs.SRS_XYZ }}" >> $GITHUB_ENV ################################################################################################################## # Git checkout - name: Checkout repository @@ -304,7 +304,7 @@ jobs: echo "SRS_TAG=${{ needs.envs.outputs.SRS_TAG }}" >> $GITHUB_ENV echo "SRS_VERSION=${{ needs.envs.outputs.SRS_VERSION }}" >> $GITHUB_ENV echo "SRS_MAJOR=${{ needs.envs.outputs.SRS_MAJOR }}" >> $GITHUB_ENV - echo "SRS_MAJOR=${{ needs.envs.outputs.SRS_XYZ }}" >> $GITHUB_ENV + echo "SRS_XYZ=${{ needs.envs.outputs.SRS_XYZ }}" >> $GITHUB_ENV # Aliyun ACR # TODO: FIXME: If stable, please set the latest from 5.0 to 6.0 - name: Login aliyun hub diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 53a114a6cf..6ea5e3c1f4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -198,7 +198,7 @@ jobs: - name: Run SRS regression-test run: | docker run --rm srs:test bash -c './objs/srs -c conf/regression-test.conf && \ - cd 3rdparty/srs-bench && (./objs/srs_test -test.v || (cat ../../objs/srs.log && exit 1)) && cat ../../objs/srs.log && \ + cd 3rdparty/srs-bench && (./objs/srs_test -test.v || (cat ../../objs/srs.log && exit 1)) && \ ./objs/srs_gb28181_test -test.v' runs-on: ubuntu-20.04 diff --git a/trunk/Dockerfile.test b/trunk/Dockerfile.test index 30222976bf..aae3f09180 100644 --- a/trunk/Dockerfile.test +++ b/trunk/Dockerfile.test @@ -16,7 +16,8 @@ COPY . /srs WORKDIR /srs/trunk # Note that we must enable the gcc7 or link failed. -# Note that we must disable the build-cache, or it will failed, but donot know why. +# Please note that we must disable the ffmpeg-opus, as it negatively impacts performance. We may consider +# enabling it in the future when support for multi-threading transcoding is available. RUN ./configure --srt=on --gb28181=on --srt=on --apm=on --h265=on --utest=on --ffmpeg-opus=off --build-cache=on RUN make utest ${MAKEARGS} diff --git a/trunk/doc/CHANGELOG.md b/trunk/doc/CHANGELOG.md index 21165b223f..e3f16bdc31 100644 --- a/trunk/doc/CHANGELOG.md +++ b/trunk/doc/CHANGELOG.md @@ -7,6 +7,7 @@ The changelog for SRS. ## SRS 6.0 Changelog +* v6.0, 2023-11-22, Merge [#3883](https://github.com/ossrs/srs/pull/3883): Fix opus delay options, use ffmpeg-opus in docker test. v6.0.102 (#3883) * v6.0, 2023-11-19, Merge [#3886](https://github.com/ossrs/srs/pull/3886): Change the hls_aof_ratio to 2.1. v6.0.101 (#3886) * v6.0, 2023-11-16, Merge [#3868](https://github.com/ossrs/srs/pull/3868): Fix the test fail when enable ffmpeg-opus. v6.0.100 (#3868) * v6.0, 2023-11-15, Merge [#3879](https://github.com/ossrs/srs/pull/3879): Add --extra-ldflags. v6.0.99 (#3879) diff --git a/trunk/src/app/srs_app_rtc_codec.cpp b/trunk/src/app/srs_app_rtc_codec.cpp index a73b6f2bc7..947ac0f9dc 100644 --- a/trunk/src/app/srs_app_rtc_codec.cpp +++ b/trunk/src/app/srs_app_rtc_codec.cpp @@ -249,7 +249,7 @@ srs_error_t SrsAudioTranscoder::init_enc(SrsAudioCodecId dst_codec, int dst_chan enc_->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL; #ifdef SRS_FFMPEG_OPUS - av_opt_set(enc_->priv_data, "opus_delay", "2.5", 0); + av_opt_set(enc_->priv_data, "opus_delay", "25", 0); #endif } else if (dst_codec == SrsAudioCodecIdAAC) { enc_->strict_std_compliance = FF_COMPLIANCE_EXPERIMENTAL; diff --git a/trunk/src/core/srs_core_version6.hpp b/trunk/src/core/srs_core_version6.hpp index d1ce3f3583..cb0c8503b7 100644 --- a/trunk/src/core/srs_core_version6.hpp +++ b/trunk/src/core/srs_core_version6.hpp @@ -9,6 +9,6 @@ #define VERSION_MAJOR 6 #define VERSION_MINOR 0 -#define VERSION_REVISION 101 +#define VERSION_REVISION 102 #endif