首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有rtmp模块和ffmpeg自适应流的Nginx没有创建主破折号清单。

带有rtmp模块和ffmpeg自适应流的Nginx没有创建主破折号清单。
EN

Server Fault用户
提问于 2021-06-18 21:58:40
回答 1查看 1.6K关注 0票数 1

我有一个工作设置的nginx与rtmp模块工作,就像一个魅力,创建实时流与破折号和hsl。到目前为止没问题。

当我尝试为自适应流启用ffmpeg转码时,它可以很好地创建hls版本、视频块、每个视频版本的m3pu8和我从网络播放器调用的主m3u8。

但是在破折号版本中,我得到了块,每个版本的mpd清单,但是没有主清单。

我是不是遗漏了什么?任何帮助都将不胜感激。

nginx.conf:

代码语言:javascript
复制
events {
    worker_connections  1024;
}
rtmp { 
    server { 
        listen 1935; 

        application live { 
            live on; 
            exec ffmpeg -i rtmp://stream.server.net/live/$name -threads 1
            -c:v libx264 -profile:v baseline -b:v 768K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 96k 
            rtmp://stream.server.net/liveout/$name_360 
            -c:v libx264 -profile:v baseline -b:v 1024K -s 852x480 -f flv -c:a aac -ac 1 -strict -2 -b:a 128k rtmp://stream.server.net/liveout/$name_480;
        } 

        application liveout {
                live on;
                hls on;
                hls_path /home/stream/hls/;
                hls_fragment 4s;
                hls_playlist_length 60s;

                dash on;
                dash_path /home/stream/dash;
                dash_fragment 10s;
                dash_playlist_length 30s;
                dash_nested off;

                hls_variant _360 BANDWIDTH=448000;
                hls_variant _480 BANDWIDTH=1152000;
        }



    } 
} 
 
http { 
    server {
        server_name stream.server.net;
        root /home/stream/;


        location /hls {
            # Serve HLS fragments
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            root /home/stream/;
            add_header Cache-Control no-cache;

            # CORS setup
            add_header 'Access-Control-Allow-Origin' '*' always;
            add_header 'Access-Control-Expose-Headers' 'Content-Length';

            # Allow CORS preflight requests
            if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'text/plain charset=UTF-8';
                add_header 'Content-Length' 0;
                return 204;
            }
        }


        location /dash { 
            root /home/stream/; 
            # Serve DASH fragments
            types {
                application/dash+xml mpd;
                video/mp4 mp4;
            }

            add_header Cache-Control no-cache;

            # CORS setup
            add_header 'Access-Control-Allow-Origin' '*' always;
            add_header 'Access-Control-Expose-Headers' 'Content-Length';

            # Allow CORS preflight requests
            if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'text/plain charset=UTF-8';
                add_header 'Content-Length' 0;
                return 204;
            }        
        }


        location /stat {
            rtmp_stat all;
            # Use this stylesheet to view XML as web page
            # in browser
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            # XML stylesheet to view RTMP stats.
            # Copy stat.xsl wherever you want
            # and put the full directory path here
            root /home/stream/;
        }



 
    
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/stream.server.net/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/stream.server.net/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
 
    types {
        text/html html;
        application/dash+xml mpd;
    } 
 
    server {
    if ($host = stream.server.net) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

 
        listen 80;
        server_name stream.server.net;
    return 404; # managed by Certbot


}}
EN

回答 1

Server Fault用户

发布于 2021-07-28 06:19:26

这似乎是dash_variant在模块中缺少的特性。看起来ut0mt8添加了这个特性,但是它可能不稳定。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1067153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档