Closed johan149 closed 1 year ago
@johan149 Can you use this #3389 to go? I used your method to test that the publish(SRT or RTMP) stream could pass.
build the latest code, publish HEVC over RTMP still not work, logs as below
[2023-01-30 07:46:52.562][ERROR][13][4z3nbb43][11] serve error code=4054(CasterTsHevcVps)(Invalid ts HEVC VPS for stream caster) : service cycle : rtmp: stream service : rtmp: receive thread : handle publish message : rtmp: consume message : rtmp: consume video : format consume video : demux hevc SPS/PPS : hevc demux vps sps pps failed : scaling_list_delta_coef : read uev : no bytes for leadingZeroBits=5
thread [13][4z3nbb43]: do_cycle() [./src/app/srs_app_rtmp_conn.cpp:262][errno=11]
thread [13][4z3nbb43]: service_cycle() [./src/app/srs_app_rtmp_conn.cpp:456][errno=11]
thread [13][4z3nbb43]: do_publishing() [./src/app/srs_app_rtmp_conn.cpp:1024][errno=11]
thread [13][4z3nbb43]: consume() [./src/app/srs_app_recv_thread.cpp:380][errno=11]
thread [13][4z3nbb43]: handle_publish_message() [./src/app/srs_app_rtmp_conn.cpp:1161][errno=11]
thread [13][4z3nbb43]: process_publish_message() [./src/app/srs_app_rtmp_conn.cpp:1189][errno=11]
thread [13][4z3nbb43]: on_video_imp() [./src/app/srs_app_source.cpp:2437][errno=11]
thread [13][4z3nbb43]: video_avc_demux() [./src/kernel/srs_kernel_codec.cpp:896][errno=11]
thread [13][4z3nbb43]: hevc_demux_hvcc() [./src/kernel/srs_kernel_codec.cpp:1050][errno=11]
thread [13][4z3nbb43]: hevc_demux_pps_rbsp() [./src/kernel/srs_kernel_codec.cpp:1701][errno=11]
thread [13][4z3nbb43]: read_bits_se() [./src/kernel/srs_kernel_buffer.cpp:511][errno=11]
thread [13][4z3nbb43]: read_bits_ue() [./src/kernel/srs_kernel_buffer.cpp:489][errno=11](Resource temporarily unavailable)
Yeah, this PR(#3389) still not merge to develop. Can you use my branch chundonglinlin:bugfix/fix-demux-codec-pps-error
for test? @limjoe
@chundonglinlin Your PR(#3389) works
Description
Streaming HEVC over RTMP, SRT with NVENC and LARIX app doesn't work even tho it's the same codec, and FFprobe detects all the same codec parameters between Libx265 and Hevc_nvenc ad Larix.
SRS Version: SRS/6.0.20 with ./configure --h265=on --srt=on
SRS Log:
Replay
Step 1: Clone and build SRS DEV docker
Step 2: WORKS - FFmpeg libx265 - start streaming with ffmpeg using libx265 works
Step 3: DOESN'T WORK - FFmpeg nvenc - start streaming with ffmpeg using hevc_nvenc and check the logs on SRS server.
Step 4: DOESN'T WORK - Larix hevc - start streaming with Larix broadcaster app doesn't work
Download the Larix broadcaster app on Google Play or App Store
Import Larix grove stream settings
Expect
All three ways to stream should work since they use the same HEVC codec and the same or similar encoding settings like level, profile, bitrate, etc.