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.

[参考译文] J784S4XEVM:timosaic don't 与 v4l2h265enc 配合使用

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1489538/j784s4xevm-timosaic-don-t-work-with-v4l2h265enc

器件型号:J784S4XEVM

工具/软件:

您好、

我们尝试使用 timosaic 元素,但使用 v4l2h265enc 的简单管道不起作用:

GST_DEBUG=3 gst-launch-1.0                                                                                                      \
videotestsrc num-buffers=12 pattern=ball ! video/x-raw,format=NV12, width=640, height=480 ! queue ! mosaic.sink_0   \
videotestsrc num-buffers=12 pattern=ball ! video/x-raw,format=NV12, width=640, height=480 ! queue ! mosaic.sink_1   \
videotestsrc num-buffers=12 pattern=ball ! video/x-raw,format=NV12, width=640, height=480 ! queue ! mosaic.sink_2   \
videotestsrc num-buffers=12 pattern=ball ! video/x-raw,format=NV12, width=640, height=480 ! queue ! mosaic.sink_3   \
timosaic name=mosaic                                                                                                \
sink_0::startx=0 sink_0::starty=0                                                                                   \
sink_1::startx=640 sink_1::starty=480                                                                               \
sink_2::startx=0 sink_2::starty=480                                                                                 \
sink_3::startx=640 sink_3::starty=0 !                                                                               \
v4l2h265enc ! fakesink -v

如果从流水线中移除 v4l2h265enc、元素本身就可以正常工作、因此看起来像是两个 H/W 加速元素之间存在一些积分问题。

你能检查一下吗?

我们正在使用 SDK 10 -> oe-layersetup/configs/processor-sdk-analytics /processor-sdk-analytics-10.00.00-config.txt

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

    尊敬的 Bartosz:

    您能使用下面的流水线吗

    gst_debug=3 gst-launch-1.0 \
    videotestsrc num-buffers=12 pattern=ball! video/x-raw、format=NV12、width=640、height=480! 排队! 马赛克.SINK_0 \
    videotestsrc num-buffers=12 pattern=ball! video/x-raw、format=NV12、width=640、height=480! 排队! 马赛克.SINK_1 \
    videotestsrc num-buffers=12 pattern=ball! video/x-raw、format=NV12、width=640、height=480! 排队! 马赛克.SINK_2 \
    videotestsrc num-buffers=12 pattern=ball! video/x-raw、format=NV12、width=640、height=480! 排队! 马赛克.SINK_3 \
    tiovxmosaic name=mosaic \
    SINK_0::startx=0 SINK_0::starty=0 \
    Sink_1::startx=640 Sink_1::starty=480 \
    Sink_2::startx=0 Sink_2::starty=480 \
    Sink_3::startx=640 Sink_3::starty=0! \
    v4l2h265enc output-io-mode=5! fakesink -v

    tiovxmosaic 使用 HWA 进行处理

    此致
    Rahul T r

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

    我们无法使用 tiovxmosaic、因为它在我们的用例中不起作用。 我们需要将一个映像放在另一个映像的上面。 一方

    tiovxmosaic 最终结果不正确、看起来好像混合了两个图像。 我们需要第二张图像来覆盖第一张图像。 马赛克给出了正确的结果。 请参阅 随附的屏幕截图:

    gst-launch-1.0                                                                                                     \
    videotestsrc num-buffers=2 pattern=SMPTE! video/x-raw、format=NV12、width=640、height=480! 排队! 马赛克.SINK_0  \
    videotestsrc num-buffers=2 pattern=ball! video/x-raw、format=NV12、width=320、height=240! 排队! 马赛克.SINK_1  \
    Titosaic name=mosaic                                                                                               \
    SINK_0::startx=0 SINK_0::starty=0                                                                                  \
    Sink_1::startx=0 Sink_1::starty=0!                                                                               \
    filesink location=/tmp/mosaic_640x480.yuv




    gst-launch-1.0                                                                                                     \
    videotestsrc num-buffers=2 pattern=SMPTE! video/x-raw、format=NV12、width=640、height=480! 排队! 马赛克.SINK_0  \
    videotestsrc num-buffers=2 pattern=ball! video/x-raw、format=NV12、width=320、height=240! 排队! 马赛克.SINK_1  \
    tiovxmosaic name=mosaic                                                                                            \
    SINK_0::startx="<0>" SINK_0::starty="<0>"                                                                          \
    Sink_1::startx="<0>" Sink_1::starty="<0>"!                                                                         \
    filesink location=/tmp/ovxmosaic_640x480.yuv

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

    尊敬的 Bartosz:

    请使用以下流水线

    gst_debug=3 gst-launch-1.0 \
    videotestsrc pattern=ball! video/x-raw、format=NV12、width=640、height=480! 排队! 马赛克.SINK_0 \
    videotestsrc pattern=ball! video/x-raw、format=NV12、width=640、height=480! 排队! 马赛克.SINK_1 \
    videotestsrc pattern=ball! video/x-raw、format=NV12、width=640、height=480! 排队! 马赛克.SINK_2 \
    videotestsrc pattern=ball! video/x-raw、format=NV12、width=640、height=480! 排队! 马赛克.SINK_3 \
    Titosaic name=mosaic \
    SINK_0::startx=0 SINK_0::starty=0 \
    Sink_1::startx=640 Sink_1::starty=480 \
    Sink_2::startx=0 Sink_2::starty=480 \
    Sink_3::startx=640 Sink_3::starty=0! \
    排队! tiovxmemalloc! v4l2h265enc output-io-mode=dmabuf-import! fakesink -v

    此致
    Rahul T r

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

    感谢 Rahul、添加 tiovxmemalloc 修复了我们的流水线。

    正如您提到的、tiovxmosaic 使用 HWA 进行处理并提供更好的性能、是否可以将其配置为实现与 timosaic 相同的结果 (例如、将一个图像放在另一个图像之上而不混合它们)?

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

    尊敬的 Bartosz:

    默认情况下、MSC 同时使用 MSC 的两个实例
    而并行的工作,即你所看到的行为的原因

    我们只能使用 MSC 的一个实例进行更改、请添加以下属性
    最终目的 tiovxmosaic target=0。  这可以解决您的问题

    此致
    Rahul T r

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

    感谢使用 目标= 0或目标= 1的 tiovxmosaic  解决了问题。
    我注意到了这一点 tiovxmosaic 仅使用 VPAC1、在 J784S4XEVM 上有两个实例。 是硬件限制 tiovxmosaic 仅在 VPAC1上工作、还是缺少 gstremear 模块的功能?

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

    尊敬的 Bartosz:

    这似乎是 tiovxmosaic 插件中的限制
    需要增加这种支持

    此致
    Rahul T r

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

    尊敬的 Rahul:

    目前、我们不需要 tiovxmosaic 即可使用第二个 VPAC、但这未来可能会发生变化。 是否有任何支持 VPAC2的时间表?

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

    尊敬的 Bartosz:

    我没有这方面的时间表
    这是代码中的一个简单更改

    您可以修改 edgeai-gst-plugins 代码以使用 VPAC2
    https://github.com/TexasInstruments/edgeai-gst-plugins/blob/fea12213b449fc1ea117ad5f0016c08f417ab46d/ext/tiovx/gsttiovxmosaic.c#L430

    并使用以下步骤在目标上重新编译

    位于主 TexasInstruments/edgeai-gst-plugins/README.md 位置的 edgeai-gst-plugins/README.md ·

    此致
    Rahul T r