стоит Debian на домашнем файл сервере на базе старого ноута.
Система установлена из образа debian-7.5.0-amd64-netinst.iso в соответствии с инструкцией.
Графический интерфейс не ставился. Установленные компоненты: Webserver, fileserver, sshserver
Географическое положение ноута просто обязывает воткнуть в него USB-Камеру и вынести её на балкон чтоб писать и смотреть как там машина во дворе.
Поставил все в точном соответствии с этими рекомендациями: ТЫЦ
конфиг ffserver повторил, под спойлером (у себя просто заменил порт с 12345 на 9090):
Spoiler
файл "/etc/ffserver.conf" :
Код: Выделить всё
# Порт, на котором будет работать ffserver
Port 9090
# Адрес, на котором будет работать 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>
Трансляции не было, просто при открытии flv или swf крутилось начало загрузки и ничего, пока не останавливал ffserver.
Камера работает точно, но всё по порядку.
В загруженном flv файле присутствовал заголовок с характеристиками потока, но самого потока не было.
Путем научного тыка нашёл, что в feed файл webcam.ffm пишется 4096байт и всё.
Запустил из командной строки
Код: Выделить всё
ffmpeg -s 640x480 -f video4linux2 -i /dev/video0 /tmp/webcam.ffm
Пишется в файл изумительно. Потом свободно конвертировал этот файл, смотрел с него, изображение отлично записывается.
Но при запуске ffserver с конфигом он к команде из конфига (где не указан адрес приемника потока)
Код: Выделить всё
ffmpeg -s 640x480 -f video4linux2 -i /dev/video0
добавляет адрес приемника потока
Код: Выделить всё
http://127.0.0.1/webcam.ffm
и получается
Код: Выделить всё
ffmpeg -s 640x480 -f video4linux2 -i /dev/video0 http://127.0.0.1/webcam.ffm
Повторил эту команду из строки и тут то и оказалось, что в localhost ffmpeg пишет только заголовок (header) 4096Байт и писец, но при задании приемника в виде /tmp/webcam.ffm пишет отлично.
Ума не приложу почему.
Сильно не пинайте если что не так, первый опыт с nix системами был в прошлом году, когда поставил дома Raspberry с XBIAN из готового образа, второй сейчас, когда три дня назад поставил вышеупомянутую Debian. До этого работал только на продукции мелкомягких, правда начиная с DOS (когда ещё окон не было).