如何使用 ffmpeg 更改 Elecard 流分析器中显示的 slice_type?

How can I change slice_type which is show in Elecard stream analyzer using ffmpeg?

我不是 ffmpeg 和编码专家,我正在尝试将 MP4 文件编码为 MPEG-4 h264 .ts 文件。

Elecard stream analyzer 分析我的结果 .ts 文件时,它显示所有 i-frameslice_type = 7,如您在随附的屏幕截图中所见。

如何将所有这些更改为 slice_type = 2

我的ffmpeg命令:

-i Source.mp4 \
-filter:v 'setpts=0+PTS-STARTPTS' -metadata:s:v:0 start_time=0 \
-f adts -c:a libfdk_aac  -profile:a aac_he  -strict -2 -ar 48000 -b:a 48k \
-f mpegts -c:v libx264  -vbsf h264_mp4toannexb -strict experimental -    profile:v main -level:v 3.0 -preset:v slow -movflags faststart -pat_period 100 \
-x264opts nal-hrd=cbr:force-cfr=1 -crf 25 -vf scale=w=640:h=360 -aspect 16:9 \
-bf 1  -sc_threshold 0 -keyint_min 2*25 -g 2*25 \
-force_key_frames "expr:gte(t,n_forced*50)" -max_muxing_queue_size 1500k \
-coder 1  -refs 2 \
-b:v 750k -minrate 750k -maxrate 750k -bufsize 1500k \
-vsync 1 -framerate 25000/1001 \
-x264opts "bitrate=750:vbv-maxrate=750:vbv-bufsize=1500"\
-pix_fmt yuv420p  -r 25 -x264opts force-cfr \
-mbs_per_slice 1 -y dest.ts

如果您查看 H.264 标准,您会了解到切片类型 7 和 2 都是 I 切片。 如果遇到切片类型 7,则表示此图片的所有其他切片都是 I 切片。 您的 I 帧很可能是 IDR 帧。 如果您不想要 IDR 帧 - 我会尝试将您的 H.264 编码为开放 GOP。 我不确定 ffmpeg 对 x264 有多少控制权,但我会尝试 --open-gop.