DASH Nginx RTMP de baixa latência
Eu uso o arut nginx-rtmp-module (https://github.com/arut/nginx-rtmp-module) no servidor de mídia, tentei transmitir usando o FFmpeg para odash
aplicação, testo o fluxo reproduzindo-o usando o VLC.
E aguarda cerca de 30 segundos para começar a tocar, e é reproduzido desde o início, não no carimbo de data / hora atual.
Esta é a minha configuração atual no bloco RTMP
rtmp {
server {
listen 1935;
application live {
live on;
exec ffmpeg -re -i rtmp://localhost:1935/live/$name
-c:a libfdk_aac -b:a 32k -c:v libx264 -b:v 128K -f flv rtmp://localhost:1935/hls/$name_low
-c:a libfdk_aac -b:a 64k -c:v libx264 -b:v 256k -f flv rtmp://localhost:1935/hls/$name_mid
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 512K -f flv rtmp://localhost:1935/hls/$name_hi
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 512K -f flv rtmp://localhost:1935/dash/$name_dash;
}
application hls {
live on;
hls on;
hls_path /tmp/hls;
hls_nested on;
hls_variant _low BANDWIDTH=160000;
hls_variant _mid BANDWIDTH=320000;
hls_variant _hi BANDWIDTH=640000;
}
application dash {
live on;
dash on;
dash_path /tmp/dash;
dash_nested on;
}
}
}
Este é o comando que eu uso para streaming
ffmpeg -re -i 2014\ SPRING.mp4 -c copy -f flv
rtmp://52.221.221.163:1935/dash/spring
Como posso reduzir o atraso e fazê-lo tocar no mesmo timestamp que o streamer?
Posso atingir menos de 5s de latência?
ATUALIZAR
Tentou alterar o comprimento da lista de reprodução e o comprimento do fragmento, usando esta diretiva
dash_playlist_length 10s;
dash_fragment 2s;
Mas ainda tem algum problema de latência, às vezes é menor do que antes, às vezes é o mesmo