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.

[参考译文] Linux/TMDXEVM8148:GStreamer 视频测试 src 和管道不工作

Guru**** 2538930 points
Other Parts Discussed in Thread: TVP7002, TVP5147

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/634874/linux-tmdxevm8148-gstreamer-videotestsrc-and-pipelines-not-working

器件型号:TMDXEVM8148

工具/软件:Linux

您好!

我尝试在 TMDXEVM8148板上运行 Gstreamers 示例、但无法获取预期输出。

1) 1)我尝试运行 GStreamer 附带的 videotestsrc、但失败了。 如软件开发人员指南文档 "运行 GStreamer 管道"部分中所述、

我停止了矩阵应用程序、然后我通过 echo 0 >/sys/devices/platform/vpss/graphics0/enabled 禁用了图形平面0、并且平面1和2已经禁用(echo 并验证)。

然后运行命令 GS-launch-0.10 videotestsrc! 自动视频转换! 自动视频链接,但测试模式视频未显示在 LCD 上。 此过程在"将管道设置为暂停..."后暂停 。

作为另一个尝试、我通过回显1启用了图形平面(矩阵应用程序处于停止状态)、并尝试了错误错误:流水线不想暂停的相同命令。 附加了图像以供参考。

有人能帮助我解决这个问题吗? 我是否遗漏了任何步骤?

2)要构建我自己的管道,软件开发指南将指向 http://processors.wiki.ti.com/index.php/DM81xx_Gstreamer_Pipelines

在此网页中、要在目标中导出的 env 变量很少。 但这些文件不会出现在我的目标构建中、也不会出现在我的 SDK 中。 如何获取这些正在导出的文件?

3) 3) http://processors.wiki.ti.com/index.php/Example_GStreamer_Pipelines 中提供了更多示例 

上面链接中提到的这些示例使用 TI GStreamer DMAI 插件、例如 DM8148的 EZSDK 中不提供的 TIDmaiVideoSink、TIViddec2等。 我的假设是否正确?

