加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

Nginx-rtmp模块和mpeg-dash(Dash行业dash.js)

发布时间:2020-12-13 21:30:21 所属栏目:Nginx 来源:网络整理
导读:Mpeg Dash-Streaming 我正在撰写关于直播的论文.我使用ffmpeg,ngix服务器和rtmp模块以及Dash industry的dash.js.我通过ffmpeg开始流到服务器,并且用破折号播放,播放器运行良好,但是有一些问题. 如果mpd-dash播放列表仍然具有块t = 0,则播放器仅播放,因此每当

Mpeg Dash-Streaming

我正在撰写关于直播的论文.我使用ffmpeg,ngix服务器和rtmp模块以及Dash industry的dash.js.我通过ffmpeg开始流到服务器,并且用破折号播放,播放器运行良好,但是有一些问题.

如果mpd-dash播放列表仍然具有块t = 0,则播放器仅播放,因此每当用户请求播放器和* .mpd更新时,块t = 0播放器都不会运行.

我将* .mpd文件上传到Dash Validator并收到错误:“Schematron验证未成功 – DASH无效!”.但是玩家是由nginx生成的 – rtmp模块而不是我.

在搜索了一些论坛后,我得到了一些信息,即nginx-rtmp模块生成错误的短划线播放列表* .mpd Nginx rtmp module -bug,并且可能是该错误被修复并合并到github中的主人(我认为是Mered – report).但我尝试下载最新的nginx和rtmp模块,播放器也播放不正确.

如果我玩2年前的dash.all.js版本:视频只播放好(播放结束)如果播放列表* .mpd中存在chunk t = 0,或播放器不播放(播放中间播放)
如果我玩dash.all.js持续版本:视频播放并停止播放或循环播放.

我真的需要一些帮助,我的截止日期即将到来.

这是我的nginx配置(主配置):

    rtmp {

    server {
        listen 1935;
        ping 30s;
        notify_method get;
        chunk_size 4000;
        allow play all;

        application myapp {
            live on;
            dash on;
            dash_path /tmp/dash;

            hls on;
            hls_cleanup on;
            hls_sync 100ms;
            hls_fragment 2s;
            hls_path /tmp/hls;

            allow play all;


        }
    }
}

and some others config:

location /hls {
        # Serve HLS fragments
        types {
            application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
        }
        root /tmp;
        add_header Cache-Control no-cache;
        add_header Access-Control-Allow-Origin *;
    }
    location /dash.js {
        root /usr/share/nginx/html;
    }

    location /streaminghls {
        root /usr/share/nginx/html;
    }

    location /dash {
        # Serve DASH fragments
        root /tmp;
        add_header Access-Control-Allow-Origin *;            

    }

and in html player :