1
0
mirror of https://github.com/ossrs/srs.git synced 2025-05-15 18:22:14 +08:00

Compare commits

...

5 Commits

Author SHA1 Message Date
chundonglinlin
cfbe096d57
Merge 98449f2bda81530b69b6770cb26ea2b5291a85f7 into feb2abbd7377fbb33cee944bac4577c244b7a707 2025-03-18 01:39:02 +00:00
Haibo Chen(陈海博)
98449f2bda
Merge branch 'develop' into feature/update-version 2025-03-18 09:38:59 +08:00
Haibo Chen(陈海博)
feb2abbd73
update geekyeggo/delete-artifact to 5.0.0. v5.0.221 v6.0.163 v7.0.25 ()
>
https://github.com/marketplace/actions/delete-artifact?version=v5.0.0#-compatibility

The current version of `actions/upload-artifact` is `v4`, and the
corresponding version for `delete-artifact` should be `v5`.



---------

`TRANS_BY_GPT4`

---------

Co-authored-by: chundonglinlin <chundonglinlin@163.com>
Co-authored-by: winlin <winlinvip@gmail.com>

---------

Co-authored-by: john <hondaxiao@tencent.com>
2025-03-18 08:25:48 +08:00
chundonglinlin
3d8ef92a23
Dvr: support h265 flv fragments. v6.0.162 v7.0.24 ()
1. Issue
When segmenting H.265 encoded FLV files using a DVR, the system does not
create FLV segments at regular intervals as specified by the
`dvr_wait_keyframe` configuration.

2. Configure dvr.segment.conf
```config
# the config for srs to dvr in segment mode
# @see https://ossrs.net/lts/zh-cn/docs/v4/doc/dvr
# @see full.conf for detail config.

listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;
vhost __defaultVhost__ {
    dvr {
        enabled      on;
        dvr_path     ./objs/nginx/html/[app]/[stream].[timestamp].flv;
        dvr_plan     segment;
        dvr_duration    30;
        dvr_wait_keyframe       on;
    }
}
```

3. Stream Push Testing
### FFmpeg Stream Push
Domestic FFmpeg version (codecId=12)
```sh
hevc-12-ffmpeg -stream_loop -1 -re -i 264_aac.flv -c:v libx265 -preset fast -b:v 2000k -maxrate 2000k -bufsize 4000k -bf 0 -c:a aac -b:a 128k -ar 44100 -ac 2 -f flv rtmp://localhost/live/livestream
```
FFmpeg version 6.0 or higher (supports `enhanced RTMP`)
```sh
ffmpeg -stream_loop -1 -re -i 264_aac.flv -c:v libx265 -preset fast -b:v 2000k -maxrate 2000k -bufsize 4000k -bf 0 -c:a aac -b:a 128k -ar 44100 -ac 2 -f flv rtmp://localhost/live/livestream
```

OBS streaming (version 30.0 or above supports `enhanced RTMP`)

