2016-04-08 2 views
0

Я пытаюсь записать поток rtsp, используя следующую команду в формате .m3u8.ffmpeg hls запись длительности является float вместо 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" 

выше работает нормально с более старой версией 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 и запустить ту же команду, длительность меняется на ФЛОТ некоторых вещей, как,

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 

I необходимо создать файл ts с длительностью как целочисленную переменную с ffmpeg 3.0.

Почему это происходит в ffmpeg 3.0, где он отлично работает в старой версии ?.

ответ

1

Начиная с версии HLS 3 продолжительность EXTINF выражается как значения с плавающей запятой. Они должны быть целыми числами только для версий 2 и ранее.

+0

Таким образом, используя ffmpeg 3.0, я могу использовать HLS 2 или ранее. – Haris

+0

@Haris Я не вижу никакого варианта. В любом случае, не следует иметь в виду, как оба примера используют версию 3 – aergistal

 Смежные вопросы

  • Нет связанных вопросов^_^