ffmpeg를 사용하여 STB로 스트리밍하려고 하는데 성공하지 못했습니다. STB 소프트웨어 지원으로부터 다음과 같은 답변을 받았습니다.
4.1.5.1 Random_access_indicator H.264/AVC 비트스트림의 경우 다음이 적용됩니다. 인코딩: 비디오 스트림에서 H.264/AVC RAP가 발생할 때마다 random_access_indicator 비트가 설정되어야 합니다(3.1절 및 5.5절의 H.264/AVC RAP 정의 참조). .5). 디코딩: random_access_indicator 비트는 IRD에 의해 무시될 수 있습니다. 이는 RAP를 식별하기 위해 Elementary_stream_priority 표시기와 함께 유익하게 활용될 수 있습니다.
3.1 H.264/AVC RAP: IRD가 비디오 디코딩을 성공적으로 시작할 수 있는 H.264/AVC 비트스트림의 AU 구분 기호가 있는 액세스 단위입니다. 이 액세스 단위는 VUI가 있는 정확히 하나의 시퀀스 매개변수 세트(활성)와 관련 그림을 디코딩하는 데 필요한 그림 매개변수 세트를 포함해야 합니다. SPS는 또한 이 액세스 단위의 모든 SEI NAL 단위보다 앞에 있어야 합니다. 이 액세스 단위에는 IDR 사진 또는 I 사진이 포함되어야 합니다.
그 비트를 설정하는 방법을 알 수 없습니다! 작업 스트림을 통해 내 STB는 다음을 보여줍니다.
dec[2][base] :: set_video_track() : -1 -> 0 [H264]
dec[2][base] :: set_audio_track() : -1 -> 0 [AAC] [eng]
하지만 내 스트림에서는
dec[1][base] :: set_video_track() : -1 -> -1 []
dec[1][base] :: set_audio_track() : -1 -> 0 [AAC] [spa]
내 Ffmpeg 명령
ffmpeg -nostdin -loglevel 정보 -ss 10 -hwaccel_device 0 -hwaccel cuvid -c:v h264_cuvid -deint 2 -y -re -i udp://XXXX:XXXX?pkt_size=1316\&buffer_size=409600\&fifo_size=1000000\&overrun_nonfatal =1 -movflags isml+frag_keyframe -f ismv -스레드 0 -c:a libfdk_aac -ac 2 -b:a 64k -map 0:v -filter:v:0 scale_npp=w=1024:h=576 -c:v :0 h264_nvenc -preset llhq -g 150 -keyint_min 150 -forced-idr 1 -aud 1 -strict_gop 1 -bf 2 -flags:v +global_header -pcr_기간 5 -b:v:0 1200k -bsf:v h264_mp4toannexb -map 0 :v -filter:v:1 scale_npp=w=1920:h=1080 -c:v:1 h264_nvenc -preset llhq -g 150 -keyint_min 150 -forced-idr 1 -aud 1 -strict_gop 1 -bf 2 -flags: v +global_header -pcr_기간 5 -b:v:1 2000k -bsf:v h264_mp4toannexb -map 0:v -filter:v:2 scale_npp=w=640:h=368 -c:v:2 h264_nvenc -preset llhq -g 150 -keyint_min 150 -forced-idr 1 -aud 1 -strict_gop 1 -bf 2 -flags:v +global_header -pcr_기간 5 -b:v:2 1200k -bsf:v h264_mp4toannexb -map 0:a:0http://XXX/X/X
저는 ffmpeg와 nvidia의 마지막 버전을 사용하고 있습니다.
어떤 아이디어가 있나요?
감사해요.