![image](https://github.com/user-attachments/assets/fd2806c3-b0e3-44c4-a2d5-e04e6e5386ff)

![image](https://github.com/user-attachments/assets/15ef9c45-e15a-426e-b70c-d4bdd5dc8055)

## 4. Playback Testing
SRS player (supports both `enhanced RTMP` and `codec=12 FLV`)
```
http://127.0.0.1:8080/players/srs_player.html
```
Domestic ffplay (supports `codec=12 FLV`)
```
hevc-12-ffplay http://127.0.0.1:8080/live/livestream.1740311867638.flv
```
ffplay (versions above ffmpeg 6.0 support `enhanced RTMP`)
```
ffplay http://127.0.0.1:8080/live/livestream.1740311867638.flv
```

![image](https://github.com/user-attachments/assets/711a4182-418c-4134-934f-cba41a08e06f)



---------

`TRANS_BY_GPT4`

---------

Co-authored-by: Haibo Chen <495810242@qq.com>
Co-authored-by: john <hondaxiao@tencent.com>
Co-authored-by: winlin <winlinvip@gmail.com>

---------

Co-authored-by: john <hondaxiao@tencent.com>
2025-03-18 07:34:04 +08:00
Winlin or William
02f04456b0
Update FUNDING.yml
Please contribute to OpenCollective only, thanks!
2025-03-14 11:33:14 -04:00
7 changed files with 18 additions and 6 deletions

2
.github/FUNDING.yml vendored

@ -1,6 +1,6 @@
# These are supported funding model platforms
github: [winlinvip] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with patreon id.
open_collective: srs-server
ko_fi: # Replace with a single Ko-fi username

@ -68,7 +68,8 @@ jobs:
- uses: actions/download-artifact@v4
with:
name: srs-cache
- uses: geekyeggo/delete-artifact@54ab544f12cdb7b71613a16a2b5a37a9ade990af # v2.0.0
# https://github.com/marketplace/actions/delete-artifact?version=v5.0.0#-compatibility
- uses: geekyeggo/delete-artifact@v5.0.0
with:
name: srs-cache
##################################################################################################################

@ -7,6 +7,8 @@ The changelog for SRS.
<a name="v7-changes"></a>
## SRS 7.0 Changelog
* v7.0, 2025-03-18, Merge [#4302](https://github.com/ossrs/srs/pull/4302): update geekyeggo/delete-artifact to 5.0.0. v7.0.25 (#4302)
* v7.0, 2025-03-06, Merge [#4296](https://github.com/ossrs/srs/pull/4296): Dvr: support h265 flv fragments. v7.0.24 (#4296)
* v7.0, 2025-02-20, Merge [#4253](https://github.com/ossrs/srs/pull/4253): fix typo about heartbeat. v7.0.23 (#4253)
* v7.0, 2025-02-19, Merge [#4291](https://github.com/ossrs/srs/pull/4291): fix ci error. v7.0.22 (#4291)
* v7.0, 2025-01-14, Merge [#4271](https://github.com/ossrs/srs/pull/4271): update copyright to 2025. v7.0.21 (#4271)
@ -35,6 +37,8 @@ The changelog for SRS.
<a name="v6-changes"></a>
## SRS 6.0 Changelog
* v6.0, 2025-03-18, Merge [#4302](https://github.com/ossrs/srs/pull/4302): update geekyeggo/delete-artifact to 5.0.0. v6.0.163 (#4302)
* v6.0, 2025-03-06, Merge [#4296](https://github.com/ossrs/srs/pull/4296): Dvr: support h265 flv fragments. v6.0.162 (#4296)
* v6.0, 2025-02-20, Merge [#4253](https://github.com/ossrs/srs/pull/4253): fix typo about heartbeat. v6.0.161 (#4253)
* v6.0, 2025-02-19, Merge [#4291](https://github.com/ossrs/srs/pull/4291): fix ci error. v6.0.160 (#4291)
* v6.0, 2025-01-14, Merge [#4271](https://github.com/ossrs/srs/pull/4271): update copyright to 2025. v6.0.159 (#4271)
@ -200,6 +204,7 @@ The changelog for SRS.
<a name="v5-changes"></a>
## SRS 5.0 Changelog
* v5.0, 2025-03-18, Merge [#4302](https://github.com/ossrs/srs/pull/4302): update geekyeggo/delete-artifact to 5.0.0. v5.0.221 (#4302)
* v5.0, 2025-02-20, Merge [#4253](https://github.com/ossrs/srs/pull/4253): fix typo about heartbeat. v5.0.220 (#4253)
* v5.0, 2025-02-19, Merge [#4291](https://github.com/ossrs/srs/pull/4291): fix ci error. v5.0.219 (#4291)
* v5.0, 2025-01-14, Merge [#4271](https://github.com/ossrs/srs/pull/4271): update copyright to 2025. v5.0.218 (#4271)

@ -868,7 +868,13 @@ srs_error_t SrsDvrSegmentPlan::update_duration(SrsSharedPtrMessage* msg)
char* payload = msg->payload;
int size = msg->size;
bool is_key_frame = SrsFlvVideo::h264(payload, size) && SrsFlvVideo::keyframe(payload, size) && !SrsFlvVideo::sh(payload, size);
bool codec_ok = SrsFlvVideo::h264(payload, size);
#ifdef SRS_H265
codec_ok = codec_ok? true : SrsFlvVideo::hevc(payload, size);
#endif
bool is_key_frame = codec_ok && SrsFlvVideo::keyframe(payload, size) && !SrsFlvVideo::sh(payload, size);
if (!is_key_frame) {
return err;
}

@ -9,6 +9,6 @@
#define VERSION_MAJOR 5
#define VERSION_MINOR 0
#define VERSION_REVISION 220
#define VERSION_REVISION 221
#endif

@ -9,6 +9,6 @@
#define VERSION_MAJOR 6
#define VERSION_MINOR 0
#define VERSION_REVISION 161
#define VERSION_REVISION 163
#endif

@ -9,6 +9,6 @@
#define VERSION_MAJOR 7
#define VERSION_MINOR 0
#define VERSION_REVISION 23
#define VERSION_REVISION 25
#endif