You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让gst-launch-1.0双流合成窗口全屏并解决视频裁剪问题

解决GStreamer合成流全屏显示裁剪问题

你的问题核心是合成后的视频尺寸与屏幕分辨率不匹配,直接修改单流尺寸只会让局部内容超出屏幕导致裁剪,需要从合成输出尺寸适配和显示端全屏控制两方面调整:

方法1:拉伸填充全屏(无黑边,允许比例变形)

通过关闭显示端的宽高比强制约束,让合成后的视频直接拉伸适配屏幕:

/usr/bin/gst-launch-1.0 -e \
videomixer name=mix background=0 sink_1::xpos=0 sink_1::ypos=0 sink_2::xpos=500 sink_2::ypos=0 \
! autovideosink fullscreen=true force-aspect-ratio=false \
uridecodebin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm ! videoscale ! video/x-raw,width=500,height=400 ! mix.sink_1 \
uridecodebin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm ! videoscale ! video/x-raw,width=500,height=400 ! mix.sink_2

方法2:保持比例无裁剪(会出现黑边)

保留合成视频的原始比例,通过缩放适配屏幕,避免内容裁剪:

/usr/bin/gst-launch-1.0 -e \
videomixer name=mix background=0 sink_1::xpos=0 sink_1::ypos=0 sink_2::xpos=500 sink_2::ypos=0 \
! videoscale ! video/x-raw,width=1920,height=1080,force-aspect-ratio=true \
! autovideosink fullscreen=true \
uridecodebin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm ! videoscale ! video/x-raw,width=500,height=400 ! mix.sink_1 \
uridecodebin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm ! videoscale ! video/x-raw,width=500,height=400 ! mix.sink_2

注:将1920,height=1080替换为你的实际屏幕分辨率

方法3:适配屏幕比例的完美拼接

调整单流尺寸,让合成后的视频比例与屏幕一致,实现无变形、无黑边的全屏显示(以16:9屏幕为例):

/usr/bin/gst-launch-1.0 -e \
videomixer name=mix background=0 sink_1::xpos=0 sink_1::ypos=0 sink_2::xpos=960 sink_2::ypos=0 \
! autovideosink fullscreen=true \
uridecodebin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm ! videoscale ! video/x-raw,width=960,height=540 ! mix.sink_1 \
uridecodebin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm ! videoscale ! video/x-raw,width=960,height=540 ! mix.sink_2

注:960x540是1920x1080屏幕的单半尺寸,其他比例屏幕需按对应比例计算单流尺寸

关键参数说明

  • fullscreen=true:强制autovideosink窗口全屏显示
  • force-aspect-ratio:控制是否保持视频宽高比,false允许拉伸,true强制保留比例
  • videoscale:用于动态调整视频流尺寸,适配合成或显示需求

内容的提问来源于stack exchange,提问作者Evan Krause

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 01:17:50