美文网首页
[bash shell]简单分析 m3u8 的小脚本

[bash shell]简单分析 m3u8 的小脚本

作者: Tecooler | 来源:发表于2016-11-22 11:59 被阅读0次

    关于 m3u8

    M3U8是Unicode版本的M3U,用UTF-8编码。"M3U"和"M3U8"文件都是苹果公司使用的HTTP Live Streaming格式的基础,这种格式可以在iPhone和Macbook等设备播放。
    m3u8 其实是一个文本文件,是一个 playlist,用来索引 ts 文件,真正的流媒体文件其实是ts 文件
    ⭐️参考 wiki (https://zh.wikipedia.org/wiki/M3U#M3U8)

    举个例子:

    http://sc.sc.bz1.me/123123123.m3u8

    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-ALLOW-CACHE:NO
    #EXT-X-TARGETDURATION:10
    #EXT-X-MEDIA-SEQUENCE:1
    #EXT-X-DISCONTINUITY
    #EXTINF:5.133,
    /fragments/z1.Newhub.5784a9645e77b0372002e792/1468570587846-1468570592979.ts
    #EXTINF:5.333,
    /fragments/z1.Newhub.5784a9645e77b0372002e792/1468570592238-1468570597571.ts
    #EXTINF:5.334,
    /fragments/z1.Newhub.5784a9645e77b0372002e792/1468570597278-1468570602612.ts
    <此处省略部分>
    #EXT-X-ENDLIST
    

    七牛的 avthumb 切片或者直播的转码服务,生成的 m3u8 文件格式大体如上,有的 m3u8 文件可能是在文本中是 http://domain/key.ts 的格式。

    标准的 m3u8 文件遵循了apple公司的官方标准,可以用官方工具( mediastreamvalidator )检测看下,此处不赘述。

    $ mediastreamvalidator http://sc.sc.bz1.me/123123123.m3u8
    

    有一些可能就不是很标准,本文脚本可以拆分出每个 ts 的物理时间戳,走北京时间,并且计算出每个 ts 的时长和视频总时长,简单实用。
    实用脚本前需要先在本地下载七牛的 qshell工具
    http://developer.qiniu.com/code/v6/tool/qshell.html ,并且加入环境变量(全局可以运行 qshell)

    脚本如下:

    curl $1 | grep ts | awk -F '/z1.' '{print $2}' | awk -F '/' '{print $2}' | awk -F "." '{print $1}' | awk -F '-' '{"qshell tms2d "$1|getline a; close("qshell tms2d "$1);"qshell tms2d "$2|getline b;close("qshell tms2d "$2);print a," ",b;}' >test11
    
    curl $1 | grep ts | awk -F '/z1.' '{print $2}' | awk -F '/' '{print $2}' | awk -F "." '{print $1}' | awk -F "-" '{print ($2 - $1)/1000 " s"}' >test22
    
    cat test22 | awk '{sum+=$1} END {print "Total = ", sum}' >test33
    
    paste test11 test22
    echo ""
    echo "m3u8中的ts文件总时长(分钟为单位)"
    cat test33 | awk '{print $3/60 " min"}'
    
    rm test11
    rm test22
    rm test33
    

    测试输出如下:

    tsss.shtsss.sh

    相关文章

      网友评论

          本文标题:[bash shell]简单分析 m3u8 的小脚本

          本文链接:https://www.haomeiwen.com/subject/sqmppttx.html