[room] video streaming many-to-many

Mykola S. Grechukh gns на altlinux.org
Ср Мар 10 20:03:34 UTC 2010


Здравствуйте,

Я потратил целый день на ковыряние в этих ваших
flux/feng/vlc/ffmpeg/ffsever, и кажется зашёл в тупик. Может
кто-нибудь расскажет, как можно сделать или хотя бы как вообще
взаимодействуют технологии.

Идея в том, чтобы поставить видео-концентратор, на который много
разных людей будут стримить свои камеры. И можно было подключиться к
любому из потоков.  Это должно быть не peer2peer, т.е. подключаться
надо не к клиентам/камерам на их айпишки, а как-то более
централизованно.

Как я себе это примерно представляю и получилось с ffserver на
centos5. На сервере описываются входные потоки vasya.ffm, petya.ffm,
vanya.ffm и соответствующие им flv стримы. Сервер слушает и отдаёт
http, НЕ лезет сам к клиентам.

ffmpeg как источник отправляет по http, примерно так:

ffmpeg -i /dev/video0 http://videoserver/vasya.ffm (или, скажем,
ffmpeg -i /mnt/cdrom/movies/Walle.2008.D.DVDRip.avi
http://videoserver/vasya.ffm).

VLC как клиент открывает url http://videoserver/vasya.flv и смотрит.

Однако, мне не удалось c нашего ffmpeg засунуть поток. VLC отлично
читает с камеры, но умеет отправлять на сервер только RTP в udp/tcp.

vlc конечно ещё умеет отдавать http, но не пушить - подключение к vlc
по http должно быть инициировано в данном случае с сервера. Я мог бы,
конечно, запустить на сервере много cvlc на разных портах, по
экземпляру для каждого клиента, и каким-то образом заставить время от
времени лазить на своих клиентов и пытаться забрать поток.

Но это как-то криво. ffserver'ный вариант с идентификатором "канала" в
url нравится больше.

Ещё есть lscube с flux который умеет слушать udp, получать от
vlc-с-камерой rdp поток и передавать через posix messaging queue в
feng, к которому далее можно обратиться по rtsp://videoserver/vasya.sd
- тоже неплохо, за исключением того что у каждого клиента должен быть
свой порт на котором слушает его личный инстанс flux. Один хрен вся
эта байда не завелась.

Доктор, я буду жить?

-- 
Mykola Grechukh
RISC Group IT Solutions


Подробная информация о списке рассылки smoke-room