Используйте утилиту v4l2-ctl для получение списка устройств:
$apt-get install v4l-utils
$v4l2-ctl --list-devices
Vimicro USB 2.0 PC Camera (Venu (usb-bcm2708_usb-1.3):
/dev/video0
Для настройки web-камеры установим утилиту v4l-conf, для работы требуются X:
$apt-get install v4l-conf
Список аудио устройств:
$arecord -l
**** Список CAPTURE устройств ****
карта 0: Intel [HDA Intel], устройство 0: ALC272 Analog [ALC272 Analog]
Подустройства: 1/1
Подустройство №0: subdevice #0
Возможности устройства
Для просмотра списка доступных форматов конкретного устройства ввода:
$avconv -f video4linux2 -list_formats all -i /dev/video0
avconv version 0.8.13-6:0.8.13-1+rpi1, Copyright (c) 2000-2014 the Libav developers
built on Jul 29 2014 02:09:52 with gcc 4.6.3
[video4linux2 @ 0xf297c0] R : yuyv422 : YUV 4:2:2 (YUYV) : 640x480 352x288 320x240 176x144 160x120
Настройка сервера
Список кодеков $avconv -codecs
Список форматов $avconv -formats
Для потокового вещания в пакет ffmpeg входит утилита avserver - которая получает видеопоток от ffmpeg, или с удаленной машины.
Пример конфигурация avserver по умолчанию расположен/etc/avserver.conf
Создадим файл настроек:
$touch /etc/avserver-custom.conf
$nano /etc/avserver-custom.conf
Получаемый поток называется Feed, потоков может быть несколько.
содержимое файла:
# Порт, на котором сервер слушает. Вы должны выбрать другой
# Порт от стандартного HTTP веб-сервер, если он работает на том же самом
# Компьютере.
Port 8090
# Для доступа с любого адреса введите 0.0.0.0
BindAddress 0.0.0.0
# Количество одновременных соединений HTTP, которые могут быть обработаны.
MaxHTTPConnections 2000
# Количество одновременных запросов, которые могут быть обработаны.
MaxClients 1000
# максимальное пропускная способность в кбит / сек
MaxBandwidth 9000
# Файл журнала
CustomLog /var/log/ffserver-access.log
# Создание каналов передачи данных, каждый фид содержит один поток
<Feed webcam.ffm>
# Временный файл
File /tmp/webcam.ffm
# Максимальный размер временного файла
FileMaxSize 30M
# Команда для запуска источника.
Launch ffmpeg -s 640x480 -f video4linux2 -i /dev/video0 -f alsa -i hw:0 -vol 10 -ac 1
</Feed>
# Теперь вы можете определить каждый поток, который будет сформирован из
# Оригинального аудио и видео потока. Каждый формат имеет имя файла (здесь
# webcam.mpg). avserver пошлет этот поток при ответе на
# Запрос, содержащий имя этого файла.
<Stream webcam.mpg>
# Источник
Feed webcam.ffm
# формат потока
Format mpg
# кодек
VideoCodec mpeg2video
# Колество кадро в секунду
VideoFrameRate 25
# Размер буфера
VideoBufferSize 500
# Битрейт
VideoBitRate 200
# Качество
VideoQMin 1
VideoQMax 5
# Размер должен совпадать с размером видео на источнике
VideoSize 640x480
# Время ожидания перед началом отправки данных клиенту (в секундах)
#PreRoll 1
# Звук можно не транслировать
# NoAudio
# выбор аудио кодека
AudioCodec libmp3lame
# Количество аудиоканалов: 1 = моно, 2 = стерео
AudioChannels 1
# Битрейт аудио потока. Кодеки обычно поддерживают только несколько различных скоростей
# передачи битов.
AudioBitRate 128
# Частота дискретизации для аудио. При использовании низких битрейтов, вы должны
# Понизить частоту до 22050 или 11025. Поддерживаемые частоты
# Зависит от выбранного аудиокодека.
AudioSampleRate 44100
</Stream>
# Статус сервера
<Stream index.htm>
Format status
</Stream>
Теперь можно запустить сервер:
$avserver -d -f avserver.conf
-d – вывод сообщений для отладки.
результат запуска сервера
avserver version 0.8.13-6:0.8.13-1+rpi1, Copyright (c) 2000-2014 the Libav developers
built on Jul 29 2014 02:09:52 with gcc 4.6.3
Mon Oct 4 01:06:43 2014 AVserver started.
Mon Oct 4 01:06:43 2014 Launch command line: avconv -s 640x480 -r 30 -f video4linux2 -i /dev/video0 http://127.0.0.1:900/feed.ffm
avconv version 0.8.13-6:0.8.13-1+rpi1, Copyright (c) 2000-2014 the Libav developers
built on Jul 29 2014 02:09:52 with gcc 4.6.3
[video4linux2 @ 0x8f3bc40] Estimating duration from bitrate, this may be inaccurate
Input #0, video4linux2, from '/dev/video0':
Duration: N/A, start: 288826.276787, bitrate: 147456 kb/s
Stream #0.0: Video: rawvideo, yuyv422, 640x480, 147456 kb/s, 30 tbr, 1000k tbn, 30 tbc
[buffer @ 0x8f3c1a0] w:640 h:480 pixfmt:yuyv422
[avsink @ 0x8f3bbe0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'src' and the filter 'out'
[scale @ 0x8f3d660] w:640 h:480 fmt:yuyv422 -> w:640 h:480 fmt:yuv420p flags:0x4
Mon Oct 4 01:06:44 2014 127.0.0.1 - - New connection: POST /feed.ffm
Output #0, ffm, to 'http://127.0.0.1:900/feed.ffm':
Metadata:
encoder : Lavf53.21.1
Stream #0.0: Video: mpeg1video, yuv420p, 640x480, q=2-31, 200 kb/s, 1000k tbn, 30 tbc
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo -> mpeg1video)
Press ctrl-c to stop encoding
frame= 166 fps= 30 q=11.5 size= 376kB time=5.50 bitrate= 560.0kbits/s dup=120 drop=0
При копировании материалов ссылка на сайт обязательна