У ffserver есть документация: http://ffmpeg.org/ffserver.html, что хорошо. Понадобится только понять как настроить ffserver.conf и потом его скормить на запуске. Пример с описанием есть например тут: http://ffmpeg.org/sample.html. Внутри есть два основных понятия: feed — это то чем кормит сервер запущенный ffmpeg и stream — это собственно поток, который отдается через HTTP (порт тоже задается в конфигурационном файле) в нужном формате. Ну и есть такой псевдо-фид как status, который показывает HTML-страницу со статусом сервера: количество соединений, статус фида и потоков.
Настраивать потоки можно как хочется, но соразмерно с возможностями кодеков и аппаратуры. Кстати, вместо AudioCodec mp3 надо писать AudioCodec libmp3lame, но авторы об этом почему-то умолчали. И видео через theora тоже не умеет по какой-то причине. При этом все сообщения об ошибках обычно настолько туманны, что понять в чем дело не помогают ни чем.
После чего ffserver запускается, ему скармливается нужный конфигурационный файл, и начинается второй акт этой пьесы. Вообще говоря, выглядит просто: надо запустить ffmpeg, подав ему на вход собственно аудио и/или видео, а выход отправив по адресу вашего фида (например http://localhost:8090/feed1.ffm). Но при промахе с параметрами чрезвычайно бесполезные сообщения об ошибках не помогут понять в чем дело.
Дальнейшее зависит от конкретного оборудования. У меня была веб-камера со встроенным микрофоном. Микрофон работает как usb-аудио карта, видео через — video4linux2:
ffmpeg -f alsa -i hw:1 -f video4linux2 -s 320x240 -r 15 -i /dev/video0 http://localhost:8090/feed1.ffmГде -f alsa -i hw:1 — alsa на устройстве номер "1" (системная звуковая карта стало быть — "hw:0"), -f video4linux2 -s 320x240 -r 15 -i /dev/video0 — формат и количество кадров в секунду должны быть согласованы с настройками потока из ffserver иначе ничего не выйдет. Кроме того, параметры -s и -r нужно писать до -i, а не после.
После того, как ffmpeg успешно запустился и начал показывать статусную строку типа
frame= 7209 fps= 15 q=3.5 size= 35632kB time=480.47 bitrate= 607.5kbits/sможно открывать, смотреть и слушать поток по тому адресу, который заказан в ffserver.conf.
1 комментарий:
Круто. Может на каком-нибудь ГАИШевсом сервере поднять?
Отправить комментарий