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/AM5728:视频捕获问题

Guru**** 2603695 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/648337/linux-am5728-video-capture-issue

器件型号:AM5728

工具/软件:Linux

大家好、

我使用 yavta -C1 -fYUYV -Fvout_800x600_yuv.yUV -s800x600 /dev/video1命令在我们的定制板中捕获视频。但有时它会显示以下信息、无法捕获视频。

  

重新启动内核后、捕获恢复正常、并且总是在第一次捕获时发生。

该信息意味着什么?如何解决此问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    请查看此用户指南:
    processors.wiki.ti.com/.../Linux_Core_VIP_User's_Guide
    调试章节。 您可以在两种情况下检查调试日志是否正常工作。

    希望这对您有所帮助。

    BR
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Margarita Gashova、
    我发现、当捕获失败时、器件被识别为"VPE"、并在捕获正常时被识别为"VIP"。 您对此有什么看法吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、我错误地单击了"解决"按钮
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我看到了这个。 让我咨询视频专家。

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

    同时、
    您可以检查此打印:
    fprintf (stderr、"`%s 上的器件`%s'是视频%s (%s mplanes)器件。\n"、
    cap.card、cap.bus_info、
    VIDEO IS 捕获(dev)? "捕获":"输出"、
    VIDEO IS Mplane (dev)? "有":"没有");

    出于某些原因、/dev/video1有时似乎被检测为 VPE 而不是 VIP 的备注。
    VPE 注释为/dev/video0.

    BR
    玛格丽塔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我已经检查过这张照片、但我仍然没有找到将 video1检测为 VPE 的原因。
    供参考、我们的定制有两个摄像头(视频1和视频2)、有时视频2有相同的问题、这是我基于 mt9t111 (gp EVM 摄像头模块)编写的摄像头驱动程序中的错误。
    BR
    Boycchi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我已经检查过这张照片、但我仍然没有找到将 video1检测为 VPE 的原因。
    供参考、我们的定制有两个摄像头(视频1和视频2)、有时视频2有相同的问题、这是我基于 mt9t111 (gp EVM 摄像头模块)编写的摄像头驱动程序中的错误。
    BR
    Boycchi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Boycchi、

    视频节点分配基于探测顺序。 探头顺序可能会因引导而略有不同、从而导致不同节点在每次引导时获得不同的编号。 用于捕获 WB 的 v4l2器件从视频10及更高版本开始的情况很少有例外。

    您可以使用以下说明来检查特定 v4l2器件分配给哪个节点 ID。  

    v4l2-ctl --list-devices

    另一个选项是通过此/dev/v4l/by-path 查看和/或打开视频节点:

     

    LS -al /dev/v4l/by-path

    drwxr-xr-x   2 root              用户100 Aug1 20:16。

    drwxr-xr-x 3   root               用户60 Aug1 20:16。

    lrwxrwxrwx   1 root    root 用户           12年8月 1日20:16 platform-48990000.vip-video-index0 ->../../video1

    lrwxrwxrwx   1 root    root 用户           12年8月 1日20:16 platform-489d0000.vpe-video-index0 ->../../video0

    lrwxrwxrwx   1 root    root 用户           8月13 日1:20:16 platform-omapdrm.0-video-index0 ->../../video10

     

    例如、对于 yavta、您可以指定:

     

    # yavta -C100 -s800x480 -fuyvy -F/dev/null /dev/v4l/by-path/platform-48990000.vip-video-index0

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

    大家好、Manisha、
    出现问题时、我使用"ls -al /dev/v4l/by-path /"检查了视频节点、我的"vIP"设备已分配给其他节点、如 video11、其他 v4l2设备已分配给我的"vIP"节点、这很混乱。 我尝试从 /dev/v4l/by-path 指定视频节点、但它没有解决我的问题。

    您是否知道如何解决这个困惑的问题?
    BR

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Manisha、
    抱歉、"VIP"设备未分配给视频11、而是视频0、我们的主板有两个 VIP、/dev/v4l/by-path 上的哪个视频节点分配给视频1?如下所示、仅视频2分配给 platform-48990000.VIP-VIDOE-index0、视频1怎么样?

    root@am57xx-EVM:~ v4l2-ctl --list-devices
    wbcap (平台:omapwb-cap):
    /dev/video11

    omapwb-M2M (平台:omapwb-M2M):
    /dev/video10

    VIP (平台:VIP):
    /dev/video1
    /dev/video2

    VPE (平台:VPE):
    /dev/video0

    root@am57xx-EVM:~# ls -al /dev/v4l/by-path
    drwxr-xr-x 2 root 根 11月100日2002:54。
    drwxr-xr-x 3 root 根 11月60日2002:54
    lrwxrwxrwx 1根 根 11月12日2002:54 platform-48990000.vip-video-index0 ->./../video2
    lrwxrwxrwx 1根 根 11月12日20 02:54 platform-489d0000.VPE-VIDE-index0 ->../../video0
    lrwxrwxrwx 1根 根 11月13日20 02:54 platform-omapdrm.0-video-index0 ->/../video10
    root@am57xx-EVM:~# yavta -C1 -s800x480 -fuyvy -F/dev/null /dev/v4l/by-path/platform-48990000.vip-video-index0
    器件/dev/v4l/by-path/platform-48990000.vip-video-index0已打开。
    `平台:VIP'上的器件`VIP'是一个视频输出(无 mPlanes)器件。
    视频格式设置:UYVY (59565955) 800x480 (STRIDE 1600)字段无缓冲区大小768000
    视频格式:UYVY (59565955) 800x480 (STRIDE 1600)字段无缓冲区大小768000
    请求8个缓冲器。
    长度:768000偏移:0时间戳类型/源:[536.125070]成功
    单声道/EOF
    映射在地址 bb6cff000处的 Buffer 0/0。
    长度:768000偏移:770048时间戳类型/源:单声道/EOF
    缓冲区1/0映射在地址 bb6c43000。
    长度:768000偏移:1540096时间戳类型/源:单声道/EOF
    缓冲区2/0映射在地址0xb6b87000处。
    长度:768000偏移:2310144时间戳类型/源:单声道/EOF
    缓冲区3/0映射在地址0xb6acb000处。
    长度:768000偏移量:3080192时间戳类型/源:单声道/EOF
    缓冲区4/0映射在地址 bb6a0f000。
    长度:768000偏移:3850240时间戳类型/源:单声道/EOF
    缓冲区5/0映射在地址 bb6953000。
    长度:768000偏移:4620288时间戳类型/源:单声道/EOF
    缓冲区6/0映射在地址0xb6897000处。
    长度:768000偏移:5390336时间戳类型/源:单声道/EOF
    缓冲区7/0映射在地址 bb67db000处。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不知道为什么/dev/v4l/by-path.不显示 video1 如果您的目标是使用器件的静态名称来简化您的应用、则可能 还有其他方法。 您可以查看此页面-

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我还在 GP EVM 板中尝试了 ls -al /dev/v4l/by-path、它没有显示 video11、是本应由/dev/v4l/by-path.显示的 video11
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    omapdrm 中的节点是特殊情况、其中的第二个节点(video11)不会显示在/dev/v4l/by-path 中
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我来自 VIP 的节点是否与 omapdrm 相同?它们都是 vip2 (vin3a 和 vin4a)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Boychhi、

    修复/dev/v4l/by-path 问题不能解决问题、因为最终会出现以下问题:

    root@am57xx-EVM:~# ls -al /dev/v4l/by-path

    drwxr-xr-x 2 root 100 Novr 2002:54。

    drwxr-xr-x 3根根,60年11月20日02:54。

    lrwxrwxrwx 1 root root root 用户12 11月20日02:54 platform-48990000.vip-video-index0 ->../../video1

    lrwxrwxrwx 1 root root root 用户11月12日2002:54 platform-48990000.vip-video-index1 ->../../video2

    lrwxrwxrwx 1 root root 用户12 11月20日02:54 platform-489d0000.VPE-VIDEA-index0 ->../../video0

    lrwxrwxrwx 1 root root 用户11月20日02:54 platform-omapdrm.0-video-index0 ->../../video10

     重新启动时、到 video0和 video1的索引0和索引1链接顺序可能会发生变化。 因此、您仍然无法积极识别特定摄像机。

    我们增强了设备 CAPS (VIDIOC_QUERYCAP)以 查找所需信息。 BUS_INFO 属性得到了增强、可提供 更有意义的信息。

    因此、目前如果您调用:

    # v4l2-dbg --info -d /dev/video1

    驱动程序信息:

            司机姓名 :VIP

            卡类型  :VIP

            总线信息   :平台:VIP

            驱动程序版本:4.9.68

            功能 :0x85200001

                    视频捕捉

                    读取/写入

                    流式传输

                    扩展 PIX 格式

                    器件功能

    通过附加的修补程序实现 CAPS 修改,总线 信息 可用于 查找特定的摄像机。

    e2e.ti.com/.../0001_2D00_media_2D00_ti_2D00_vpe_2D00_vip_2D00_Set_2D00_bus_5F00_info_2D00_ins_2D00_CAPS_2D00_to_2D00_show_2D00_actua.patch

    # v4l2-dbg --info -d /dev/video1

    驱动程序信息:

            司机姓名 :VIP

            卡类型  :VIP

            总线信息   : platform:vip2:vin3a

            驱动程序版本:4.9.68

            功能 :0x85200001

                    视频捕捉

                    读取/写入

                    流式传输

                    扩展 PIX 格式

                    器件功能

    缺点是您必须扫描所有视频节点以收集相关的视频节点、但至少您可以获得识别特定摄像机所需的详细信息。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Manisha、
    感谢您提供此补丁、您能告诉我如何修复/dev/v4l/by-path 问题、即使它有一些问题。
    BR
    Boycchi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    它无法修复。 它遇到的问题与 IndexX 分配取决于未预先确定的引导顺序相同。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我知道这一点、但我仍然想知道显示 IndexX 分配的方法
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们目前没有用于它的补丁。