可从 gstreamer.ti.com 下载。 此网站请求用户注册、但我的帐户激活没有收到任何确认电子邮件。 是否有人可以共享此插件或其他下载源? 此外,请帮助我了解如何将该插件插入 EZSDK DM8148。

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

    在 DM814x 上运行的 EZSDK 的 GStreamer 示例可在此处找到:
    processors.wiki.ti.com/.../DM81xx_Gstreamer_Pipelines

    您正在运行的流水线似乎不正确。 您应该在 videotestsrc 元素和 autoconvideoconvert 元素之间设置 cap 过滤器。
    下面是有关 videotestsrc 的示例:
    gst-launch -e videotestsrc! VIDEO/x-RAWE-YUV、FORMAT=\(fourcc\) NV12、width=1920、height=1080、帧速率=\(frame\) 15/1! OMX_h264enc FORCE-IDR-PERIOD=4 I-PERIOD=4 bitRATE =10000000配置文件=1! 很棒! 排队! h264parse output-format=0! mp4 mux! filesink 位置= test.mp4

    您可以尝试在 HDMI 上进行解码->显示:
    gst-launch 文件 rc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264! 'video/x-h264'! h264parse access-unit=true! OMX_h264dec! OMX_标量器! OMX_CTRL DISPLAY_MODE=OMX_DC_MODE_1080p_60! 很棒! OMX_videosink 同步=假

    或解码->在 LCD 上显示:

    gst-launch --verbose 文件 rc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264! 'video/x-h264'! h264parse access-unit=true! OMX_h264dec! OMX_标量器! 'VIDEO/x-RAWE-YUV、width=(int) 800、height=(int) 480'! OMX_CTRL DISPLAY_MODE=OMX_DC_MODE_1080p_60显示设备=LCD! 很棒! OMX_videosink SYNC=false 显示设备=LCD

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

    感谢您的即时响应。 这些命令适用于 EVM。
    我想将/usr/share/ti/data/videos/dm816x_1080p_demo.264文件从 EVM 流式传输到 Ubuntu 计算机。 我尝试了以下命令、但未成功。

    gst-launch --verbose 文件 rc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264! 很棒! OMX_标量器! 'VIDEO/x-RAWE-YUV
    ,width=(int)800, height=(int)480'! rtph264支付! udpsink 主机=192.168.1.243端口=5000

    我已经浏览过 processors.wiki.ti.com/.../DM81xx_Gstreamer_Pipelines 页面、但此页面仅包含客户端端的流水线示例、而不是服务器端的流水线示例
    您能帮我解决我的问题吗? 也请告诉我客户渠道。

    此外、从矩阵应用程序中的多媒体采集和编码示例中、捕获的文件存储在/usr/share/ti/ti-omx 中为 sample.h264。 要运行该程序、我只连接组件视频输入是否正常? 或者我是否需要处理任何其他设置。 请告诉我。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    下面是 udpsink 的示例。 您还可以使用 tcpserversink。

    >gst-launch -v 文件 rc location=xxx.264! 'VIDEO/x-h264、宽=800、高=480、帧速率=30/1'! 排队! h264parse! 很棒! rtph264支付! udpsink 192.168.0.1端口=5000

    [引用 user="Arunkumar Ravindranath">此外,从矩阵应用程序中的 Mutifedia 捕获和编码示例中,捕获的文件也以 same.h264的形式存储在/usr/share/ti/ti-omx 中。 要运行该程序、我只连接组件视频输入是否正常? 或者我是否需要处理任何其他设置。 请告诉我。[/引述]

    您需要一个带有组件电缆的 YPbPr 源。
    请记住、此演示使用的是 OMX。
    如需更多信息、我建议您查看 OMX 用户指南。
    但是、如果您计划使用 gstreamer 和 v4l2src 捕获组件、则需要执行其他步骤。

    和 http://processors.wiki.ti.com/index.php/DM814x_EZ_5.04.00_Software_Developers_Guide#How_to_change_from_OMX_to_V4L2_firmware_for_capture.2Fdisplay

    BR
    玛格丽塔

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

    谢谢,我们会尝试这些选项。 我还想使用 processors.wiki.ti.com/.../Example_GStreamer_Pipelines 中提供的示例 吗? 由于我在网页上没有看到 DM8148、这些器件是否可以在 DM8148 EVM 板上工作?

    我还想下载 TI GStreamer DMAI 插件。 可从 gstreamer.ti.com 下载。 此网站请求用户注册、但我的帐户激活没有收到任何确认电子邮件。 是否有人可以共享此文件或其他下载源? 此外,请帮助我了解如何将该插件插入 EZSDK DM8148。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    这些示例将不起作用。
    以下是这些平台的示例:
    DM355
    DM357
    DM644x
    DM365
    DM6467
    DM6467T
    OMAP35x

    在 EZSDK 中、我们已经有 gstreamer。
    我们还有基于 OMX 的元素 liks OMX_h264dec、OMX_noisefilter、OMX_videosink、OMX_videomixer。
    processors.wiki.ti.com/.../DM81xx_Gstreamer_Pipelines
    在该链接中、您可以找到一些管道。
    但您可以根据用例链接自己的流水线。

    BR
    玛格丽塔

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

    非常感谢、我是这些 DaVinci 和多媒体平台的新手。
    我正在使用此 TMDXEVM8148 EVM 板、我的目标是从组件或 VGA 或 DVI 获取视频输入->将其编码为 H264 ->将其下调至640x480p、并必须通过 RTSP 将其流式传输到客户端(可能是采用 VLC 或 GStreamer 的 PC)。 我计划根据 processors.wiki.ti.com/.../Example_GStreamer_Pipelines 使用 gstreamer 和 v4l2src

    gst-launch -v v4l2src always-copy=false! TIVidenc1 codecName=h264enc engineName=编码连续 InputFram=true! rtph264pay pt=96! udpsink 主机= 端口=5000

    但这种情况需要 GstTI 插件、正如您所说的、DM8148平台不支持该插件。我在这里有点惊讶。
    您能否与我分享一些有关如何进一步推进设计的设计指导? 如果可以使用 gstreamer 进行此操作、请共享一些示例命令、以便从 component/VGA/DVI 获取视频输入
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    正如我在 EZSDK 中说过的、我们有 gstreamer。

    关于编码器、您可以使用 OMX_h264enc、这也是硬件编解码器、但它在 DM81x 平台上运行。
    管道看起来几乎与您发布的管道相同、但我建议您添加队列元素和 h264parse。
    gst-check OMX_h264enc 命令您可以检查编码器元件的属性。

    在 EZSDK 中、支持 tvp7002捕获。
    如果与组件输入不同、您应检查并遵循以下用户指南:
    processors.wiki.ti.com/.../DM81xx_AM38xx_Adding_External_Decoders_to_V4L2_Capture_Driver
    e2e.ti.com/.../152272
    您可以在 e2e 中搜索一些主题、例如如何使用 tvp5147或其他功能进行捕获。

    关于 v4l2src、以下是在为组件捕获时必须执行的几个步骤:
    1.检查 v4l2src 捕获驱动程序并将其添加到内核中,然后重新构建内核。 复制新的内核映像和模块;
    2.加载 v4l2固件,否则您将看到无法打开/dev/video0的错误。
    (请参阅 ezsdk/docs 文件夹下的视频捕获指南和 ezsdk 软件指南)


    BR
    玛格丽塔

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

    您好、Margarita、

    下面是一个示例、我尝试将演示视频流式传输到 Ubuntu PC。

    EVM 端(服务器):

    gst-launch -v 文件 rc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264! 'VIDEO/x-h264、宽=800、高=480、帧速率=30/1'! 排队! h264parse! 很棒! rtph264支付! 很棒! tcpserversink host=192.168.1.186 port=5000

    Ubuntu PC (客户端):

    gst-launch-0.10 -v tcpclientsrc host=192.168.1.186 port=5000! 很棒! rtph264depay! ffdec h264! 超赞的色彩空间! autovideosink sync-false

    流式传输从服务器端开始,当我在客户端端运行命令时,视频窗口打开,仅显示第一个帧。 视频无法播放。 您能帮助解决问题吗?

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

    第一个流水线看起来不正确。 大写过滤器错误。
    以下是示例:

    EVM -> PC
    gs-launch 文件 rc location=/home/root/sample5.ts typefind=true! mpegtsdemux! 队列最大大小缓冲区=1200最大大小时间=0最大大小字节=0 ! 太粗了! 很棒! tcpserversink -v

    gst-launche-0.10 tcpclientsrc host=10.0.0.2 typefind=true! 太粗了! 排队! ffdec mpeg2video! 视频! 自动视频链接

    gst-launch -v 文件 rc location=/usr/share/ti/data/videos/sample5.ts typefind=true! mpegtsdemux name=多路信号分离器 demux.audio_00! 队列最大大小缓冲区=1200最大大小时间=0最大大小字节=0 ! 疯狂! alsasink 多路信号分离器.video_00! 太粗了! OMX_mpeg2dec! OMX_标量器! tcpserversink



    PC->EVM (包括音频)
    gst-launch-0.10 -v 文件 rc location=/home/users/mgashova/Desktop/streams/sample5.ts! mpegtsdemux! 排队! 太粗了! tcpserversink host=192.168.1.2

    gst-launch tcpclientsrc host=192.168.1.1 port=4953 typefind=true! mpegtsdemux name=多路信号分离器 demux.audio_00! 排队! 很棒! alsasink device="plughw:0、1" Demux.video_00! 太粗了! 排队! OMX_mpeg2dec! OMX_标量器! 排队! OMX_CTRL DISPLAY_MODE=OMX_DC_MODE_1080p_60! 很棒! OMX_视频链接


    您可以尝试:

    EVM 端(服务器):

    gst-launch -v 文件 rc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264! 排队! h264parse! 很棒! 排队! tcpserversink host=192.168.1.186 port=5000

    Ubuntu PC (客户端):

    gst-launch-0.10 -v tcpclientsrc host=192.168.1.186 port=5000 typefind=true! h264parse! ffdec h264! 视频! 自动视频链接

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

    您好、Margarita、

    我按照您的建议尝试了以下示例,但在客户端结束时,该进程将在等待,如下所示,并且没有打开视频窗口。

    gst-launch-0.10 -v tcpclientsrc host=192.168.1.186 port=5000 typefind=true! h264parse! ffdec h264! 视频! 自动视频链接
    正在将管道设置为暂停...
    管道是 PREROLLING ...
    /GstPipeline0/GstH264Parse:h264parse0.GstPad:src:cap = video/x-h264、ex解 析=(布尔) true、stream-format=(string) AVC、alignmention=(string) au
    /GstPipeline0/ffdec h264:ffdec h2640.GstPad:sink:cap = video/x-h264、boole=(解析) true、stream-format=(string) AVC、alignment=(string) au

    服务器端似乎正在进行流式传输。 一旦服务器达到 EOF、客户端就会退出、如下所示。 但不会播放任何视频窗口

    gst-launch-0.10 -v tcpclientsrc host=192.168.1.186 port=5000 typefind=true! h264parse! ffdec h264! 视频! 自动视频链接
    正在将管道设置为暂停...
    管道是 PREROLLING ...
    /GstPipeline0/GstH264Parse:h264parse0.GstPad:src:cap = video/x-h264、ex解 析=(布尔) true、stream-format=(string) AVC、alignmention=(string) au
    /GstPipeline0/ffdec h264:ffdec h2640.GstPad:sink:cap = video/x-h264、boole=(解析) true、stream-format=(string) AVC、alignment=(string) au
    管道是 PREROLLED...
    正在将管道设置为正在播放...
    新时钟:GstSystemClock
    从元件"流水线0"获得 EOS。
    100033ns 后结束执行。
    正在将管道设置为暂停...
    正在将管道设置为就绪...
    /GstPipeline0/ffdec:ffdec:h2640.GstPad:sink:cap = NULL
    /GstPipeline:流水线0/GstH264Parse:h264parse0.GstPad:src:cap = NULL
    正在将管道设置为 NULL ...
    正在释放管道...

    请给出建议

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

    您能否将从 PC 的电路板和电路板 Ping 到 PC?
    是的、它看起来在板上工作。
    您可以尝试使用不同的视频文件吗?
    您也可以尝试使用您旁边的 VLC。

    在我这边、这样的工作方式是:

    PC->STREAM ->EVM 解码

    gst-launch-0.10 -v 文件 rc location=/home/users/mgashova/Desktop/streams/sample5.ts! mpegtsdemux! 排队! 太粗了! tcpsink 主机=192.168.1.2

    gst-launch tcpclientsrc host=192.168.1.1 port=4953 typefind=true! mpegtsdemux name=多路信号分离器 demux.audio_00! 排队! 很棒! alsasink device="plughw:0、1" Demux.video_00! 太粗了! 排队! OMX_mpeg2dec! OMX_标量器! 排队! OMX_CTRL DISPLAY_MODE=OMX_DC_MODE_1080p_60! 很棒! OMX_视频链接

    EVM ->流-> PC

    gs-launch 文件 rc location=/home/root/sample5.ts typefind=true! mpegtsdemux! 队列最大大小缓冲区=1200最大大小时间=0最大大小字节=0 ! 太粗了! 很棒! tcpserversink -v

    gst-launche-0.10 tcpclientsrc host=10.0.0.2 typefind=true! 太粗了! 排队! ffdec mpeg2video! 视频! 自动视频链接

    以下是 VLC 的示例命令:
    VLC --Demux rawvideo --rawvid-fps 30000/1001 --rawvid-width 720 --rawvid-height 480 --rawvid-chroma=YUY2 TCP://129.1681.2:4953
    但参数应该改变。

    希望这对您有所帮助。
    请告诉我结果。

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

    我假设您能够解决您的问题、因此我将关闭此主题。
    如果没有、只需在下面发布回复即可。

    BR
    玛格丽塔