ffserver & ffmpeg - не пишется фид на localhost (Трансляция видео в сеть с USB-камеры посредством ffserver)

Обсудить вопросы и проблемы с видео

Модератор: Модераторы разделов

Ответить
demm45
Сообщения: 2

ffserver & ffmpeg - не пишется фид на localhost

Сообщение demm45 »

Всем здравствуйте.
стоит 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 (когда ещё окон не было).
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: ffserver & ffmpeg - не пишется фид на localhost

Сообщение Bizdelnick »

ffserver вроде давно протух, не?
Если хочется именно онлайн-трансляцию (для всех, а не только для себя), то я бы делал через nginx-rtmp-module (в связке с тем же ffmpeg или avconv).
Если чисто для себя, да чтоб писалось сразу - взял бы готовый zoneminder и не изобретал велосипедов.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
demm45
Сообщения: 2

Re: ffserver & ffmpeg - не пишется фид на localhost

Сообщение demm45 »

Bizdelnick писал(а):
03.07.2014 11:52
ffserver вроде давно протух, не?
Если хочется именно онлайн-трансляцию (для всех, а не только для себя), то я бы делал через nginx-rtmp-module (в связке с тем же ffmpeg или avconv).
Если чисто для себя, да чтоб писалось сразу - взял бы готовый zoneminder и не изобретал велосипедов.

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


Но советом воспользовался. Zone не хочет работать с моими камерами на их штатном разрешении. Лепит мне на обе камеры (уже вторую подцепил, раз пошла такая пьянка) 320х240 при том что одна 1280х720, а вторая 640х480. Как то не хочется работать на предложенном им разрешении. На родных не работает. Посему снес.
Спасибо сказали:
Ответить