Используя gstreamer, я хочу передавать изображения с нескольких веб-камер Logitech C920 на медиа-сервер Janus в формате RTP / h.264.Веб-камеры производят видеопотоки в кодировке h.264, поэтому я могу отправлять потоки в приемник UDP без перекодирования данных, а только для их загрузки.
Я использую плагин gst-interpipe для переключения между различнымивеб-камеры, так что видео поток, полученный Янусом, остается прежним, но с изображениями, поступающими с любой веб-камеры, которую я выберу.
Это работает, но у меня возникают некоторые проблемы с разбитыми кадрами, где цвета серого цвета и детали размыты, в основном первые 5–10 секунд после переключения между исходными потоками веб-камеры.После этого изображения исправляются.
Первые кадры
Через 5 - 10 секунд или более
Сначала я подумалЭто была проблема, специфичная для gst-interpipe, но я могу воспроизвести ее, просто настроив два конвейера - один отправляет видеопоток в приемник UDP, а другой читает из источника UDP:
gst-launch-1.0 -v -e v4l2src device=/dev/video0 ! queue ! video/x-
h264,width=1280,height=720,framerate=30/1 ! rtph264pay
config-interval=1 ! udpsink host=127.0.0.1 port=8004
gst-launch-1.0 -v udpsrc port=8004 caps = "application/x-rtp,
media=video, clock-rate=90000, encoding-name=H264, payload=96" !
rtph264depay ! decodebin ! videoconvert ! xvimagesink
NB: I 'Я не испытываю этой проблемы, если я отправляю видеопоток непосредственно на xvimagesink, т.е. когда не используется потоковая передача UDP.
Я пропустил некоторые важные параметры в своих конвейерах?Это проблема буферизации?Я действительно понятия не имею, как это исправить.Любая помощь с благодарностью.