HLS流在iOS浏览器(实时中流)中运行良好,
但是在大多数Android浏览器中,流媒体始终从头开始(流媒体开始时的第一个Ts文件)。
Android系统:4.0,4.4等..
FFmpeg命令的详细信息:拉入RTMP流,然后使用段将其传输到TS分割。
ffmpeg -re -i rtmp://ipaddress/live/streamname
-codec:a libfaac -b:a 96k -af volume=1 -ac 2 -ar 44100
-f segment
-segment_time 5
-segment_list_flags live
-segment_list /path/to/m3u8
-segment_format mpegts /path/to/ts
m3u8文件的详细信息
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:6
#EXTINF:5.000278,
file0000.ts
#EXTINF:5.013356,
file0001.ts4
HLS播放器:Ckplayer + m3u8插件
有没有其他人遇到这个问题?
答案 0 :(得分:0)
正如Aergistal在评论中所说。
最新的ffmpeg直接支持hls
。
因此,只需使用-f hls
代替-f segment
。
然后问题解决了。
如果我们使用-f segment
#EXT-X-MEDIA-SEQUENCE
的值始终为0
。这样Android设备将始终从第一个TS文件开始。
如果我们使用-f hls
-hls_list_size
来定义m3u8文件中的TS文件数。#EXT-X-MEDIA-SEQUENCE
的值会自动更新。然后它运作良好。