NGINX 和 FFMPEG 生成动态自适应流
Posted
技术标签:
【中文标题】NGINX 和 FFMPEG 生成动态自适应流【英文标题】:NGINX and FFMPEG generate dynamic adaptive streaming 【发布时间】:2020-08-11 05:16:29 【问题描述】:在这个配置文件中 https://github.com/TareqAlqutami/rtmp-hls-server/blob/master/conf/nginx.conf#L24-L30
对于每个接收到的流,为自适应流转码此单 ffmpeg 命令接受输入并将源转换为 4 具有不同比特率和质量的不同流。 # 这些 设置尊重纵横比。
我们如何动态生成变体?即对于 1080p 输入生成所有变体,但对于 240p 输入不生成任何变体
【问题讨论】:
【参考方案1】:我的启动没有错误 您需要配置日志并查看它给出的错误。 但另一种解决方案是手动检查 您可能正在使用未安装的编解码器
我会检查你的坦克,也许我可以贡献here
application live
live on; # Allows live input
exec ffmpeg -i rtmp://localhost/live/$name -threads 8
-c:v libx264 -profile:v baseline -b:v 768K -s 640x360 -vf "drawtext= fontcolor=red: fontsize=20: fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: text='360': x=10: y=10:" -f flv -c:a aac -ac 1 -strict -2 -b:a 96k rtmp://localhost/show/$name_360
-c:v libx264 -profile:v baseline -b:v 1024K -s 960x540 -vf "drawtext= fontcolor=red: fontsize=20: fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: text='480': x=10: y=10:" -f flv -c:a aac -ac 1 -strict -2 -b:a 128k rtmp://localhost/show/$name_480
-c:v libx264 -profile:v baseline -b:v 1920K -s 1280x720 -vf "drawtext= fontcolor=red: fontsize=20: fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: text='720': x=10: y=10:" -f flv -c:a aac -ac 1 -strict -2 -b:a 128k rtmp://localhost/show/$name_720
-c:v libx264 -profile:v baseline -b:v 4000K -s 1920x1080 -vf "drawtext= fontcolor=red: fontsize=20: fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: text='720': x=10: y=10:" -f flv -c:a aac -ac 1 -strict -2 -b:a 128k rtmp://localhost/show/$name_1080;
application show
live on; # Allows live input from above
hls on; # Enable HTTP Live Streaming
# hls_fragment 5s;
# Pointing this to an SSD is better as this involves lots of IO
hls_path /dest;
#hls_variant _240 BANDWIDTH=288000;
hls_variant _360 BANDWIDTH=448000;
hls_variant _480 BANDWIDTH=1152000;
hls_variant _720 BANDWIDTH=2048000;
hls_variant _1080 BANDWIDTH=4096000;
【讨论】:
以上是关于NGINX 和 FFMPEG 生成动态自适应流的主要内容,如果未能解决你的问题,请参考以下文章