gpt4 book ai didi

Gstreamer:如何在一个窗口中获取同一视频流的三个副本?

转载 作者:行者123 更新时间:2023-12-03 12:39:24 35 4
gpt4 key购买 nike

我正在尝试重现 "Fractals without a computer"但用一台电脑代替三台投影仪。我认为使用 gstreamer 应该非常简单:只需使用 tee 从相机复制流,然后使用 videomixer 将三张相同的图片放在一张上。

在这里,我使用“videotestsrc pattern=1”作为我希望复制的流,并将“videotestsrc pattern="black"”用作背景整个屏幕。

#!/bin/bash
gst-launch -v \
videotestsrc pattern=1 ! video/x-raw-yuv,width=200,height=200 \
! tee name=t \
videomixer name=mix \
sink_0::xpos=0 sink_0::ypos=0 \
sink_1::xpos=100 sink_1::ypos=0 \
sink_2::xpos=200 sink_2::ypos=200 \
sink_3::xpos=0 sink_3::ypos=200 \
! ffmpegcolorspace ! xvimagesink \
videotestsrc pattern="black" ! video/x-raw-yuv,width=400,height=400 \
! mix.sink_0 \
t. ! queue ! mix.sink_1 \
t. ! queue ! mix.sink_2 \
t. ! queue ! mix.sink_3 \

问题是我只得到两个副本:一个对应于 sink_1,另一个对应于 sink_2。如果我交换最后两行,那么我只会得到 sink_1 和 sink_3。

那么问题是如何显示所有三个副本?

最佳答案

像这样

gst-launch -v \
videotestsrc pattern=1 ! video/x-raw-yuv,width=200,height=200 \
! tee name=t \
videomixer name=mix \
sink_0::xpos=0 sink_0::ypos=0 sink_0::zorder=0\
sink_1::xpos=100 sink_1::ypos=0 sink_1::zorder=1\
sink_2::xpos=200 sink_2::ypos=200 sink_2::zorder=2\
sink_3::xpos=0 sink_3::ypos=200 sink_3::zorder=3\
! ffmpegcolorspace ! xvimagesink \
videotestsrc pattern="black" ! video/x-raw-yuv,width=400,height=400 \
! mix.sink_0 \
t. ! queue ! mix.sink_1 \
t. ! queue ! mix.sink_2 \
t. ! queue ! mix.sink_3

关于Gstreamer:如何在一个窗口中获取同一视频流的三个副本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4304898/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com