This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM5728:GStreamer 无法与视频混合器配合使用

Guru**** 2558320 points
Other Parts Discussed in Thread: AM5728

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/593312/am5728-gstreamer-not-working-with-videomixer

器件型号:AM5728

您好!

我在 x86体系结构中的流水线以下运行、运行正常。

GS-launch-1.0 videotestsrc pattern=1! VIDEO/x-RAW、FORMAT=AYUV、帧速率=10/1、宽度=100、高度=100! 视频框边界-alpha=0 top=-70 bottom=-70 right=-220! videomixer name=Mix Sink se_0:::alpha=0.7 sink_1:::alpha=0.5!视频转换! xvimagesink 视频测试 src! VIDEO/x-RAW、FORMAT=AYUV、帧速率=\(分数\) 5/1、宽度= 320、高度= 240! 混合。

对于 AM5728、我已经根据需要修改了管道、如下所示。

GS-launch-1.0 videotestsrc pattern=1! VIDEO/x-RAW、FORMAT=AYUV、帧速率=10/1、宽度=100、高度=100! 视频框边界-alpha=0 top=-70 bottom=-70 right=-220! videomixer name=Mix Sink se_0:::alpha=0.7 sink_1:::alpha=0.5! 自动视频转换! ducatih264enc! eirtspserver! fakesink 视频测试 src! VIDEO/x-RAW、FORMAT=AYUV、帧速率=\(分数\) 5/1、宽度= 320、高度= 240! 混合。

在运行流水线时、它会出现如下所示的错误

正在将管道设置为暂停...
管道是 PREROLLING ...
警告:来自元素/GstPipeline:lipine0/GstAutoVideoConvert:autovideoconvert0/GstAutoConvert:autoconvertchile/GstVideoConvert:videoconvert0:内部 GStreamer 错误:代码未实现。  请在 bugzilla.gnome.org/enter_bug.cgi 上提交错误
其他调试信息:
./../../../gst-plugins-base-1.6.3/gst-libs/gst/video/gstvideofilter.c (292):gst_video_filter_transform ():/GstPipeline0/GstAutoVideoConvert:autovideotconvert0/GstAutoConvert:autoconvertchile/GstVideoConvert:videoconvert0:
接收到无效的视频缓冲区
MmRpc_call:错误:写入失败
错误:来自元素/GstPipeline:流水 线0/GstVideoTestSrc:videotestsrc0:内部数据流错误。
其他调试信息:
./../../../gstreamer-1.6.3/libs/gst/base/gstbasesrc.c (2943):gst_base_src_loop ():/GstPipeline:foopere0/GstVideoTestSrc:videTestsrc0:
流任务暂停、原因错误(-5)
错误:管道不想进行预发布。
./git/libdce.c:965:   进程   错误:失败 eError == DCE_Eok 错误 val -5将流水线设置为 NULL ...
正在释放管道...

对于 AM5728中的其他管线、自动视频转换功能正常。

该误差的任何解决方案。

此致、

