2016-04-08 3 views
0

Ich versuche, rtsp Stream mit dem folgenden Befehl in .m3u8 Format aufzuzeichnen.ffmpeg hls Aufzeichnung der Dauer ist Float anstelle von Integer

~/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" 

Die oben mit älteren Version von ffmpeg Feinbearbeitung (< 3.0) und die m3u8 Dateiinhalt ist wie,

live.m3u8 mit alten 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 

Notiere die Dauer ist eine ganze Zahl.

Aber wenn ich die neuen ffmpeg3.0 bauen und den gleichen Befehl ausführen die Dauer geändert wird, irgendeine Sache zu Flot wie,

live.m3u8 mit neuen 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 

I müssen die ts Datei mit der Dauer als Integer-Variable mit ffmpeg 3.0 generieren.

Warum passiert das in ffmpeg 3.0 wo es funktioniert in der älteren Version ?.

Antwort

1

Beginnend mit HLS Version 3 werden die EXTINF Dauern als Gleitkommawerte ausgedrückt. Sie müssen nur für Versionen 2 und älter integer sein.

+0

Also mit ffmpeg 3.0 kann ich HLS 2 oder früher verwenden. – Haris

+0

@Haris Ich sehe keine Option. In jedem Fall sollte es keinen Unterschied machen, wie beide Beispiele Version 3 verwenden – aergistal