我正在使用gstreamer在我的基于IP的显示器上传输我的笔记本电脑屏幕。
以下是两端的管道:
笔记本:
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
使用gst-inspect-1.0查看dx9screencapsrc的大写字母,它有宽度和高度的上限。
如何实现捕获整个屏幕但将其转换为1024x768
的要求