SRT2RTMP: fix srt bridge hevc to rtmp error. v7.0.84 #4446
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
try to fix #4428.
Cause
rtmp do not support hevc, rtmp enhanced do.
How to reproduce
./objs/srs -c conf/srt.conf
ffmpeg -re -i ./doc/source.flv -c:v libx265 -crf 28 -preset medium -c:a copy -pes_payload_size 0 -f mpegts 'srt://127.0.0.1:10080?streamid=#!::r=live/livestream,m=publish'
ffprobe rtmp://localhost/live/livestream
About the Failed BlackBox test
The failed blackbox test:
TestSlow_SrtPublish_RtmpPlay_HEVC_Basic
TestSlow_SrtPublish_HttpFlvPlay_HEVC_Basic
Cause:
The ffmpeg 5 is used to record a piece of video (DRV), the ffmpeg will transcode the enhanced flv format to TS format, but ffmpeg 5 don't support enhanced rtmp (or flv) in this case.
The solution is to replace the ffmpeg to version 7 in those 2 test cases.
why not upgrade ffmpeg to version 7?
The black tests dependency on ffmpeg 5 will fail, and there are a few of them are not easy to resolve in ffmpeg 7.