我目前正在使用 FFmpeg 将 Youtube 直播 HLS 转换为 H.264 UDP 流。
为了使其能够与我使用的设备正确配合,流需要时不时插入 SPS NAL 单元。
我发现使用 H.264“主”配置文件时不存在 SPS 单元。 但使用“基线”配置文件时,会在每个 IDR NAL 单元之前插入一个 SPS 单元。
不幸的是,“基线”概况导致了一些视频故障(一些图案水平重复多次)。
我也尝试过dump_extra=all
但仍然没有 SPS 单元。
有什么想法可以让它发挥作用吗?
这是我当前使用的命令:
ffmpeg \
-err_detect explode \
-fflags "+genpts" -avoid_negative_ts "make_zero" \
-loglevel warning -nostats \
-re -i hls_url.m3u8 -segment_time 10 -hls_time 10 \
-c:v libx264 -preset veryfast -r 30 -flags +cgop -profile:v main -level 3 -bufsize 5M -minrate 5M -maxrate 5M -b:v 5M -pix_fmt yuv420p -bf 3 -s ntsc -x264opts nal-hrd=cbr:force-cfr=1:aud=1:keyint=25:open_gop=0 -aspect 16:9 -refs 3 -g 50 \
-acodec ac3 -ar 48000 -ab 192k \
-vf "fifo,setpts=PTS-STARTPTS" -af "afifo,asetpts=PTS-STARTPTS" \
-bsf:v h264_mp4toannexb \
-threads 2 \
-bitrate 6M -packetsize 188 -flush_packets 0 -f mpegts "udp://multicastip:multicastport?pkt_size=1316&dscp=32"
谢谢!