kr8j3 0 Zgłoś post Napisano Wrzesień 23, 2015 Witam, mam kilka pytań. Męczę się z nginx rtmp (a dokładnie z hls). Chciałbym aby stream z kamery dzieliło mi na fragmenty 10 sekundowe. Wrzucam config nginxa #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 10240; } 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 /stats { rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl { root html; } location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /tmp; add_header Cache-Control no-cache; } location /dash { # Serve DASH fragments root /tmp; add_header Cache-Control no-cache; } #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; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} } rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name; } application live360p { live on; record off; } application hls { live on; hls on; hls_path /tmp/hls; } application dash { live on; dash on; dash_path /tmp/dash; } } } I mam problem chociażby z odtworzeniem tego. Gdy na chwilę zapętle śmiesznekoty.mp4 w ffmpeg i w VLC wrzucę http://localhost:1935/hls/test.m3u8 to działa jednak jak próbuję to wrzucić przez player np jwplayer to mam błąd. Druga sprawa, to czy w/w konfiguracja już będzie cieła pakiety na 10 sekundowe ramki? Bo nie widzę opcji w konfiguracji do ustawienia tego. Trzecia to dynamiczne obciążenie, pobierając fragmenty streamu kamery chciałbym aby raz pobierało z serwera1 a raz z serwera2 Dzięki za pomoc :] Zawartość pliku m3u8 pobrana z VLC #EXTM3U #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:16 #EXT-X-TARGETDURATION:6 #EXTINF:5.005, test-16.ts #EXTINF:6.423, test-17.ts #EXTINF:5.005, test-18.ts #EXTINF:5.005, test-19.ts #EXTINF:6.298, test-20.ts #EXTINF:5.005, test-21.ts Udostępnij ten post Link to postu Udostępnij na innych stronach
SOK 0 Zgłoś post Napisano Wrzesień 24, 2015 HLS zostało wymyślone dla użądzeń mobilnych - testuj na telefonie albo w playerze HTML5. W odtwarzaczu flashowym testuj strumień flv. Spróbuj hls_fragment 10s Można pobierać z różnych serwerów jakimś roundrobin na subdomenie, ale jak zachhować synchronizacje strumieni nie mam pomysłu. Udostępnij ten post Link to postu Udostępnij na innych stronach
kr8j3 0 Zgłoś post Napisano Wrzesień 24, 2015 Mam problem z osadzeniem tego na player. Próbowałem wszystkiego nawet coś takiego jak tutaj: http://sqp.sqp.p6.tiktalik.io/2.html Link do m3u8 to: http://sqp.sqp.p6.tiktalik.io/hls/test.m3u8 Zawartość: #EXTM3U #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:13 #EXT-X-TARGETDURATION:5 #EXTINF:3.000, test-13.ts #EXTINF:4.800, test-14.ts #EXTINF:4.800, test-15.ts #EXTINF:4.800, test-16.ts #EXTINF:3.000, test-17.ts #EXTINF:4.800, test-18.ts #EXTINF:4.800, test-19.ts #EXTINF:3.000, test-20.ts #EXTINF:4.800, test-21.ts #EXTINF:4.800, test-22.ts na VLC działa, jak mogę taki stream osadzić na stronie? Ktoś podeśle gotowe rozwiązanie? Udostępnij ten post Link to postu Udostępnij na innych stronach