Настройки разрешения кадра в конвейере gstreamer
Я транслирую экран моего ноутбука на мой IP-дисплей с помощью gstreamer.
Вот трубопровод на обоих концах:
Ноутбук:
C:\gstreamer\1.0\x86_64\bin\gst-launch-1.0.exe -v dx9screencapsrc ! queue ! videoconvert ! x264enc ! "video/x-h264,profile=baseline" ! h264parse config-interval=-1 ! rtph264pay pt=96 config-interval=-1 ! udpsink host=<ipaddr> port=5004 sync=true
IP-дисплей:
gst-launch -v udpsrc port=5004 ! application/x-rtp, payload=96 ! rtph264depay ! vpudec low-latency=true ! imxv4l2sink sync=false
Проблема в том, что разрешение экрана составляет 1024x768, но исходный плагин генерирует 1920x1080, что является разрешением моего ноутбука.
Мне нужно преобразовать это в разрешение IP Display, я изменил конвейер на ноутбуке следующим образом:
C:\gstreamer\1.0\x86_64\bin\gst-launch-1.0.exe -v dx9screencapsrc ! video/x-raw, width=1024,height=768,framerate=30/1 !queue ! videoconvert ! x264enc ! "video/x-h264,profile=baseline" ! h264parse config-interval=-1 ! rtph264pay pt=96 config-interval=-1 ! udpsink host=<IPAddress> port=5004 sync=true
Это терпит неудачу со следующей ошибкой:
WARNING: erroneous pipeline: could not link dx9screencapsrc0 to queue0, dx9screencapsrc0 can't handle caps video/x-raw, width=(int)1024, height=(int)768, framerate=(fraction)30/1
Глядя на заглавные буквы dx9screencapsrc, используя gst-inspect-1.0, он имеет заглушку для ширины и высоты.
Как я могу достичь моего требования захвата всего экрана, но преобразовать его в 1024x768