2016-12-30 5 views
0
here is my config file: 


#user nobody; 
worker_processes 1; 

error_log logs/error.log; 
#error_log logs/error.log notice; 
error_log logs/error.log info; 

#pid  logs/nginx.pid; 


events { 
    worker_connections 1024; 
} 


http { 
    include  mime.types; 
    default_type application/octet-stream; 

    #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
    #     '$status $body_bytes_sent "$http_referer" ' 
    #     '"$http_user_agent" "$http_x_forwarded_for"'; 

    #access_log logs/access.log main; 

    sendfile  on; 
    #tcp_nopush  on; 

    #keepalive_timeout 0; 
    keepalive_timeout 65; 

    #gzip on; 

    server { 
     listen  80; 
     server_name localhost; 

     #charset koi8-r; 

     #access_log logs/host.access.log main; 

     location/{ 
      root html; 
      index index.html index.htm; 
     } 
     location /stat { 
      rtmp_stat all; 
      rtmp_stat_stylesheet stat.xsl; 
     } 

    location /stat.xsl { 

    } 

    # rtmp control 
    location /control { 
     rtmp_control all; 
    } 

    location /hls { 
     types { 
      application/vnd.apple.mpegurl m3u8; 
      video/mp2t ts; 
     } 
     root F:/PD/Temp; 
     add_header Cache-Control no-cache; 
     add_header Access-Control-Allow-Origin *; 
    } 

     #error_page 404    /404.html; 

     # redirect server error pages to the static page /50x.html 
     # 
     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root html; 
     } 





    } 


} 
rtmp { 
    server { 
     listen 1935; 
     chunk_size 4096; 
     buflen 10s; 

     application live { 
      allow publish all; 
      allow play all; 
      live on; 
      record off; 
      drop_idle_publisher 5s; 

      hls on; 
      hls_sync 100ms; 
      hls_path F:/PD/Temp/hls; 
      hls_fragment 2s; 
      hls_playlist_length 10m; 
     } 
    } 
} 

me sers media encoder en direct adobe et aussi OBC encodeurs, j'ai essayé avec vlc et aussi joueur rtmp dans le navigateur. les deux me donnent des latences variables. Alors, où puis-je syntoniser pour diminuer la latence. Je veux simplement temps de latence zéro, ma demande sera entièrement local (LAN) sans facteurs streaming InternetComment réduire la latence dans le réseau local, je utilise nginx avec module RTMP

Répondre

0

3 sont importants ici:

1) taille de playlist en quelques secondes

Si une liste de lecture a 10 secondes (le vôtre a 10 minutes), le module rtmp doit attendre 10 secondes de flux ingest pour générer 10 secondes de fragments, non? Il ne peut pas générer 10 secondes de fragment, si les trames rtmp ne sont pas encore arrivées.

2) taille de seconde dans fragmentés s

Lorsque votre liste de lecture est prêt pour la livraison (disons 10 secondes), vous devez avoir 10 secondes en fragments. Donc, vous avez ces choix: 10/1 = 1 fragment/10 secondes, 10/2 = 2 fragments/5 secondes chacun, 10/3 = 3 fragments/3,33 secondes chacun (ce n'est pas bon) mais ...

3) image clé

Chaque fragment est rompu par une image clé, vous devez donc ajuster votre encodeur pour ajouter une image clé chacun 1, 2 ou 5 secondes, si votre liste de lecture a 10 secondes. Si votre liste de lecture a 12 secondes, votre doit ajuster votre encodeur pour ajouter une image clé chaque 1, 2, 3, 4, 6 ou 12.

CV:

hls_playlist_length 6s; 
hls_fragment 2s; 

enconder images clés = 2 pour une playlist avec 3 fragments.

Retard = + - 8 secondes.