【问题标题】:How to play two different videos in two different displays simultaneously using gstreamer?如何使用 gstreamer 同时在两个不同的显示器上播放两个不同的视频?
【发布时间】:2019-09-13 15:35:37
【问题描述】:

我正在使用 1. Raspberry Pi 4 Model B,有 2 个 HDMI 端口。 2. Gstreamer-1.0

我有两个视频保存在存储卡中。我想将两个视频驱动到两个不同的 HDMI 端口并同时在两个不同的显示器上播放视频。我想知道访问 HDMI-1 和 HDMI-2 端口并同时在不同显示器上播放两个不同视频的 Gstreamer 管道。

我正在尝试将 video.mp4 驱动到 HDMI-2。

gst-launch-1.0 playbin3 videosink="mfw-v4lsink device=dev/video18" uri=file:///home/pi/Downloads/video.mp4

我什至尝试过

gst-launch-1.0 playbin3 videosink="mfw-v4lsink device=HDMI-2" uri=file:///home/pi/Downloads/video.mp4

还有

gst-launch-1.0 playbin3 videosink="mfw-v4lsink device=dev/HDMI-2" uri=file:///home/pi/Downloads/video.mp4

我无法将视频驱动到 HDMI-2 端口。 我希望视频在 HDMI-2 中播放,但对于上述 3 个给定的管道,实际输出来自 HDMI-1。

【问题讨论】:

标签: video raspberry-pi3 gstreamer gstreamer-1.0 gstreamer-0.10


【解决方案1】:

在下载中,我有 .mkv .mp4 和 .avi 文件。我正在尝试将视频驱动到不同的 HDMI 端口。我已将两台显示器连接到两个 hdmi 端口。 我使用了命令modetest。我只有一个飞机编号。那是 28

我使用了以下管道

gst-launch-1.0 -vvv -e filesrc location=/home/pi/Downloads/count.mkv ! matroskademux ! h264解析! v4l2h264dec ! kmssink plane-id=28

我收到以下错误

正在将管道设置为 PAUSED ... 管道正在预滚... /GstPipeline:pipeline0/GstKMSSink:kmssink0: 显示宽度 = 1920 /GstPipeline:pipeline0/GstKMSSink:kmssink0: 显示高度 = 1080 /GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, level=(string)3, profile=(string)high, codec_data=(buffer)0164001effe1001c6764001eacd940b43dbff00080009100000303e90000ea600f162d9601000668ebe3cb22c0, stream-format=(string)avc ,对齐=(字符串)au,宽度=(整数)720,高度=(整数)480,像素纵横比=(分数)8/9,帧率=(分数)30000/1001,隔行模式=(字符串)混合 /GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, level=(string)3, profile=(string)high, stream-format=(string)byte-stream, alignment=(string )au, width=(int)720, height=(int)480, 像素纵横比=(fraction)8/9, framerate=(fraction)30000/1001, interlace-mode=(string)mixed, 色度-格式=(字符串)4:2:0,位深度亮度=(uint)8,位深度色度=(uint)8,解析=(布尔)真 错误:来自元素 /GstPipeline:pipeline0/v4l2h264dec:v4l2h264dec0:设备“/dev/video10”不支持交错交错 附加调试信息: gstv4l2object.c(3817): gst_v4l2_object_set_format_full (): /GstPipeline:pipeline0/v4l2h264dec:v4l2h264dec0: 设备需要渐进式隔行扫描 错误:管道不想预卷。 将管道设置为 NULL ... 释放管道...

如果我使用 plane-id= 80,我会得到以下错误

将管道设置为 PAUSED ... 错误:管道不想暂停。 错误:来自元素 /GstPipeline:pipeline0/GstKMSSink:kmssink0:找不到 crtc 的平面 附加调试信息: gstkmssink.c(755): gst_kms_sink_start (): /GstPipeline:pipeline0/GstKMSSink:kmssink0 将管道设置为 NULL ...

我尝试使用 fbdevsink

$ gst-launch-1.0 v4l2src ! jpegdec! fbdevsink 设备=/dev/fb0gst-launch-1.0 -v videotestsrc ! fbdevsink device=/dev/fb0

我使用了这个命令,它只显示一个帧缓冲区

pi@raspberrypi:~ $ ls -l /dev/fb* crw-rw---- 1 个根视频 29, 0 Sep 13 11:10 /dev/fb0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 2014-05-06
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 2023-02-15
    相关资源
    最近更新 更多