使用FFMPEG重现HLS播放列表的正确方法

使用FFMPEG重现HLS播放列表的正确方法,ffmpeg,http-live-streaming,Ffmpeg,Http Live Streaming,我正在我的服务器上录制一个流,在它完成后,我需要从我的视频开始修剪x秒。我的流有master.m3u8playlist,然后是3个子index[0 | 1 | 2].m3u8playlists 我正在尝试不同的方法,它们似乎都能产生结果,但没有我预期的结果 例如: ffmpeg-i索引0.m3u8-SS30-strict-2-hls时间6输出0.m3u 似乎生成了正确的*.ts文件数量,但播放列表只有30秒长。最初的#EXT-X-TARGETDURATION设置为6,现在是8,但实际大小是浮动的

我正在我的服务器上录制一个流,在它完成后,我需要从我的视频开始修剪x秒。我的流有
master.m3u8
playlist,然后是3个子
index[0 | 1 | 2].m3u8
playlists

我正在尝试不同的方法,它们似乎都能产生结果,但没有我预期的结果

例如:

ffmpeg-i索引0.m3u8-SS30-strict-2-hls时间6输出0.m3u

似乎生成了正确的
*.ts
文件数量,但播放列表只有30秒长。最初的
#EXT-X-TARGETDURATION
设置为6,现在是8,但实际大小是浮动的8.3333…

我肯定错过了什么

更新1:

好的,我找到了我的
*.m3u8
文件太小的原因,默认情况下它只加载列表中最后几条记录,所以设置
-hls\u list\u size 0
解决了这个问题。现在我需要弄清楚如何去掉浮点视频大小

更新2:

似乎我需要
-hls\u标志按时间分割
标志,以便hls transmuxer不忽略我的
hls\u时间
选项。现在我的输出更接近正确的结果,仍然存在浮点视频大小问题

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.933333,
output_clip0.ts
#EXTINF:6.033333,
output_clip1.ts
#EXTINF:5.933333,
output_clip2.ts
#EXTINF:6.000000,
output_clip3.ts
#EXTINF:3.000000,
output_clip3.ts
#EXT-X-ENDLIST