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/AM4379:GST-LAUNCH-1.0 v4l2SINK 缺少 video1器件

Guru**** 2581345 points
Other Parts Discussed in Thread: AM4379

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/631368/linux-am4379-gst-launch-1-0-v4l2sink-missing-video1-device

器件型号:AM4379

工具/软件:Linux

我的客户设计了一个定制板、它使用 AM4379处理器从 Techwell TW9906视频解码器捕获视频。

TW9906有8条数据线路通过 CAM_7连接到 CAM_0、解码器的 PCLK、VSYNC 和 HSYNC 也连接到 AM4379上各自的引脚。 在此设计中、解码器的 I2C 信号路由到 AM4379的 I2C2_SDA 和 I2C2_SCL 引脚。

我已根据“Linux Core VPFE 用户指南”和“Linux Core DSS 用户指南”的“内核配置选项”部分中包含的信息配置内核。

内核成功引导至命令行,我可以使用以下命令将视频从/dev/video0流式传输至/dev/fb0:“GS-launch-0.10 -EV v4l2src device=/dev/video0! 'VIDEO/x-RAWE-YUV、width=640、height=480'! 超赞的色彩空间! fbdevsink”。

但是,当我使用“../gst-launch-1.0 -ev v4l2src device=/dev/video0! 'VIDEO/x-RAW、FORMAT=YUY2、width=640、height=480'! 视频转换! v4l2sink”要将视频流式传输到显示屏,我会收到以下消息:“错误:从元素/GstPipeline:lipine0/GstV4l2Sink:v4l2sink:v4l2sinck0: Cannot identify device '/dev/video1’(无法识别设备'’)。”

如何配置内核以创建/dev/video1器件文件?

Gary

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

    我已通知软件团队。 他们的反馈将在此处发布。

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

    AM437x 平台上的显示驱动程序基于 DRM 框架而不是 v4l2、因此您不会看到为在 V4L2中显示而创建的器件。 基于 DRM 的显示驱动程序支持 fbdev 仿真、因此您能够使用 fbdevsink 运行 gstreamer 插件。  要使用基于 DRM API 的接收器、您需要使用 landsink。 请注意、要运行 landwaysink、必须运行 Weston。 在 PLSDK 上、我们通过运行以下脚本来实现-

    /etc/init.d/weston 开始

    您可以参阅以下 wiki 页面、了解有关显示驱动程序的更多信息-

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

    Manisha、

    感谢你的答复。

    我的最终目标是在静态1280x800 RGB 图形上覆盖640x480 YCbCr 视频图像。 我可以使用以下管道线执行此操作(请注意,在本示例中,静态图形由 videotestsrc 表示)。

    /GST-LAUNCH-0.10 -EV 视频视频终端名称= Mix SINK_1::xpos=100 SINK_1:::ypos=100 SINK_1:::alpha=1.0 SINK_1:::zorder=3 SINK_2::xpos=0 SINK_2::::::ypos=0 SINK_2:::::zord=2! 超赞的色彩空间! fbdevsink v4l2src device=/dev/video0! 视频! VIDEO/x-RAWE-YUV、宽=640、高=480、帧速率=30/1! 超赞的色彩空间! 混合。 视频测试 src! VIDEO/x-RAWE-RGB、宽度= 1280、高度= 800! 混合。

    此示例起作用、但从摄像机前面发生的操作到显示该操作的时间有20-30毫秒的延迟。

    减少此延迟的最有利方法是什么? 这是一个简单的嵌入式应用、在我看来、实施 xwindow/wayland 似乎过于复杂。

    是否可以创建两个帧缓冲区(一个视频和一个图形)、它们可以在无需实施 Wayland 协议的情况下叠加?

    我还了解了 SDK 中包含的双摄像机演示-1.0。

    在用户空间中设置 DRM 覆盖层是否是更好的方法? 也就是说、它是否更简单、更简单?

    Gary

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

    您好、Gary、

    AM437x 上的显示子系统(DSS) IP 支持硬件加速的即时覆盖和显示。  

    请按照双摄像头演示进行操作、它可满足您的需求。  它更简单、更简单。 在双摄像头演示中、图形在软件中绘制。 如果您希望在 SGX 中绘制图形、请按照视频-图形-测试进行操作。

    延迟是摄像机捕获速率、开始处理数据之前排队的帧数、显示速率的函数、假设覆盖发生在 DSS 中。 如果您在捕获后立即发送图像、则您观察到的延迟应以显示速率显示。 否则,延迟为 caption_rate *num_fframes_queued_Before_sending 以显示+ display_rate。

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

    我没有专门设置在我的摄像头传感器驱动器中捕获一定数量的帧。 V4L2/VPFE 是否使用默认帧数? 是否有办法在图像发送到显示屏之前检查当前设置中捕获的帧数?

    Gary
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    默认号码是 VIP 驱动程序的三个号码。 VIP 驱动程序是根据这一假设设计的。