видео

warning: Creating default object from empty value in /usr/data/www/drupal6/modules/taxonomy/taxonomy.pages.inc on line 33.

Раздача видео с видеокамеры

Бился, бился и добился решения, как раздавать видео с сетевой вебкамеры на сайт.

Что имеем

  • Сетевая камера которая отдает поток в rtsp
  • Мелкий канал до камеры
  • *nix сервер, в данном случае, FreeBSD 9.
  • Нормальный канал до сервера

Что хотим

  • Забирать видео с камеры по мелкому каналу на сервер
  • Выводить видео с сервера по широкому каналу.

Используем

Устанавливаем ffmpeg:

cd /usr/ports/multimedia/ffmpeg
make install clean

я выбрал для установки еще

 [*] X264              H.264 video codec support via x264
 [*] XVID              Xvid MPEG-4 video codec support   

Устанавливаем nginx c модулем rtmp

cd /usr/ports/www/nginx
make install
Не очищаем каталог порта, в папочке work/arut-nginx-rtmp-module-f7f24ba/ есть полезные примеры.

0
Your rating: Нет

Раздача картинки с видеокамеры

Возникла задача - нужно ip-камеру, которая выдает RTSP поток, показывать, при чем так, чтобы вне зависимости от количества пользователей, мог справиться и слабый канал.

Важным моментом в задаче, являлось то, что обновление кадров может происходить достаточно редко - от раз в секунду до нескольких минут.

В любом случае, нам требуется прокси-сервер, который будет стоять на широком канале, получать видео с камеры по узкому каналу и уже сам раздавать его клиентам.

Первой мыслью было сделать это все через rtmp потоки через vlc или erlyvideo. Но, похоже, VLC этого просто не умеет, а elyvideo у меня под FreeBSD с первой попытки не завелся, хотя говорят должно отлично работать.

В итоге, после некоторых мучений было решено получать поток через ffmpeg, из него сохранять картинки с некоторой периодичностью, и уже их публиковать на сайт.

С помощью ffmpeg получаем видео и складываем картинки в выбранный каталог:

ffmpeg -i rtsp://user:pass@IP-camera/mpeg4/ch1/main/av_stream -r ${time_caprute} -loglevel quiet pict_%d.jpg > /dev/null 2>&1

После этого полученными файлами вида pict_1.jpg, pict_2.jpg и т.д. нужно обновлять файл pict.jpg. Делаем это следующим образом:

find -s ${base_dir}/  -name "pict_*.jpg" -ctime +${time_update}s -size +${min_size_file} -exec mv {} ${base_dir}/pict.jpg \;

здесь:

0
Your rating: Нет

Перекодирование видео

Потребовалось на днях пережать видео с фотоаппарата, так чтобы вместо 200-300мб оно весило ближе к 50мб.
В итоге оказалось что все делается быстро и халявно.
Берется VirtualDub весящий аж целых 1,4мб ищется к нему инструкция

http://forum.ru-board.com/topic.cgi?forum=5&topic=24954&start=1760#12

вот алгоритм для VD для однопроходного режима
1. в отдельную папку кидаем нужные avi-шки. ничего другого в папке не должно быть, а то придется руками чистить Job Control

0
Your rating: Нет
Ленты новостей