1

Заранее извиняюсь за нарушение любого этикета / правил, касающихся публикации в SuperUser. Это мой первый пост.

Во-первых, я любитель потокового видео - решение, которое я "поковырял" вместе, заключается в поиске различных веб-сайтов.

Во-вторых, я не привязан ни к одной из выбранных мной архитектур (за исключением того, что Fedora является источником потоковой передачи). VLC / windows все могут выйти из окна, если у людей есть лучшие решения. Платные решения также приветствуются, но с открытым исходным кодом предпочтительнее.

У меня есть 6 станций тестирования, где люди проходят тесты, и я хотел бы контролировать их с помощью двух веб-камер Logitech C920. Тесты выполняются на Fedora, и было бы неплохо использовать те же компьютеры для потоковой передачи веб-камер. Все системы работают в 1-гигабитной сети.

Чтобы настроить gstreamer, я исследовал примеры настройки OZ9AEC на его сайте:

http://www.oz9aec.net/index.php/gstreamer/487-using-the-logitech-c920-webcam-with-gstreamer-12

Я пошел с подходом v4l2src.

Запуск потоков

Итак, для потоковой передачи двух камер я запускаю следующие команды.

gst-launch-1.0 v4l2src device =/dev/video1! video/x-h264, ширина = 1280, высота = 720, скорость = 30/1! h264parse! rtph264pay config-interval = 3! клиенты multiudpsink = 192.168.2.57:2511,127.0.0.1:2511

gst-launch-1.0 v4l2src device =/dev/video2! video/x-h264, ширина = 1280, высота = 720, скорость = 30/1! h264parse! rtph264pay config-interval = 3! клиенты multiudpsink = 192.168.2.57:2512,127.0.0.1:2512

Согласно моему ограниченному пониманию gstreamer, это должно передавать два UDP-клиента - мой компьютер с Windows и мой локальный хост

Запуск местного ресивера

Чтобы убедиться, что вещание действительно происходит, я запустил два локальных клиента gstreamer локально на одной машине.

gst-launch-1.0 udpsrc port = 2511 caps = 'application/x-rtp, media =(string)video, cl ock-rate =(int)90000, encoding-name =(string)H264'! rtph264depay! avdec_h264! utovideosink fps-update-interval = 1000 sync = false

gst-launch-1.0 udpsrc port = 2512 caps = 'application/x-rtp, media =(string)video, cl ock-rate =(int)90000, encoding-name =(string)H264'! rtph264depay! avdec_h264! utovideosink fps-update-interval = 1000 sync = false

Я запустил эти команды, и появились два видеоэкрана, транслирующие видео.

Запуск моей станции мониторинга

Следующим шагом будет использование VLC для мониторинга моих 12 веб-камер.

Я установил 12 файлов SDP, каждый из которых представляет каждый из моих потоков

https://stackoverflow.com/questions/13154983/gstreamer-rtp-stream-to-vlc

Я выбираю VLC, потому что у него есть хорошая кнопка для записи потока в любое время, поэтому мы не можем контролировать, но и записывать, когда захотим.

Вот два примера файлов sdp:

192.168.124.1_2511.sdp

v = 0 c = IN IP4 192.168.124.1 s = ESP H264+AAC STREAM m = видео 2511 RTP/AVP 96 a = rtpmap:96 H264/90000 a = fmtp:96 медиа = видео; часы-частота = 90000; Имя-кодировка = H264;

192.168.124.1_2512.sdp

v = 0 c = IN IP4 192.168.124.1 s = ESP H264+AAC STREAM m = видео 2512 RTP/AVP 96 a = rtpmap:96 H264/90000 a = fmtp:96 медиа = видео; часы-частота = 90000; Имя-кодировка = H264;

Теперь все становится подозрительным

Если я запускаю VLC и открываю файлы sdp, только первый из них будет подключен и покажет поток.

Второе окно VLC просто сдастся и время ожидания.

Если я сначала запусту 192.168.124.1_2511, то произойдет сбой 192.168.124.1_2512.

Если я сначала запусту 192.168.124.1_2512, то произойдет сбой 192.168.124.1_2511.

Однако, так что с 6 станциями я получаю только 6 видеопотоков, а не 12.

В настоящее время обходной путь заключается в том, чтобы купить вторую систему мониторинга и просто перенаправить 192.168.124.1_2511 на одну и 192.168.124.1_2512 на другую, но это плохо масштабируется, потому что у нас больше одной станции мониторинга, поэтому вместо 3 компьютера на 3 станции мониторинга, нам нужно 6 компьютеров. Каждый компьютер оснащен высокопроизводительными видеокартами, поэтому затраты быстро растут.

Возможно, проблемы связаны с gstreamer, и я загружаю слишком много данных по сети? Любые советы по снижению нагрузки на сеть также приветствуются.

Еще раз извиняюсь, если я допустил какие-либо ошибки в своем посте или нарушил правила публикации.

Большое спасибо заранее и счастливого благодарения из США,

DrDeveloper

0