Я очень новичок в gstreamer, но после многих исследований мне удалось создать собственный рабочий конвейер, транслирующий веб-камеру по сети от Raspberry PI Zero на ПК через транспорт UDP.Я доволен своим прогрессом!:)
Но я изо всех сил пытаюсь создать транспорт TCP ...
Этот конвейер отлично работает по UDP: ( примечание: упрощено с использованием тестового источника видео и кодировки JPEG ):
Server UDP (192.168.2.1):
gst-launch-1.0 videotestsrc is-live=true ! jpegenc ! rtpjpegpay ! udpsink host=192.168.2.13 port=7001
Client UDP (192.168.2.13):
gst-launch-1.0 udpsrc port=7001 ! application/x-rtp,encoding-name=JPEG ! rtpjpegdepay ! jpegdec ! autovideosink
... но когда я использую приемник / источник TCP с точно такими же элементами я получаю только ошибки.
Модифицированныйконвейер с использованием tcpserversink и tcpclientsrc :
Server TCP (192.168.2.1):
gst-launch-1.0 videotestsrc is-live=true ! jpegenc ! rtpjpegpay ! tcpserversink port=7001
Client TCP (192.168.2.13):
gst-launch-1.0 tcpclientsrc host=192.168.2.1 port=7001 ! application/x-rtp,encoding-name=JPEG ! rtpjpegdepay ! jpegdec ! autovideosink
Попытка 1: порт tcpserversink = 7001
ERROR: Failed to connect to host '192.168.2.1:7001': No connection could be made because the target machine actively refused it.
Попытка 2: хост tcpserversink = порт локального хоста = 7001
ERROR: from element /GstPipeline:pipeline0/GstTCPClientSrc:tcpclientsrc0: Could not open resource for reading.
Попытка 3: хост tcpserversink = 127.0.0.1 порт = 7001
ERROR: from element /GstPipeline:pipeline0/GstTCPClientSrc:tcpclientsrc0: Could not open resource for reading.
Попытка 4: хост tcpserversink = 192.168.2.1 порт = 7001
ERROR: from element /GstPipeline:pipeline0/GstTCPClientSrc:tcpclientsrc0: Internal data stream error.
Попытка 5: хост tcpserversink = 0.0.0.0 порт = 7001
ERROR: from element /GstPipeline:pipeline0/GstTCPClientSrc:tcpclientsrc0: Internal data stream error.
Я подумал, что смогу заменить элементы src & sink без разрыва трубопровода, так что я просто что-то упустил.
Я был бы благодарен за любой светты не мог бы пролить это.