ffmpeg hls记录持续时间是浮点而不是整数

时间:2016-04-08 08:34:55

标签: ffmpeg hls

我正在尝试使用.m3u8格式的以下命令记录rtsp流。

~/bin/ffmpeg -r 15 -i rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov -codec copy -hls_list_size 65535 -hls_time 2 -g 2 "./1/live.m3u8"

以上工作正常与旧版本的ffmpeg(< 3.0)和m3u8文件内容相似,

live.m3u8 与旧ffmpeg

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:2,
live0.ts
#EXTINF:2,
live1.ts
#EXTINF:2,
live2.ts
#EXTINF:0,
live3.ts
#EXT-X-ENDLIST

注意持续时间是整数。

但是当我构建新的ffmpeg3.0并运行相同的命令时,持续时间会改变为flot某些东西,

live.m3u8 使用新的ffmpeg3.0

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:2.000000,
live0.ts
#EXTINF:2.000000,
live1.ts
#EXTINF:2.000000,
live2.ts
#EXTINF:2.000000,
live3.ts
#EXTINF:2.000000,
live4.ts
#EXTINF:3.875000,
live5.ts
#EXT-X-ENDLIST

我需要使用ffmpeg 3.0生成持续时间为整数变量的ts文件。

为什么会在ffmpeg 3.0中发生这种情况,因为它在旧版本中运行良好?

1 个答案:

答案 0 :(得分:1)

从HLS版本3开始,EXTINF持续时间表示为浮点值。它们必须只是版本2和之前的整数。