Gstreamer 管道中的图像缩放问题

Image scaling issues in Gstreamer-pipeline

您好,

我在使用 Gstreamer 管道和我的 RPi v2.1 相机模块正确捕捉图像时遇到了问题。我的管道是这样定义的:

def gstreamer_pipeline(capture_width=720, capture_height=405, display_width=1280, display_height=720, framerate=21, flip_method=0):   
    return ('nvarguscamerasrc ! ' 
    'video/x-raw(memory:NVMM), '
    'width=(int)%d, height=(int)%d, '
    'format=(string)NV12, framerate=(fraction)%d/1 ! '
    'nvvidconv flip-method=%d ! '
    'video/x-raw, width=(int)%d, height=(int)%d, format=(string)BGRx ! '
    'videoconvert ! '
    'video/x-raw, format=(string)BGR ! appsink'  % (capture_width,capture_height,framerate,flip_method,display_width,display_height))

当我像本例一样设置比显示尺寸小的捕获尺寸时,它会输出错误。不过,此设置对我来说是必需的,因为我想捕捉低分辨率图像,但仍希望在漂亮的大 window 中看到它们。我正在避免按比例缩小每一帧的方法,我相信这有一个更有效的解决方案。 如果有人知道该怎么做,请分享一下?

提前感谢您的回答!

appsink本身不显示任何东西。那么你的显示方式是什么?一般来说,如果您不想在 GStreamer 管道中进行缩放,则显示数据的任何内容都将负责缩放。通常这是在 Gtk/Qt.

等 GUI 框架的 GPU 上下文中完成的