FFmpeg(HLS)-按大小而不是时间(或限制段大小)分割段

时间:2019-02-27 17:58:27

标签: ffmpeg hls fluent-ffmpeg

所以我有一个带有以下参数的ffmpeg命令(在NodeJS中,但这没关系):

'-start_number 0',
'-hls_key_info_file ' + HLSKEY_PATH,
'-hls_time 5',
'-hls_playlist_type vod',
'-hls_segment_filename seg-%d.ts'

一切正常,但是每个细分的大小都有问题。 为什么ffmpeg无法按大小而不是时间创建细分?在这种情况下,-hls_time 5。我希望做类似-hls_size 4096的事情,但是至少从我所知道的情况来看,这是没有选择的。或者我至少可以设置一个限制?就像:“不要创建大于4MB的段,如有必要,请再次拆分。”

我知道我可以再次对文件进行编码,然后就不会再有大小差异很大的段了,但这对我来说是没有选择和替代的。

谢谢!

1 个答案:

答案 0 :(得分:0)

并非所有帧都具有相同数量的信息。视频压缩的工作方式是,某些帧的信息较少,而另一些帧的信息更多。从技术上讲,如果分段持续时间(以毫秒为单位)始终相同,则片段大小将不可能相同。

我认为您要问的没有选择。

有一个“ -fs ”(输出文件大小)命令,但我认为它可以限制整个输出的大小,而不仅仅是段。

在您的位置,如果分段大小困扰着我,我只需将持续时间降低一秒,然后降低两秒,然后看看。祝你好运。