diff --git a/trunk/doc/CHANGELOG.md b/trunk/doc/CHANGELOG.md index fc576ec7c..7366f8aa7 100644 --- a/trunk/doc/CHANGELOG.md +++ b/trunk/doc/CHANGELOG.md @@ -4,6 +4,12 @@ The changelog for SRS. + + +## SRS 7.0 Changelog +* v7.0, 2024-08-12, Merge [#4131](https://github.com/ossrs/srs/pull/4131): Transcode: More generic h264/h265 codec support. v7.0.1 (#4131) +* v7.0, 2024-08-12, Init SRS 7 branch. v7.0.0 + ## SRS 6.0 Changelog diff --git a/trunk/src/app/srs_app_ffmpeg.cpp b/trunk/src/app/srs_app_ffmpeg.cpp index d4cb94857..43583ce76 100644 --- a/trunk/src/app/srs_app_ffmpeg.cpp +++ b/trunk/src/app/srs_app_ffmpeg.cpp @@ -33,10 +33,10 @@ using namespace std; #define SRS_RTMP_ENCODER_COPY "copy" #define SRS_RTMP_ENCODER_NO_VIDEO "vn" #define SRS_RTMP_ENCODER_NO_AUDIO "an" -// only support libx264, libx265 and h264_qsv encoder. -#define SRS_RTMP_ENCODER_VCODEC_LIBX264 "libx264" -#define SRS_RTMP_ENCODER_VCODEC_LIBX265 "libx265" -#define SRS_RTMP_ENCODER_VCODEC_H264QSV "h264_qsv" +// only support encoder: h264, h265 and other variants like libx264 etc. +#define SRS_RTMP_ENCODER_VCODEC_H264 "264" +#define SRS_RTMP_ENCODER_VCODEC_H265 "265" +#define SRS_RTMP_ENCODER_VCODEC_HEVC "hevc" #define SRS_RTMP_ENCODER_VCODEC_PNG "png" // any aac encoder is ok which contains the aac, // for example, libaacplus, aac, fdkaac @@ -125,10 +125,8 @@ srs_error_t SrsFFMPEG::initialize_transcode(SrsConfDirective* engine) } if (vcodec != SRS_RTMP_ENCODER_COPY && vcodec != SRS_RTMP_ENCODER_NO_VIDEO && vcodec != SRS_RTMP_ENCODER_VCODEC_PNG) { - if (vcodec != SRS_RTMP_ENCODER_VCODEC_LIBX264 && vcodec != SRS_RTMP_ENCODER_VCODEC_LIBX265 && vcodec != SRS_RTMP_ENCODER_VCODEC_H264QSV) { - return srs_error_new( - ERROR_ENCODER_VCODEC, "invalid vcodec, must be %s, %s or %s, actual %s", - SRS_RTMP_ENCODER_VCODEC_LIBX264, SRS_RTMP_ENCODER_VCODEC_LIBX265, SRS_RTMP_ENCODER_VCODEC_H264QSV, vcodec.c_str()); + if (vcodec.find(SRS_RTMP_ENCODER_VCODEC_H264) != string::npos && vcodec.find(SRS_RTMP_ENCODER_VCODEC_H265) != string::npos && vcodec.find(SRS_RTMP_ENCODER_VCODEC_HEVC) != string::npos) { + return srs_error_new(ERROR_ENCODER_VCODEC, "invalid vcodec, must be h264, h265 or one of their variants, actual %s", vcodec.c_str()); } if (vbitrate < 0) { return srs_error_new(ERROR_ENCODER_VBITRATE, "invalid vbitrate: %d", vbitrate); diff --git a/trunk/src/core/srs_core_version7.hpp b/trunk/src/core/srs_core_version7.hpp index a22d8fbdb..54280c2db 100644 --- a/trunk/src/core/srs_core_version7.hpp +++ b/trunk/src/core/srs_core_version7.hpp @@ -9,6 +9,6 @@ #define VERSION_MAJOR 7 #define VERSION_MINOR 0 -#define VERSION_REVISION 0 +#define VERSION_REVISION 1 #endif \ No newline at end of file