Получение EOS при использовании gstreamer для отправки видео по последовательному каналу в RPi Zero (USB-гаджет)
Я использую свой рабочий стол Ubuntu и gstreamer для отправки видео с веб-камеры USB на мой RPi Zero. Когда я устанавливаю соединение, я сначала проверяю, что последовательный порт (ttyACM0 на рабочем столе linux и ttyGS0 на RPi Zero) настроен с помощью этих:
stty 115200 raw -echo < /dev/ttyACM0
stty 115200 raw -echo < /dev/ttyGS0
Я использую следующую команду, чтобы получить видео с моей веб-камеры USB на рабочем столе Linux и отправить его на RPi:
gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg,width=640,height=480,framerate=30/1 ! jpegparse ! jpegdec ! filesink location=/dev/ttyACM0 blocksize=1024 max-bitrate=115200 sync=false
Я проверяю данные, поступающие через порт, выполняя следующее на RPi:
cat /dev/ttyGS0
Для чтения данных на Rpi я использую следующую команду:
gst-launch-1.0 -v filesrc location=/dev/ttyGS0 blocksize=1024 ! fbdevsink
Я использую fbdevsink, потому что я работаю без головы, но у меня есть Rpi, подключенный к монитору. Я знаю, что fbdevsink работает, потому что я запускаю тестовый шаблон gstreamer через него без проблем.
Однако, когда я использую его для чтения видео через последовательный порт, я получаю следующую ошибку:
root @ raspberrypi: / home / pi # gst-launch-1.0 -v filesrc location = / dev / ttyGS0 blocksize = 1024! fbdevsink Установка конвейера на PAUSED ... Трубопровод PREROLLING ... Трубопровод PREROLLED ... Настройка конвейера на PLAYING ... Новые часы: GstSystemClock Получил EOS из элемента "pipe0". Выполнение завершилось после 0:00:02.373297098 Установка конвейера на PAUSED ... Установка конвейера на READY ... Установка конвейера на NULL ... Освобождение конвейера...
У кого-нибудь есть совет для потоковой передачи видео через последовательный порт и отображения?