Предаване на видео от IP камери D-Link, Freelance Karelia

камери

Трябваше да работи по следния начин:

  1. От камерата се формира MJPEG поток, който взема текущия кадър /cgi-bin/video.jpg. За целта се използва детекторът за движение. Това софтуерно решение ме подкупи със своята лекота, бързина и доста гъвкава функционалност.
  2. След това ffmpeg преобразува MJPEG потока във flv и обслужва flv потока с помощта на ffserver.
  3. В необходимата HTML страница е вграден FLV плейър, който показва изображението.

Ще опиша по-подробно процеса на инсталиране и конфигуриране на тази доброта на Debian 4.0:

1. Подготовка: Добавете хранилището на debian-multimedia към /etc/apt/sources.list

2. конфигурация на движение (/etc/motion/motion.conf): Самото движение обикновено е софтуерен детектор на движение. Има доста интересни настройки и опции. Конфигурирането се извършва чрез файла /etc/motion/motion.conf.

# Включете демона daemon on quiet on

# Посочете URL адреса на рамката на камерата # и, ако е необходимо, потребителското име и паролата netcam_url http : //IP-ADDRESS/cgi-bin/video.jpg netcam_userpass admin : adminpass # Текст отляво text_left Тест

# Размер на получен кадър от камера w >704 височина 576

# Честота на кадрите. С други думи, максималният брой кадри, взети от камерата, е # в секунда framerate 5 # Качество на заснетото изображение качество 100 # Деактивиране на автоматичната яркост auto_brightness изключен

яркост 0 контраст 0 наситеност 0 оттенък 0

# Изключете използването на ffmpeg в реално време ffmpeg_cap_new off

# Директория, където съхраняваме моментни снимки и филми target_dir /var/lib/motion/snapshots

# Включете сървъра, който излъчва MJPEG потокана порт 8081 webcam_port 8081

# Разрешаване на връзка с MJPEG поток # Ако ffmpeg е на друг IP, тогава стартирайте. В противен случай - на webcam_localhost изключено

# Качество на изходния MJPEG поток webcam_quality 100 # Скорост на кадрите на изходния поток webcam_maxrate 5

Можете да проверите наличието на MJPEG поток, например, като използвате мултимедийния плейър VLC.

3. Конфигурация на ffserver: FFserver се конфигурира чрез файла /etc/ffserver.conf:

# Порт, където ffserver ще слуша и изпраща flv поток Порт 8080

# интерфейс за свързване на ffserver (в този случай всичко) BindAddress 0.0.0.0

# Максимален разрешен брой клиенти MaxClients 1000

# Широчина на честотната лента в kbit/sec MaxBandw >100000

# Регистрационен файл CustomLog /var/log/ffserver.log . # Описващ канал Файл /tmp/feed1.ffm Максимален размер на файла 10M . # Флаш видео поток # Опишете неговите параметри (битрейт, честота на кадрите, размер на буфера и т.н.) Feed feed1.ffm Формат flv VideoCodec flv #VideoFrameRate 4 VideoSize 4cif V >2000 #Qscale 2 #VideoB ufferSize 256 #VideoQMin 10 #VideoQMax 10 #VideoIntraOnly PreRoll 0 NoAudio . # Можете да активирате статистика Статус на форматиране # Разрешете само на местни хора да получават статуса #ACL разрешите localhost ACL разрешите .

4. Стартиране и спиране на скриптове за ffmpeg и ffserver: За да стартираме и спираме ffmpeg и ffserver, ние създаваме прости скриптове на обвивката. start_ffmpeg.sh:

# Стартирайте ffserver /usr/bin/ffserver; # Стартирайте ffmpeg /usr/bin/ffmpeg -s 4cif -y -an -r 4 -f mjpeg -i http://127.0.0.1:8081/stream.mjpg http://ip-АДРЕС: 8080 / feed1.ffm &

# За простота. 8) убийте всички ffserver; killall ffmpeg;

FlowPlayerLight.swf можете да намерите тук. Библиотекатаswfobject.js е тук.

Можете, разбира се, просто да вградите FLV плейъра в HTML кода, като използвате Embed и Object.

Много важна забележка: най-вероятно ще трябва да си поиграете с честота на кадрите, битрейт и други параметри в ffserver.conf и в стартовия скрипт. Трябваше да се занимавам дълго време, избирайки повече или по-малко нормални стойности, защото имаше проблеми с възпроизвеждането на потока във FLV плейъра.

6. Сега всичко е готово за пробно изпълнение: Стартиране на движение

Стартирайте ffserver и ffmpeg

Отваряме index.html в браузъра и гледаме дали се показва изображението от камерата.