Как реализовать стриминг видео «Один-ко-многим» с минимальной задержкой?
В целом отвечу ещё сам раз есть 10 подписчиков.
Мне удалось настроить nginx так чтоб задержка стрима была около 7 - 9 секунд.
Вот конфиг nginxworker_processes  1;

rtmp {
           
    server {
		live on;
        listen 1935;
        chunk_size 512;
        buflen 1s;
        idle_streams off;
        
        application stream {
            live on; 
         	record off;
 
			hls on;
			hls_path /tmp/hls;
			hls_fragment 1s;
			hls_playlist_length 6; 
			hls_type live;
  
			hls_fragment_naming sequential;

			hls_nested on;  
			dash on;
            dash_path /tmp/dash;
            
            dash_fragment 1s;
            dash_playlist_length 6;
            dash_nested on; 
        } 
    }
}
Но этого мало. Если такой стрим скормить плееру https://videojs.github.io/videojs-contrib-hls/ то задержка будет 15 - 18 секунд примерно.
Но если внедриться в код плеера и перед тем как он в свои недра передаст содержимое index.m3u8 файла этот файл обрезать чтоб вместо 6 последних элементов в плей листе оставить 2 самых новых файла видео то задержка сократится до 7 - 9 секунд.
с hls у вас задержки меньше 30-40с не будет. low-latency сейчас идут rtmp/mse/webrtc. последний работает из коробки в фрисвиче через sipml5, только что клиентам нужна будет учётка для дозвона extension'у