Трансляция с web-камеры с помощью ffmpeg

FFmpeg — набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио и видео записи в различных форматах.

Для целей потокового вещания в FFmpeg входит компонент ffserver.

Настройка проводилась на Ubuntu 10.10.

С ffmpeg из стандартного репозитория Ubuntu возникли проблемы, трансляция не запускалась, ffmpeg падал с ошибкой сегментирования. Поэтому потребовалась установка из svn, для этого выполняем:

# sudo aptitude install subversion libmp3lame0 libmp3lame-dev
# svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
# cd ffmpeg
# ./configure —enable-libmp3lame —enable-pthreads —disable-yasm
# make
# sudo make install

После установки требуется отредактировать только один конфигурационный файл. Редактируем /etc/ffserver.conf:

# Порт, на котором будет транслироваться поток
Port 8090
# По каким ip-адресам будет доступен поток
BindAddress 0.0.0.0
# Максимальное количество клиентов
MaxClients 10
# Максимальная полоса пропускания в кбит/с
MaxBandwidth 1000
# Если вы хотите, чтобы ffserver стартовал
# как демон, то закомментируйте строку
NoDaemon

# Описание фида

# Временный файл
File /tmp/feed.ffm
# Размер временного файла
FileMaxSize 3M
# Команда запуска ffmpeg,
# ключ s — задает разрешение
# ключ f — формат входного файла
# ключ i — источник видео
Launch ffmpeg -s 352×288 -f video4linux2 -i /dev/video0

# Флеш поток test.swf для просмотра трансляции

# Ранее заданный фид
Feed feed.ffm
# Будет запускаться в Adobe Flash Player
Format swf
VideoCodec flv
VideoFrameRate 30
VideoBufferSize 50000
VideoBitRate 100
VideoQMin 1
VideoQMax 5
# Разрешение должно совпадать с захватываемым ffmpeg
VideoSize 352×288
PreRoll
# Отключение аудио
Noaudio

# При обращении к индексной страницы ffserver будем отображать текущий статус сервера

Format status

Запускаем ffserver:

# ffserver -f /etc/ffserver.conf

Если запуск прошел успешно, то трансляция должна быть доступна через web-интерфейс по адресу:

http://host:8090/

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *