我尝试使用 ffmpeg 向 STB 进行流式传输,但没有成功。我从 STB 软件支持人员那里得到了以下答案:
4.1.5.1 Random_access_indicator 对于 H.264/AVC 比特流,适用以下规定: 编码:每当视频流中出现 H.264/AVC RAP 时,random_access_indicator 位应被设置(参见第 3.1 和 5.5.5 条中的 H.264/AVC RAP 定义)。 解码:IRD 可以忽略 random_access_indicator 位。它可与 elementary_stream_priority 指示符一起使用,以识别 RAP。
3.1 H.264/AVC RAP:H.264/AVC 比特流中带有 AU 分隔符的访问单元,IRD 可在此成功开始解码视频。此访问单元应包含一个带有 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 info -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 -threads 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_period 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_period 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_period 5 -b:v:2 1200k -bsf:v h264_mp4toannexb -map 0:a:0http://XXX/X/X
我正在使用最新版本的 ffmpeg 和 nvidia。
有任何想法吗?
谢谢。