前置稳压器

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请检查这些管道。
    这对我来说是一个很好的解决方案、包括视频合成器和合成器元件:

    1.使用合成器元件:
    GST-LAUNCH-1.0合成器名称=混音器! 视频转换! landsink videotestsrc pattern=18! "VIDEO/x-RAW、FORMAT=AYUV、width=800、height=600、帧速率=(分数) 30/1"! 排队! 混频器。 videotestsrc pattern=13! "video/x-raw、format=AYUV、width=320、height=240、framerate=(分数)10/1"! 排队! 混频器。

    GST-LAUNCH-1.0合成器名称=混音器! 视频转换! landsink videotestsrc pattern=Snow! "VIDEO/x-RAW、FORMAT=AYUV、width=800、height=600、帧速率=(分数) 30/1"! 排队! 混频器。 videotestsrc pattern=13! "video/x-raw、format=AYUV、width=320、height=240、framerate=(分数)10/1"! 排队! 混频器。

    2.使用 videomixer 元素:
    GST-LAUNCH-1.0 videomixer name=混音器! 视频转换! landsink videotestsrc pattern=Snow! "VIDEO/x-RAW、FORMAT=AYUV、width=800、height=600、帧速率=(分数) 30/1"! 排队! 混频器。 videotestsrc pattern=13! "video/x-raw、format=AYUV、width=320、height=240、framerate=(分数)10/1"! 排队! 混频器。

    GST-LAUNCH-1.0 videomixer name=混音器! 视频转换! landsink videotestsrc pattern=18! "VIDEO/x-RAW、FORMAT=AYUV、width=800、height=600、帧速率=(分数) 30/1"! 排队! 混频器。 videotestsrc pattern=13! "video/x-raw、format=AYUV、width=320、height=240、framerate=(分数)10/1"! 排队! 混频器。


    希望这对您有所帮助。

    BR
    玛格丽塔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Margarita、

    Videomixer 现在正在工作。 感谢您的支持。

    我在 CPU 使用“videomixer”元素时遇到另一个问题。 它需要160%的 CPU。
    是否有减少 CPU 使用率的解决方案?

    此致、
    前置稳压器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您是否尝试使用合成器元素而不是视频化合器?
    videomixer 元素不是 TI 元素。 如果您具有视频转换元素、如果它执行 SCS、它还会增加额外的 CPU 负载。

    BR
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    是的、我已经尝试过。 它将 CPU 使用率降低至125%、这仍然很高。

    TI 的任何元素都是以视频合成器或合成器的身份工作的吗?

    我没有使用任何视频转换元素。

    此致、
    前置稳压器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!



    您能否布置您正在使用的流水线?

    BR
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    GS-launch-1.0 -e videomixer name=Mix Sink_0::xpos=0 sink_0:::ypos=912 sink_1::xpos=0 sink_1::ypos=0 sink_2:::ypos=0 sink_2:::xpos=912 sink_3::::xpos=sink 912_3::ypos=sink_3:  VPE! 'video/x-raw、format=(string) NV12、width=(int) 1824、height=(int) 1824、framerate=15/1'! 队列最小值-阈值-缓冲区=2! ducatih264enc rate-preset=1! rtspserver! fakesink v4l2src device=/dev/video1 io-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 640、height=(int) 720、framerate=15/1'! 极好的体验! TEE NAME=t! 排队! 视频屏幕左侧= 0右侧= 2736! videoflip 方法=3! 混合。 T.! 排队! 视频屏幕左侧=912右=1824! videoflip 方法=3! 混合。 T.! 排队! 视频屏幕左侧=1824右侧=912! videoflip 方法=1! 混合。 T.! 排队! 视频屏幕左侧=2736右侧=0! videoflip 方法=1! 混合。

    此致、

    前置稳压器

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    CPU 负载似乎很高是正常现象。 除 ducatih264enc 和 ducatijpegdec 外、所有元件均在 A15上运行。
    您可以尝试将队列的属性 max-size-buffers 增加到200以上并使用合成器元素。

    BR
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我已根据您的建议进行了尝试。

    修改后的管道:
    GST-LAUNCH-1.0 -e 复合器名称= Mix SINK_0::xpos=0 SINK_0:::ypos=912 SINK_1::xpos=0 SINK_1:::ypos=0 SINK_2::::xpos=012_3::::xpos=SINK_3:::::::::912 SINK SINK_9! VPE! 'video/x-raw、format=(string) NV12、width=(int) 1824、height=(int) 1824、framerate=15/1'! 队列最小值-阈值-缓冲区=2! ducatih264enc rate-preset=1! eirtspserver! fakesink v4l2src device=/dev/video1 io-mode=4! 'video/x-raw、format=(string) YUY2、width=(int) 640、height=(int) 720、framerate=15/1'! 极好的体验! TEE NAME=t! 队列最大大小缓冲区=250! 视频屏幕左侧= 0右侧= 2736! videoflip 方法=3! 混合。 T.! 队列最大大小缓冲区=250! 视频屏幕左侧=912右=1824! videoflip 方法=3! 混合。 T.! 队列最大大小缓冲区=250! 视频屏幕左侧=1824右侧=912! videoflip 方法=1! 混合。 T.! 队列最大大小缓冲区=250! 视频屏幕左侧=2736右侧=0! videoflip 方法=1! 混合。

    CPU 仍然高达135%。 是否有解决此问题的方案?

    此致、
    前置稳压器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请尝试:
    1.添加更多队列和 max-size-buffers=500?
    2.set fakesink sync=true?



    BR
    玛格丽塔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    很抱歉、我编辑了我之前的帖子、请检查它。

    此致、
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Margarita、

    为什么 AM5728不支持视频游戏?

    此致、
    前置稳压器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您使用的 gstreamer 版本是什么?
    不幸的是,我不是回答这个问题的正确人。
    正如我说过的、您可以尝试使用合成器元件。
    使用 GST-CHECOT-1.0 | grep "mixer"、您可以检查可用元素。

    BR
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我在 am5728中使用 gstreamer-1.6.3。
    Atully 我使用了合成器元件、但这并不能满足我的需求、因为 CPU 利用率仍然为130%。

    我已经看到 GST-PLUGP-BAD 支持 OpenGL、并且它们具有 glvideomixer 元素。
    但是、正如我在 Yocto 中所说的、GST 插件不良没有该元素。


    此致、
    前置稳压器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我们没有 glvideomixer 元素、因为您可以检查:
    root@am57xx-EVM:~# gst-inInspect -1.0 glvideomixer
    无此类元素或插件"glvideomixer"

    是否尝试设置 fakesink sync-true?

    我将为您提供一个示例、以说明同步为真时我的意思。 如果我使用此管道:

    GST-LAUNCH-1.0视频测试 src! 'video/x-raw、format=(string) YUY2、width=(int) 1920、height=(int) 1080、framerate=(fraction) 30/1'! fakesink 同步= false &

    CPU 负载为~ 98.7:

    1095根 20 0 34984 14420 4688 S 98.7 0.8 0:22.38 GST-LAUNT+

    但是、如果我使用此流水线:

    GST-LAUNCH-1.0视频测试 src! 'video/x-raw、format=(string) YUY2、width=(int) 1920、height=(int) 1080、framerate=(fraction) 30/1'! fakesink 同步= true &

    CPU 负载< 45
    1089根 20 0 34984 14512 4780 S 44.2 0.8 0:07.06 GST-LAUNT+



    BR
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我在假灌电流之后使用了 SYNC=true、但对 CPU 使用没有任何影响。

    此致、
    前置稳压器