Snow ball

Yesterday, I have a bran new costume in mini world.
The day before yesterday, I when I was in meemaw’s house making French toast, I was playing the game when something stop me, it was then I know that we can’t play mini world in April 4th because we have to blah blah blah COVD19 dead people. Well, I have it yesterday. It’s a girl name Snow ball
Let’s talk about Clash Royal, I’ve got good news, I had un lock super pica and the I don’t know what it’s called in English, so I say it in Chinese: 超级骑士, It’s good.

### 使用 GStreamer 实现视频九宫格布局 为了实现视频的九宫格布局,可以通过组合多个 `videomixer` 元素来完成这一目标。每个输入源都将被分配到不同的位置,并通过混合器合成最终的画面。 #### 创建基本管道结构 首先定义一个基础框架,在这个基础上逐步添加各个子流并设置其显示区域: ```bash gst-launch-1.0 videomixer name=mix ! autovideosink \ videotestsrc pattern=ball ! video/x-raw,width=320,height=240 ! mix.sink_0 \ videotestsrc pattern=snow ! video/x-raw,width=320,height=240 ! mix.sink_1 \ ... ``` 上述命令创建了一个名为 `mix` 的 `videomixer` 组件,并连接了两个测试视频源作为例子[^2]。 #### 定义具体的位置参数 为了让不同视频片段按照指定的方式排列成九宫格形式,需要精确控制每一路信号进入 mixer 时所占用的空间坐标以及大小比例。这通常涉及到调整 sink pad 上的相关属性如 xpos, ypos 和 zorder: ```bash gst-launch-1.0 videomixer name=mix background=black sync=true async=false \ videotestsrc pattern=smpte75 ! videoscale ! videoconvert ! queue leaky=downstream max-size-buffers=1 ! capsfilter caps="video/x-raw(memory:DMABuf),width=320,height=240" ! mix.sink_0::xpos=0 ::ypos=0 \ videotestsrc pattern=colorbars ! videoscale ! videoconvert ! queue leaky=downstream max-size-buffers=1 ! capsfilter caps="video/x-raw(memory:DMABuf),width=320,height=240" ! mix.sink_1::xpos=320 ::ypos=0 \ videotestsrc pattern=snow ! videoscale ! videoconvert ! queue leaky=downstream max-size-buffers=1 ! capsfilter caps="video/x-raw(memory:DMABuf),width=320,height=240" ! mix.sink_2::xpos=640 ::ypos=0 \ videotestsrc pattern=ball ! videoscale ! videoconvert ! queue leaky=downstream max-size-buffers=1 ! capsfilter caps="video/x-raw(memory:DMABuf),width=320,height=240" ! mix.sink_3::xpos=0 ::ypos=240 \ videotestsrc pattern=white-noise ! videoscale ! videoconvert ! queue leaky=downstream max-size-buffers=1 ! capsfilter caps="video/x-raw(memory:DMABuf),width=320,height=240" ! mix.sink_4::xpos=320 ::ypos=240 \ videotestsrc pattern=zoneplate ! videoscale ! videoconvert ! queue leaky=downstream max-size-buffers=1 ! capsfilter caps="video/x-raw(memory:DMABuf),width=320,height=240" ! mix.sink_5::xpos=640 ::ypos=240 \ videotestsrc pattern=checkerboard ! videoscale ! videoconvert ! queue leaky=downstream max-size-buffers=1 ! capsfilter caps="video/x-raw(memory:DMABuf),width=320,height=240" ! mix.sink_6::xpos=0 ::ypos=480 \ videotestsrc pattern=crosshairs ! videoscale ! videoconvert ! queue leaky=downstream max-size-buffers=1 ! capsfilter caps="video/x-raw(memory:DMABuf),width=320,height=240" ! mix.sink_7::xpos=320 ::ypos=480 \ videotestsrc pattern=colorsquares ! videoscale ! videoconvert ! queue leaky=downstream max-size-buffers=1 ! capsfilter caps="video/x-raw(memory:DMABuf),width=320,height=240" ! mix.sink_8::xpos=640 ::ypos=480 \ mix.src ! videoconvert ! fpsdisplaysink text-overlay=false sync=false ``` 这段脚本展示了如何配置9个独立的视频轨道,并将其放置在一个更大的画布内形成整齐排列的效果。注意这里使用了 `videoscale`, `videoconvert` 来确保所有输入都具有相同的分辨率和色彩空间以便于正确渲染;同时也加入了队列管理以防止缓冲区溢出等问题的发生[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值