HLS流媒体始终从Android浏览器开始

时间:2015-08-13 20:00:15

标签: android ffmpeg hls m3u8

问题

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插件

帮助

有没有其他人遇到这个问题?

1 个答案:

答案 0 :(得分:0)

正如Aergistal在评论中所说。 最新的ffmpeg直接支持hls。 因此,只需使用-f hls代替-f segment。 然后问题解决了。

  1. 如果我们使用-f segment

    • #EXT-X-MEDIA-SEQUENCE的值始终为0
    • 添加最新记录时,不会删除以前的TS记录。
    • 也许有些参数我不知道。

    这样Android设备将始终从第一个TS文件开始。

  2. 如果我们使用-f hls

    • 我们可以使用-hls_list_size来定义m3u8文件中的TS文件数。
    • #EXT-X-MEDIA-SEQUENCE的值会自动更新。

    然后它运作良好。