在本系列的前一篇文章中,我们向您介绍了高通Linux®软件;利用该软件,您可以仅进行一次开发,即可部署到高通公司诸多的物联网片上系统(SoC)中。在基于高通Linux软件的高通智能多媒体软件开发工具包中,我们发布了22种示例应用程序。我们将在博客中介绍其中四种应用程序,以了解在本公司的物联网芯片组上进行开发时可以获得的开箱即用体验。
在本文中,我们将探讨前两种模块构建应用程序。
1. 多摄像机拉流
命令行应用程序 gst-multi-camera-example演示了同时对两台摄像机拉流。应用可以将视频流并排布局,并在显示设备上展示出来,也可以对视频流进行编码并存储到文件中。
该应用程序的流水线如下:
该应用程序支持两种配置:
1. 布局和显示——连接至摄像头0和摄像头1的qtimmfsrc 插件捕获来自两台摄像机的数据。使用qtivcompose对视频原始数据进行组合,然后由waylandsink在屏幕上并排显示。
2. 视频编码——连接至摄像头0和摄像头1的qtimmfsrc 插件捕获来自两台摄像机的数据并将其传送到v4l2h264enc插件。该插件对摄像机流进行编码并压缩为H.264格式,然后分别使用h264parse和mp4mux插件进行解析和多路复用。最后,将流传送到filesink插件,并由该插件将其保存为文件。
以下为第一种配置输出的示例:右侧图像为单色,因为开发工具包上的第二台摄像机为单色相机。
您会在什么情况下使用该应用程序?
gst-multi-camera-example是一种可以捕捉来自两台摄像机数据的模块,其选项包括视频流组合和显示、视频流编码并存储到文件中。您可以将该示例应用程序用作您自己摄像机捕获/编码的应用程序的基础,例如行车记录仪或立体摄像机。
2. 视频墙 – 多通道视频解码和显示
命令行应用程序gst-concurrent-videoplay-composition可以同时进行多路AVC格式视频的解码和播放。该应用程序对来自文件或网络(例如:网络摄像头)的多个视频流进行合成,以作为视频墙显示。
该应用程序可以将多个(如4个或8个)视频文件作为输入,对所有视频进行解码,然后对其缩放并组成视频墙。该应用程序需要至少一个采用AVC格式编码的MP4视频文件作为输入。
4通道的应用程序流水线如下:
每个通道均利用插件进行以下处理:
- 使用filesrc读取某一文件的码流数据。
- 使用qtdemux对文件进行多路解复用。
- 使用h264parse解析H.264码流。
- 使用v4l2h264dec对流进行解码。
来自所有通道的解码后的数据被送入qtivcomposer中组合,并使用waylandsink予以显示。
以下为在4个视频流上使用应用程序gst-concurrent-videoplay-composition 的实例;
您会在什么情况下使用该应用程序?
您可以利用gst-concurrent-videoplay-composition解码多个编码后的视频流,然后将其组合成一个视频墙;例如,在零售市场和数字标牌中。作为用于视频监控的边缘盒,您可以捕获来自多个网络摄像头的输入并将其显示在单个屏幕上。在视频会议应用程序中,您可以处理和显示来自于通话中多个人员的提要,并且每位参与人均可以流式传输视频。
后续步骤
你可以在GitHub获取这些示例应用程序或整个高通智能多媒体软件开发工具包,然后您可以开始将其整合到自己的应用程序中。
在本系列的下一篇文章中,我们将探讨基于上述预构建模块的两种应用程序:
- 看透人工智能:实时流目标检测
- 并行人工智能融合:实时相机进行4种AI推理
在所发布内容中表达的观点仅为原作者的个人观点,并不代表高通公司或其子公司(以下简称为“高通公司”)的观点。所提供的内容仅供参考之用,而并不意味着高通公司或任何其他方的赞同或表述。本网站同样可以提供非高通公司网站和资源的链接或参考。高通公司对于可能通过本网站引用、访问、或链接的任何非高通公司网站或第三方资源并没有做出任何类型的任何声明、保证、或其他承诺。
骁龙与高通品牌产品均属于高通科技公司和/或其子公司产品。
![](https://csdnimg.cn/release/cmsfe/public/img/code-Icon.9ffdd99c.jpg)