ffserver идёт в комплекте с ffmpeg и выполняет роль медиа-сервера - получает видеопоток от ffmpeg, который может быть запущен на другой машине, и раздаёт его пользователям.Каждый получаемый поток называется Feed-ом (далее будет просто фид). Таких потоков может быть несколько, так же как и отдаваемых (выходных). FFmpeg у нас будет захватывать видео с веб-камеры или читать из файла.
Сначала настроим ffserver, правим /etc/ffserver.conf:
Port 8090
BindAddress 0.0.0.0
MaxClients 100
MaxBandwidth 20000
NoDaemon
# Фид, надо запомнить feed.ffm, он нам потребуется при запуске ffmpeg
<Feed feed.ffm>
File /tmp/feed.ffm
FileMaxSize 3M
</Feed>
<Stream test.flv>
# Ранее объявленный фид
Feed feed.ffm
Format flv
VideoCodec flv
VideoFrameRate 30
VideoBufferSize 80000
VideoBitRate 200
# Качество видео от 1 до 31, 1 == отлично 31 == фи!
VideoQMin 1
VideoQMax 5
# Разрешение, везде должно быть одинаково!
VideoSize 352x288
PreRoll 1
# Если у вас есть микрофон, или вы транслируете видео со звуком, закомментируйте эту строчку
Noaudio
</Stream>
# Флешка test.swf для просмотра трансляции
<Stream test.swf>
Feed feed.ffm
# Будет запускаться в Adobe Flash Player
Format swf
VideoCodec flv
VideoFrameRate 30
VideoBufferSize 50000
VideoBitRate 100
VideoQMin 1
VideoQMax 5
# Разрешение, везде должно быть одинаково!
VideoSize 352x288
PreRoll
# Если у вас есть микрофон, или вы транслируете видео со звуком, закомментируйте эту строчку
46. Noaudio
</Stream>Запускаем ffserver:
$ ffserver
Запускаем ffmpeg:
$ ffmpeg -s 352x288 -r 30 -f video4linux2 -i /dev/video0 http://localhost:8090/feed.ffm
-s разрешение, указанное в конфурации ffserver,
-r количество кадров/секунду,
-f формат,
-i путь к камере (или к видео-файлу),
http://localhost:PORT/FEED - это адрес, где ffserver будет ждать наш потокPS: если выдаст ошибку, то можно попробовать формат v4l (-f video4linux)
Открываем в браузере http://localhost:8090/test.swf
Для отправки видео поменяем параметр -i на путь к файлу, уберём -f (ffmpeg сам определит формат файла):$ ffmpeg -s 352x288 -r 30 -i ~/big_buck_bunny.ogg http://localhost:8090/feed.ffm
Ну а что бы вставить нашу флешку в html-страницу используем следующий код:
<embed src="http://localhost:8090/test.swf" width="550" height="400"></embed>
URL: http://wiz.su/2009/12/20/potokovoe-video-sredstvami-ffserver.../
Обсуждается: http://www.opennet.me/tips/info/2252.shtml
Спасибо. Позновательно.
перепечатка манов на opennet ?не указано ни проблем которые возникнут ни их решений.
не говоря уже о том что сам ffserver сам по себе крайне не стабилен. И в настоящий момент, если и пытаться решать подобного рода задачи, то использовать для этого vlc
ну так и изложили бы вкратце, что имеете ввиду...
Уважаемый!
оформите заметку про влц, как организовать сервер, как организовать поток, что нужно указать для того что бы на страничке показывалось.
я что-то не понялчто это за файл http://localhost:8090/test.swf
где его взять test.swf ?
ффсервер его организует
и своей веселой рожей сам себя и веселю.. к чему это я, ах да:
откуда картинка браться будет, что является источником видео?
web-camera
Это всё конечно славно, а у когонибудь получилось вместе с видео с веб-камеры ещё и звук с микрофона транслировать? Поделитесь решением )
Трансляция звука вместе с видео например так:
ffmpeg -f alsa -i hw:1 -f video4linux2 -s 640x480 -qscale 1 -r 25 -i /dev/video0 -vcodec mjpeg
где hw:1 берется из $ arecord -l