ffmpeg mp4 到具有相似持续时间的 hls 块

ffmpeg mp4 to hls chunks of similar duration

我正在使用以下命令使用 ffmpegmp4 转换为 hls 格式。一切正常,除了输出块具有随机持续时间块大小这一事实。

ffmpeg -i ad1.mp4 -strict -2 preset:v veryfast -profile:v baseline -level 3.0 -start_number 0 -hls_list_size 0 -hls_segment_filename 'sample-%06d.ts' -f hls sample.m3u8

我什至尝试使用 -hls_time 10 它在某种程度上解决了我的问题,时间不是 10 静态的。我完全可以承受与指定大小不同的第一个和最后一个块。有什么严格的方法可以做到这一点吗?

示例输出:Link

使用 -hls_time 10 时的输出:Link

HLS 和类似的复用器仅在关键帧处拆分,因此添加分段时间并强制关键帧与分段时间对齐。

-force_key_frames expr:'gte(t,n_forced*10)' -hls_time 10