前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >live_m3u8

live_m3u8

作者头像
py3study
发布2020-01-15 12:38:56
1.2K0
发布2020-01-15 12:38:56
举报
文章被收录于专栏:python3

#EXTM3U

#EXT-X-VERSION:3

#EXT-X-TARGETDURATION:5

#EXT-X-MEDIA-SEQUENCE:1465827036

#EXTINF:5.000,

#EXT-X-PROGRAM-DATE-TIME:2016-07-11T03:07:04Z

CHANNEL00000001/1660800/_1.ts

#EXTINF:5.000,

#EXT-X-PROGRAM-DATE-TIME:2016-07-11T03:07:09Z

CHANNEL00000001/1660800/_2.ts

#EXTINF:5.000,

#EXT-X-PROGRAM-DATE-TIME:2016-07-11T03:07:14Z

CHANNEL00000001/1660800/_3.ts


将上述m3u8文件保存为live.m3u8,放到Apache文档目录下,用VLC播放以下网址:

http://localhost/live.m3u8

测试发现,开始播放的第一个文件不是_1.ts,多次测试后发现:

只要列表中的文件超过三个,播放的总是列表中的最后三个文件

live m3u8文件列表是需要实时更新的,我们做测试的话,可以先在最后面加上#EXT-X-ENDLIST,这个方法经测试有效,但这样已经不是live m3u8模式


live m3u8更新规则

live m3u8文件列表需要不断更新,更新规则:

移除一个文件播放列表中靠前的(认为已播放的)文件,不断更新EXT-X-MEDIA-SEQUENCE标签,以步长为1进行递增

生成m3u8

#!/bin/sh

echo "#EXTM3U" 

echo "#EXT-X-MEDIA-SEQUENCE:1642"

echo "#EXT-X-TARGETDURATION:10"

for loop in `ls -rt *.ts`

do

   echo "#EXTINF:10,"

   echo $loop

done

echo "#EXT-X-ENDLIST"

nginx

user  root;

worker_processes  1;

error_log  logs/error.log  debug;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  0;

    server {

        listen       80;

        server_name  localhost;

        location / {

            if ($request_uri ~ ".*/./mp4\?fid=(.*?)&.*") {

                rewrite ^(.*)/.*$  $1/$arg_fid? redirect;

            }

            root   /opt1/voole_live_m3u8/;

            index  index.html index.htm;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档