Manjaro Linux

Русское сообщество

Трансляция видео с веб-камеры со звуком через браузер

Описание полезных, на ваш взгляд, прорамм работающих под Linux Manjaro, и их установка

Трансляция видео с веб-камеры со звуком через браузер

Сообщение manjarqo » 14 дек 2014, 23:20

Всё довольно просто: ffmpeg захватывает поток с камеры и отправляет его ffserver-у, ffserver конвертит его превращая в swf, который можно просмотреть в браузере, введя адрес компьютера, на котором ffserver запущен. Использовалась простая usb-камера A4TECH PK-835MJ.
Устанавливаем ffmpeg-full-server:
Код: Выделить всё
yaourt -S ffmpeg-full-server

редактируем конфиг:
Код: Выделить всё
sudo nano /etc/ffserver.conf

Ниже привожу пример моего конфига, у вас может что то меняться в зависимости от того какие устройства и какие параметры вы пожелаете задать.
Мой ffserver.conf
# Порт, на котором будет работать ffserver
Port 4444
# Адрес, на котором будет работать 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 320x240 -f video4linux2 -i /dev/video0 -f alsa -ac 1 -i hw:3
# С каких адресов может обращаться источник
ACL allow 127.0.0.1
</Feed>
# Описываем первый поток. Это будет поток в формате flv
<Stream webcam.flv>
# Источник потока
Feed webcam.ffm
# Используемый формат
Format flv
# Используемый кодек
VideoCodec flv
# Частота кадров
VideoFrameRate 30
# Размер буфера
VideoBufferSize 80000
# Битрейт
VideoBitRate 300
# Минимальное и максимальное качество
VideoQMin 1
VideoQMax 5
# Размер видео. Дожно совпадать с размером видео на источнике
VideoSize 320x240
# Время ожидания перед началом отправки данных клиенту (в секундах)
PreRoll 0
# Звук мы транслировать не будем
# NoAudio
</Stream>
# Второй поток. Это SWF-файл с FLV-потоком внутри
# Всё остальное по аналогии
<Stream webcam.swf>
Feed webcam.ffm
Format swf
VideoCodec flv
VideoFrameRate 30
VideoBufferSize 80000
VideoBitRate 400
VideoQMin 1
VideoQMax 7
VideoSize 320x240
PreRoll 0
#NoAudio
</Stream>
# При обращении к индексной страницы ffserver будем отображать текущий статус сервера
<Stream index.html>
Format status
</Stream>


Касательно:
Код: Выделить всё
Launch ffmpeg -s 640x480 -f video4linux2 -i /dev/video0 -f alsa -i hw:1


-s 640x480 - разрешение камеры
-f video4linux2 - интерфейс захвата видео в линукс. Еще можно попробовать video4linux если не прокатит video4linux2.
-i /dev/video0 - путь к камере
-f alsa интерфейс для захвата аудио
-i hw:3 - микрофон.

Узнаём номер устройства микрофона
Код: Выделить всё
arecord -l

Если звук не пошел рекомендую поиграть с параметром -ac 1
1 или 2, у меня на 2 ругался

Запускаем ffserver:
Код: Выделить всё
ffserver

или
Код: Выделить всё
ffserver -d

для вывода информации в процессе отладки.

Заходим через браузер, например если с того же компьютера: http://127.0.0.1:4444/ , попадаем на информационную страницу ffserver-а, где есть ссылка на просмотр видео.
У меня всё работало идеально, проверял с рабочего компа и с телефона, везде показывало изображение и звук с моей вебки дома.
Способ взял отсюда
Аватара пользователя
manjarqo
Администратор
 
Автор темы
Сообщения: 407
Зарегистрирован: 30 июн 2014, 15:36
Откуда: Краснодар
Благодарил (а): 51 раз.
Поблагодарили: 64 раз.

Re: Трансляция видео с веб-камеры со звуком через браузер

Сообщение sizonov stas » 15 дек 2014, 03:59

Спасибо, не знал о таком способе.
Знаю, что есть Ivideon Server
https://aur.archlinux.org/packages/ivid ... -headless/
Аватара пользователя
sizonov stas
 
Сообщения: 70
Зарегистрирован: 05 июл 2014, 03:35
Благодарил (а): 1 раз.
Поблагодарили: 11 раз.


Вернуться в Софт



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1