Почему потоковая передача HLS занимает так много ресурсов процессора? - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь перевести веб-камеры, используя nginx+rtmp module на компьютере Debian.Когда я перезаписываю одну камеру, она работает хорошо и плавно, но требует много ресурсов процессора:

enter image description here

Вот мой конфиг:

user www-data;
worker_processes auto;

pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
   worker_connections 1024;
}
rtmp_auto_push on;

rtmp {
   live on;
   hls on;
   hls_fragment 5s;
   respawn_timeout 15s;
   chunk_size 8192;
   server {
       listen 1935;

       application cam1 {
            hls_path /tmp/cam1;
        }

    exec_static /usr/bin/ffmpeg -i http://cam-ip:8080/flv?login=user&channelid=channalid&password=pass&count=0
             -acodec copy -vcodec libx264 -vprofile baseline -f flv rtmp://server-ip/cam1/stream;
     }
}

http {

   server {
      listen 8080;
      location /stat {
         rtmp_stat all;
         rtmp_stat_stylesheet stat.xsl;
      }
      location stat.xsl {
        root /stat;
      }
      location / {
         types {
            application/vnd.apple.mpegurl m3u8;
         video/mp2t ts;
             }

         root /tmp/;

         add_header Cache-Control no-cache;

         add_header Access-Control-Allow-Origin *;
         add_header 'Access-Control-Expose-Headers' 'Content-Length';

         if ($request_method = 'OPTIONS') {
           add_header 'Access-Control-Allow-Origin' '*';
           add_header 'Access-Control-Max-Age' 1728000;
           add_header 'Content-Type' 'text/plain charset=UTF-8';
           add_header 'Content-Length' 0;
           return 204;
         }
     }
 }

 sendfile on;
 tcp_nopush on;
 tcp_nodelay on;
 keepalive_timeout 65;
 types_hash_max_size 2048;

 include /etc/nginx/mime.types;
 default_type application/octet-stream;

 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
 ssl_prefer_server_ciphers on;

 access_log /var/log/nginx/access.log;
 error_log /var/log/nginx/error.log;

 gzip on;
 gzip_disable "msie6";

 include /etc/nginx/conf.d/*.conf;
}

После того, как я добавил 12 веб-камер в конфигурацию, я получил ужасные лаги при взгляде на камеру.И 100% загрузка ЦП:

enter image description here

Почему у меня так много процессов ffmpeg в htop?
И почему так много ЦП?

...