Друзья всем привет! и вновь Ubuntu и вновь консоль))) скучал по этой системе и вот снова имею честь работать с линуксом!
задача реализовать ретрансляцию с ip камеры на сайт по rtsp. Ставил 12 и 14 Ubuntu. в данные момент версия 12.04.5 сервер. Решено использовать nginx и rtmp модуль к нему + ffmpeg. Nginx поставил, с ним особо пока вопросов нет, а вот с ffmpeg заминка. Поставил ffmpeg $ sudo apt-get install ffmpeg, далее пробую подключиться к камере avconv -i rtsp://192.168.1.11:554/user=admin&password=&channel=1&stream=1.sdp
на выходе получаю
spro1@ubuntu12srv32:~$ avconv version 0.8.17-4:0.8.17-0ubuntu0.12.04.1, Copyright (c) 2000-2014 the Libav developers
built on Mar 16 2015 13:28:23 with gcc 4.6.3
[rtsp @ 0x86ddaa0] method DESCRIBE failed: 451 ERROR
rtsp://192.168.1.9:554/user=admin: Invalid data found when processing input
^C
[1] Выход из 1 avconv -i rtsp://192.168.1.9:554/user=admin
[2]- Готово password=
[3]+ Готово channel=1
проверил поток с камеры в vlc - с ним все ок, поток идет, картинка есть.
Не могу понять никак в чем ошибся, просьба наставить на путь истинный)) надеюсь на вас, дорогие друзья!
Пользователь решил продолжить мысль 10 Февраля 2016, 14:39:18:
гуглил-гуглил пол дня, только написал тут и вдруг попалась мне статья по теме, заключил ссылку в кавычки и вроде как заработало, НО, вот как всегда появляется это дурацкое "НО". Вот как будто сглазил, теперь осталось казалось бы только подправить кофиг nginx, а не тут то было. значит конфиг /etc/nginx.conf у меня сейчас такой:
user www-data;
worker_processes 1; #сколько ядер
pid /run/nginx.pid;
error_log /var/log/nginx/nginx_error.log debug;
env PATH;
events {
worker_connections 768;
}
http {
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
# rtmp stat
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
# you can move stat.xsl to a different location
root /etc/nginx/;
}
location / {
rtmp_control all;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
#Добавим locations для просмотра статических изображений с камеры
location /image/camera1/ {
proxy_pass "
http://192.168.0.3/GetImage.cgi?CH=1";
}
location /image/camera2/ {
proxy_pass "
http://192.168.0.4/dms?nowprofileid=2";
}
}
}
# RTMP proxy
rtmp {
access_log /var/log/nginx/rtmp_access.log;
server {
listen 1935;
ping 30s;
notify_method get;
application camera1 {
live on;
exec_pull ffmpeg -i "rtsp://192.168.1.10/user=admin&password=&channel=1&stream=0.sdp" -f flv -r 25 -s 800x600 -an rtmp://localhost:1935/camera1/stream 2>>/var/log/nginx/ffmpeg.log;
}
application camera2 {
live on;
exec_pull ffmpeg -i rtsp://admin:secret@192.168.0.4:554/live1.sdp -f flv -r 25 -s 800x600 -an rtmp://localhost:1935/camera2/stream 2>>/var/log/nginx/ffmpeg.log;
}
}
}
по идее после rtmpdump -r "rtmp://127.0.0.1:1935/camera1/stream" -v в консоль должно открыться видео, у меня на выходе вот что:
spro1@ubuntu12srv32:~$ rtmpdump -r "rtmp://127.0.0.1:1935/camera1/stream" -v
RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
WARNING: You haven't specified an output file (-o filename), using stdout
Connecting ...
ERROR: RTMP_Connect0, failed to connect socket. 111 (Connection refused)
вот чует сердце, что проблема опять в какой то мелочи, но вот в какой?