Я использую очень простую программу для передачи потока ffmpeg с моей камеры Raspberry Pi на сервер nginx.Тем не менее, это не удается через 90 минут, почти с каждым Raspberry Pi, который я использую (у меня этот код на 12 Raspberry Pis).Вот моя команда ffmpeg:
raspivid -o - -t 0 -w 640 -h 480 -fps 25 | ffmpeg -re -i - -vcodec copy -hls_time 4 -f hls -hls_list_size 5 -hls_wrap 5 -threads 0 -timeout 5000 -max_reload 20000 -method PUT http://{}:{}/live/{}
А вот моя конфигурация для nginx.conf:
#user nobody;
load_module /usr/lib/nginx/modules/ndk_http_module.so;
load_module /usr/lib/nginx/modules/ngx_http_lua_module.so;
worker_processes auto;
env CONTROL_SERVER_IP;
#error_log /var/log/nginx/error.log;
error_log /dev/stdout info;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
access_log /dev/stdout;
sendfile on;
keepalive_requests 100000;
keepalive_timeout 30;
client_max_body_size 10M;
server {
listen 80;
server_name localhost;
location /live {
root /var/static;
client_body_temp_path /var/static/client_temp;
dav_methods PUT;
create_full_put_path on;
dav_access user:rw group:r all:r;
types {
application/vnd.apple.mpegurl m3u8;
}
# Disable Cache
add_header Cache-Control no-cache;
include cors.conf;
}
}
}
daemon off;
Если кто-нибудь может мне помочь, я был бы очень признателенЭто.Я дергал себя за волосы, пытаясь понять эту ошибку.На Raspberry Pi он зависает на этом:
[hls @ 0x25a8c90] Opening 'http://192.168.8.1:80/live/c35d8935-0a31-4d22-b71a-ad3f4f1d47631.ts' for writing
frame=105609 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105518 speed=1.02xframe=105623 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105532 speed=1.02xframe=105636 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105545 speed=1.02xframe=105648 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105557 speed=1.02xframe=105662 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105571 speed=1.02xframe=105674 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105583 speed=1.02xframe=105688 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105597 speed=1.02xframe=105700 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105609 speed=1.02xframe=105714 fps= 25 q=-1.0 q=1.6 size=N/A time=01:11:40.00 bitrate=N/A dup=0 drop=105623 speed=1.02x[hls muxer @ 0x25a9200] Duplicated segment filename detected: c35d8935-0a31-4d22-b71a-ad3f4f1d47631.ts
[hls @ 0x25a8c90] Opening 'http://192.168.8.1:80/live/c35d8935-0a31-4d22-b71a-ad3f4f1d47632.ts' for writing
А на логах nginx я получаю:
192.168.10.242 - - [21/Oct/2018:22:34:01 +0000] "PUT /live/c35d8935-0a31-4d22-b71a-ad3f4f1d4763.m3u8 HTTP/1.1" 204 0 "-" "Lavf/57.83.100"
192.168.10.242 - - [21/Oct/2018:22:35:04 +0000] "PUT /live/c35d8935-0a31-4d22-b71a-ad3f4f1d47633.ts HTTP/1.1" 408 0 "-" "Lavf/57.83.100"
Мне нужно настроить способ либо:соединения более 90 минут или б) определить, когда произошла ошибка 408, и остановить ее зависание.
Версия FFMPEG: 3.4.1