возникла задача передавать картинку с вебкамеры через GSM модем в сеть и любоваться ею через браузер.
первым делом я зацепился за
motion. но при заходе на него даже через локалку, он практически не обновляет картинку: дорисует ее верхнюю часть, а дальше - ни-ни. так и обновляется только узкая верхняя полоска. все параметры в motion.conf, насколько я понял, регулируют только параметры записи и никак не влияют на передачу картинки в сеть.
следующим объектом насилия стал
ffserver. как только он был установлен и настроен моей радости не было предела: картинка
полетела! через жпрс. но радость была недолгой. оказалось, что при повторном подключении промежуточный файл начинает читаться не с текущего момента, а сначала. т.е. для того, чтобы хоть как-то приблизить к real time, нужно уменьшать размер промежуточного файла. но тут выскочила другая проблема: картинка добегает до конца файла и, обросши цветными квадратиками, становится колом. перезагрузка странички не помогает. получается, что промежуточник не переписывается? а можно ли как-нибудь без промежуточника обходиться?
ffserver завелся с конфигом
http://zenway.ru/page/ffserver# Порт, на котором будет работать ffserver
Port 12345
# Адрес, на котором будет работать ffserver.
# Если указать 0.0.0.0 то будут использованы все доступные адреса
BindAddress 0.0.0.0
# Максимальное количество обслуживаемых соединений
MaxHTTPConnections 2000
# Максимальное количество клиентов
MaxClients 1000
# Максимальная используемая полоса (в килобитах)
MaxBandwidth 1000
# Файл журнала. Формат подобен формату лога apache
CustomLog /var/log/ffserver-access.log
# Описываем источник
<Feed webcam.ffm>
# Временный файл для хранения промежуточных данных
File /tmp/webcam.ffm
# Максимальный размер файла с промежуточными данными
FileMaxSize 3M
# Команда для запуска источника.
# Адрес для отправки данных источником автоматически будет добавлен в конец этой строки
Launch ffmpeg -s 640x480 -f video4linux2 -i /dev/video0
# С каких адресов может обращаться источник
ACL allow 127.0.0.1
</Feed>
# Описываем первый поток. Это будет поток в формате flv
<Stream webcam.flv>
# Источник потока
Feed webcam.ffm
# Используемый формат
Format flv
# Используемый кодек
VideoCodec flv
# Частота кадров
VideoFrameRate 30
# Размер буфера
VideoBufferSize 80000
# Битрейт
VideoBitRate 200
# Минимальное и максимальное качество
VideoQMin 1
VideoQMax 5
# Размер видео. Дожно совпадать с размером видео на источнике
VideoSize 640x480
# Время ожидания перед началом отправки данных клиенту (в секундах)
PreRoll 1
# Звук мы транслировать не будем
NoAudio
</Stream>
# Второй поток. Это SWF-файл с FLV-потоком внутри
# Всё остальное по аналогии
<Stream webcam.swf>
Feed webcam.ffm
Format swf
VideoCodec flv
VideoFrameRate 30
VideoBufferSize 80000
VideoBitRate 200
VideoQMin 1
VideoQMax 5
VideoSize 640x480
PreRoll 1
NoAudio
</Stream>
# При обращении к индексной страницы ffserver будем отображать текущий статус сервера
<Stream index.html>
Format status
</Stream>
вот такие вопросы наросли...
п.с. любовь с zoneminder, vlc, mjpg-streamer не получилась вообще.
буду благодарен если поможете!)