【发布时间】:2018-10-07 10:41:52
【问题描述】:
我目前有一个使用多产 nginx-rtmp 库的功能性直播设置,并且我正在使用 ffmpeg 来提供我的直播的各种分辨率。
唯一的问题是,ffmpeg 只有 2 个输出会占用我大约 50% 的 CPU。我希望能够同时支持多达 20 个流媒体——按照目前的需求,这意味着我需要 10 倍于我目前拥有的 CPU 能力!
如何使用nginx-rtmp 和ffmpeg 扩展我的转码设置?
rtmp {
server {
listen 1935;
application src {
live on;
exec_push ffmpeg -i rtmp://localhost/src/$name
-c:v copy -preset:v ultrafast -b:v 512K -c:a copy -tune zerolatency -f flv rtmp://localhost/hls/$name_hi
-c:v libx264 -preset:v ultrafast -s 852x480 -b:v 128K -c:a copy -tune zerolatency -f flv rtmp://localhost/hls/$name_low;
# -c:v libx264 -s 852x480 -b:v 128K -c:a copy -tune zerolatency -f flv rtmp://localhost/hls/$name_low;
# -c:v libx264 -s 1280x720 -b:v 256k -c:a copy -tune zerolatency -f flv rtmp://localhost/hls/$name_mid;
}
application hls {
live on;
hls on;
hls_path /tmp/hls;
# hls_fragment 1s;
# hls_playlist_length 4s;
hls_fragment 4s;
hls_playlist_length 12s;
hls_nested on;
hls_variant _low BANDWIDTH=160000;
# hls_variant _mid BANDWIDTH=320000;
hls_variant _hi BANDWIDTH=640000;
}
}
}
【问题讨论】:
-
你最后是如何解决这个问题的?表示您最终部署的解决方案。
标签: nginx ffmpeg rtmp http-live-streaming