В настоящее время у меня есть функциональная настройка прямой трансляции с использованием библиотеки nginx-rtmp
, и я использую ffmpeg
для обеспечения различных разрешений моего потока.
Единственная проблема в том, что ffmpeg
только с двумя выходами съедает ~ 50% моего процессора. Я хотел бы иметь возможность поддерживать до 20 стримеров одновременно - с учетом текущего спроса это означало бы, что мне нужно в 10 раз больше ресурсов процессора, чем у меня сейчас!
Как я могу масштабировать мои настройки транскодирования с 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;
}
}
}