# 多摄像头/多客户端用例

Source: [https://docs.qualcomm.com/doc/80-70022-50SC/topic/multi-camera-multi-client-use-cases.html](https://docs.qualcomm.com/doc/80-70022-50SC/topic/multi-camera-multi-client-use-cases.html)

多摄像头/多客户端用例展示了以画中画、并排等模式显示多路摄像头视频流的场景。

在运行用例之前，请确保完成 [GStreamer 命令行用例](https://docs.qualcomm.com/doc/80-70022-50SC/topic/gstreamer-application-use-cases.html)中提到的先决条件。

### Dragonwing IQ-8275 和 Dragonwing IQ-9075 的 GMSL 摄像头限制

在现有的软件配置下，单个 GMSL 端口仅支持在其四个插槽中的任何一个上连接一台 GMSL 摄像头。

- GMSL 端口 0 支持单个 Bayer 摄像头。
- 当前版本支持 OX03f10 Bayer GMSL 和 OX03f10 YUV GMSL 摄像头。

Table : Dragonwing IQ-8275 和 Dragonwing IQ-9075 - GSML 端口支持和限制

| SoC | GMSL 端口连接 |
| :--- | :--- |
| QCS6490 | 确保将 MIPI 摄像头连接到 Qualcomm Dragonwing™ RB3 Gen 2 开发套件上的 CSI 插槽。<ul class="ul" id="multi-camera-multi-client-use-cases__ul_n2q_5pd_52c"><br>                                    <li class="li">将 OV9282 MIPI 摄像头连接到 CAM 0A 插槽。</li><br><br>                                    <li class="li">将 IMX577 MPI 摄像头连接到 CAM3 插槽。</li><br><br>                                </ul> |
| Dragonwing IQ-8275 | 确保将 GMSL 摄像头传感器连接到 Ride SX 设备。<br><ul class="ul" id="multi-camera-multi-client-use-cases__ul_gmm_mqd_52c"><br>                                    <li class="li">将 OX03F10 Bayer GMSL 摄像头连接到 GMSL 端口 0。</li><br><br>                                    <li class="li">将 OX03F10 YUV GMSL 摄像头连接到端口 1 和端口 3。</li><br><br>                                </ul> |
| Dragonwing IQ-9075 | <ul class="ul" id="multi-camera-multi-client-use-cases__ul_xhn_zpd_52c"><br>                                    <li class="li">MIPI：将四个 OV9282 MIPI 摄像头连接到 CSI 插槽。</li><br><br>                                    <li class="li">GMSL：将 OX03F10 Bayer GMSL 摄像头连接到 GMSL 端口 0，将 OX03F10 YUV GMSL 摄像头连接到端口 2 和端口 3。</li><br><br>                                </ul> |

## 两路流 - 4k AVC MP4、1080p YUV 预览作为客户端 1（主摄像头），720p AVC、720p YUV 作为客户端 2（辅助摄像头）

Source: [https://docs.qualcomm.com/doc/80-70022-50SC/topic/multi-camera-multi-client-use-cases.html](https://docs.qualcomm.com/doc/80-70022-50SC/topic/multi-camera-multi-client-use-cases.html)

该用例使用来自主摄像头的两路流（4K 和 1080p）和来自辅助摄像头的两路 720p 流。对每个摄像头中的一路流进行复用和编码，同时显示另一对流。

Table : 用于编码和预览的多摄像头客户端用例

| 用例 | 摄像头（客户端） |
| :--- | :--- |
| 复用和编码 | <ul class="ul" id="two-streams-each-from-main-camera-4k-avc-mp4-1080p-yuv-preview-as-client-1-and-secondary-camera-720p-avc-720p-yuv-as-client2__ul_mxd_yxd_l2c"><br>                                <li class="li">主摄像头 – 4k AVC MP4</li><br><br>                                <li class="li">辅助摄像头 – 720p AVC</li><br><br>                            </ul> |
| 预览 | <ul class="ul" id="two-streams-each-from-main-camera-4k-avc-mp4-1080p-yuv-preview-as-client-1-and-secondary-camera-720p-avc-720p-yuv-as-client2__ul_uk2_cyd_l2c"><br>                                <li class="li">主摄像头 – 1080p YUV</li><br><br>                                <li class="li">辅助摄像头 – 720p YUV</li><br><br>                            </ul> |

在目标设备上运行用例：

    gst-launch-1.0 -e qtiqmmfsrc name=camsrc_0 video_1::type=preview ! video/x-raw,format=NV12_Q08C,width=3840,height=2160,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5  ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux1.mp4" camsrc_0. ! video/x-raw,format=NV12_Q08C,width=1920,height=1080,framerate=30/1 ! waylandsink sync=false qtiqmmfsrc name=camsrc_1 camera=1 video_1::type=preview ! video/x-raw,format=NV12_Q08C,width=1280,height=720,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux2.mp4" camsrc_1. ! video/x-raw, format=NV12_Q08C, width=1280, height=720, framerate=30/1 ! waylandsink sync=falseCopy to clipboard

要停止用例，请使用 CTRL + C。

从目标设备中拉取录制的内容，然后在 Linux 主机上播放内容。

在主机的终端中，运行以下命令：

    scp -r root@[DEVICE IP-ADDR]:/opt/mux1.mp4 user1@[HOST IP-ADDR]:/workspaceCopy to clipboard

    scp -r root@[DEVICE IP-ADDR]:/opt/mux2.mp4 user1@[HOST IP-ADDR]:/workspaceCopy to clipboard

您可以在媒体播放器上播放 MP4 文件和照片，并在屏幕上查看预览流。

下图展示了 pipeline 执行的流程：

Figure : 双摄像头客户端 pipeline - 编码和预览
            
            <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export pipeline_two_streams_4k_encode_display.svg pipeline_two_streams_4k_encode_ -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="9.90625in" height="3.7615in" viewbox="0 0 713.25 270.828" xml:space="preserve" color-interpolation-filters="sRGB" class="st10"><v:documentproperties v:langid="1033" v:viewmarkup="false"></v:documentproperties>
<style>.svg-1 .st1 { fill: #fafafa; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st2 { fill: #d2d7e1; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st3 { fill: #007884; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st4 { fill: #ffffff; font-family: Roboto; font-size: 1.00001em }
.svg-1 .st5 { stroke: #000000; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st6 { fill: #000000; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st7 { fill: none }
.svg-1 .st8 { fill: none; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st9 { fill: #000000; font-family: SimHei; font-size: 0.874992em }
.svg-1 .st10 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>pipeline_two_streams_4k_encode_</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape2-1" v:mid="2" v:groupcontext="shape" transform="translate(0.375,-0.375023)">		<title>Sheet.2</title>		<path d="M0 265.2 A5.62513 5.62513 -180 0 0 5.63 270.83 L706.88 270.83 A5.62513 5.62513 -180 0 0 712.5 265.2 L712.5 6.37					 A5.62513 5.62513 -180 0 0 706.88 0.75 L5.62 0.75 A5.62513 5.62513 -180 0 0 0 6.37 L0 265.2 Z" class="st1"></path>	</g>	<g id="shape3-3" v:mid="3" v:groupcontext="shape">		<title>Sheet.3</title>		<path d="M707.25 0.75 C710.14 0.75 712.5 3.11 712.5 6 L712.5 264.83 C712.5 267.72 710.14 270.08 707.25 270.08 L6 270.08					 C3.11 270.08 0.75 267.72 0.75 264.83 L0.75 6 C0.75 3.11 3.11 0.75 6 0.75 L707.25 0.75 ZM707.25 0 L6 0 C2.69					 0 0 2.69 0 6 L0 264.83 C0 268.14 2.69 270.83 6 270.83 L707.25 270.83 C710.56 270.83 713.25 268.14 713.25					 264.83 L713.25 6 C713.25 2.69 710.56 0 707.25 0 Z" class="st2"></path>	</g>	<g id="shape8-5" v:mid="8" v:groupcontext="shape" transform="translate(15,-188.328)">		<title>Sheet.8</title>		<desc>camsrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="252.078" width="120.01" height="37.5"></v:textrect>		<path d="M-0 267.83 A3.00007 3.00007 -180 0 0 3 270.83 L117 270.83 A3.00007 3.00007 -180 0 0 120 267.83 L120 236.33 A3.00007					 3.00007 -180 0 0 117 233.33 L3 233.33 A3.00007 3.00007 -180 0 0 0 236.33 L0 267.83 Z" class="st3"></path>		<text x="40.07" y="255.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>camsrc</text>		</g>	<g id="shape10-8" v:mid="10" v:groupcontext="shape" transform="translate(135,-207.078)">		<title>Sheet.10</title>		<path d="M0 270.83 L13.5 270.83" class="st5"></path>	</g>	<g id="shape14-11" v:mid="14" v:groupcontext="shape" transform="translate(162,-218.328)">		<title>Sheet.14</title>		<desc>v4l2h264enc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="252.078" width="120" height="37.5"></v:textrect>		<path d="M0 267.83 A3.00007 3.00007 -180 0 0 3 270.83 L117 270.83 A3.00007 3.00007 -180 0 0 120 267.83 L120 236.33 A3.00007					 3.00007 -180 0 0 117 233.33 L3 233.33 A3.00007 3.00007 -180 0 0 0 236.33 L0 267.83 Z" class="st3"></path>		<text x="25.86" y="255.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2h264enc</text>		</g>	<g id="shape17-14" v:mid="17" v:groupcontext="shape" transform="translate(282,-237.078)">		<title>Sheet.17</title>		<path d="M0 270.83 L14.44 270.83" class="st5"></path>	</g>	<g id="shape18-17" v:mid="18" v:groupcontext="shape" transform="translate(295.569,-234.086)">		<title>Sheet.18</title>		<path d="M0 270.83 L5.18 267.84 L0 264.84 L0 270.83 Z" class="st6"></path>	</g>	<g id="shape20-19" v:mid="20" v:groupcontext="shape" transform="translate(300.75,-218.328)">		<title>Sheet.20</title>		<desc>h264parse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="252.078" width="120.01" height="37.5"></v:textrect>		<path d="M0 267.83 A3.00007 3.00007 -180 0 0 3 270.83 L117 270.83 A3.00007 3.00007 -180 0 0 120 267.83 L120 236.33 A3.00007					 3.00007 -180 0 0 117 233.33 L3 233.33 A3.00007 3.00007 -180 0 0 0 236.33 L0 267.83 Z" class="st3"></path>		<text x="31.65" y="255.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>h264parse</text>		</g>	<g id="shape23-22" v:mid="23" v:groupcontext="shape" transform="translate(420.75,-237.078)">		<title>Sheet.23</title>		<path d="M0 270.83 L14.44 270.83" class="st5"></path>	</g>	<g id="shape24-25" v:mid="24" v:groupcontext="shape" transform="translate(434.319,-234.086)">		<title>Sheet.24</title>		<path d="M0 270.83 L5.18 267.84 L0 264.84 L0 270.83 Z" class="st6"></path>	</g>	<g id="shape26-27" v:mid="26" v:groupcontext="shape" transform="translate(439.5,-218.328)">		<title>Sheet.26</title>		<desc>mp4mux</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="252.078" width="120" height="37.5"></v:textrect>		<path d="M0 267.83 A3.00007 3.00007 -180 0 0 3 270.83 L117 270.83 A3.00007 3.00007 -180 0 0 120 267.83 L120 236.33 A3.00007					 3.00007 -180 0 0 117 233.33 L3 233.33 A3.00007 3.00007 -180 0 0 0 236.33 L0 267.83 Z" class="st3"></path>		<text x="36.47" y="255.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mp4mux</text>		</g>	<g id="shape29-30" v:mid="29" v:groupcontext="shape" transform="translate(559.5,-237.078)">		<title>Sheet.29</title>		<path d="M0 270.83 L14.44 270.83" class="st5"></path>	</g>	<g id="shape30-33" v:mid="30" v:groupcontext="shape" transform="translate(573.069,-234.086)">		<title>Sheet.30</title>		<path d="M0 270.83 L5.18 267.84 L0 264.84 L0 270.83 Z" class="st6"></path>	</g>	<g id="shape32-35" v:mid="32" v:groupcontext="shape" transform="translate(578.25,-218.328)">		<title>Sheet.32</title>		<desc>filesink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="252.078" width="120" height="37.5"></v:textrect>		<path d="M0 267.83 A3.00007 3.00007 -180 0 0 3 270.83 L117 270.83 A3.00007 3.00007 -180 0 0 120 267.83 L120 236.33 A3.00007					 3.00007 -180 0 0 117 233.33 L3 233.33 A3.00007 3.00007 -180 0 0 0 236.33 L0 267.83 Z" class="st3"></path>		<text x="40.92" y="255.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>filesink</text>		</g>	<g id="shape35-38" v:mid="35" v:groupcontext="shape" transform="translate(162,-158.328)">		<title>Sheet.35</title>		<desc>Waylandsink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="252.078" width="120" height="37.5"></v:textrect>		<path d="M-0 267.83 A3.00007 3.00007 -180 0 0 3 270.83 L117 270.83 A3.00007 3.00007 -180 0 0 120 267.83 L120 236.33 A3.00007					 3.00007 -180 0 0 117 233.33 L3 233.33 A3.00007 3.00007 -180 0 0 0 236.33 L0 267.83 Z" class="st3"></path>		<text x="26.26" y="255.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Waylandsink</text>		</g>	<g id="shape38-41" v:mid="38" v:groupcontext="shape" transform="translate(148.5,-174.328)">		<title>Sheet.38</title>		<path d="M9.19 208.08 L0 208.08 L0 270.83 L9.19 270.83 L9.19 208.08 Z" class="st7"></path>		<path d="M9.19 208.08 L0 208.08 L0 270.83 L9.19 270.83" class="st5"></path>	</g>	<g id="shape39-44" v:mid="39" v:groupcontext="shape" transform="translate(156.819,-234.086)">		<title>Sheet.39</title>		<path d="M0 264.84 L5.18 267.84 L0 270.83 L0 264.84 Z" class="st6"></path>	</g>	<g id="shape40-46" v:mid="40" v:groupcontext="shape" transform="translate(156.819,-171.336)">		<title>Sheet.40</title>		<path d="M0 270.83 L5.18 267.84 L0 264.84 L0 270.83 Z" class="st6"></path>	</g>	<g id="shape43-48" v:mid="43" v:groupcontext="shape" transform="translate(15,-68.328)">		<title>Sheet.43</title>		<desc>camsrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="252.078" width="120.01" height="37.5"></v:textrect>		<path d="M0 267.83 A3.00007 3.00007 -180 0 0 3 270.83 L117 270.83 A3.00007 3.00007 -180 0 0 120 267.83 L120 236.33 A3.00007					 3.00007 -180 0 0 117 233.33 L3 233.33 A3.00007 3.00007 -180 0 0 0 236.33 L0 267.83 Z" class="st3"></path>		<text x="40.07" y="255.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>camsrc</text>		</g>	<g id="shape45-51" v:mid="45" v:groupcontext="shape" transform="translate(135,-87.078)">		<title>Sheet.45</title>		<path d="M0 270.83 L13.5 270.83" class="st5"></path>	</g>	<g id="shape49-54" v:mid="49" v:groupcontext="shape" transform="translate(162,-98.328)">		<title>Sheet.49</title>		<desc>v4l2h264enc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="252.078" width="120" height="37.5"></v:textrect>		<path d="M0 267.83 A3.00007 3.00007 -180 0 0 3 270.83 L117 270.83 A3.00007 3.00007 -180 0 0 120 267.83 L120 236.33 A3.00007					 3.00007 -180 0 0 117 233.33 L3 233.33 A3.00007 3.00007 -180 0 0 0 236.33 L0 267.83 Z" class="st3"></path>		<text x="25.86" y="255.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2h264enc</text>		</g>	<g id="shape52-57" v:mid="52" v:groupcontext="shape" transform="translate(282,-117.078)">		<title>Sheet.52</title>		<path d="M0 270.83 L14.44 270.83" class="st5"></path>	</g>	<g id="shape53-60" v:mid="53" v:groupcontext="shape" transform="translate(295.569,-114.086)">		<title>Sheet.53</title>		<path d="M0 270.83 L5.18 267.84 L0 264.84 L0 270.83 Z" class="st6"></path>	</g>	<g id="shape55-62" v:mid="55" v:groupcontext="shape" transform="translate(300.75,-98.328)">		<title>Sheet.55</title>		<desc>h264parse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="252.078" width="120.01" height="37.5"></v:textrect>		<path d="M0 267.83 A3.00007 3.00007 -180 0 0 3 270.83 L117 270.83 A3.00007 3.00007 -180 0 0 120 267.83 L120 236.33 A3.00007					 3.00007 -180 0 0 117 233.33 L3 233.33 A3.00007 3.00007 -180 0 0 0 236.33 L0 267.83 Z" class="st3"></path>		<text x="31.65" y="255.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>h264parse</text>		</g>	<g id="shape58-65" v:mid="58" v:groupcontext="shape" transform="translate(420.75,-117.078)">		<title>Sheet.58</title>		<path d="M0 270.83 L14.44 270.83" class="st5"></path>	</g>	<g id="shape59-68" v:mid="59" v:groupcontext="shape" transform="translate(434.319,-114.086)">		<title>Sheet.59</title>		<path d="M0 270.83 L5.18 267.84 L0 264.84 L0 270.83 Z" class="st6"></path>	</g>	<g id="shape61-70" v:mid="61" v:groupcontext="shape" transform="translate(439.5,-98.328)">		<title>Sheet.61</title>		<desc>mp4mux</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="252.078" width="120" height="37.5"></v:textrect>		<path d="M0 267.83 A3.00007 3.00007 -180 0 0 3 270.83 L117 270.83 A3.00007 3.00007 -180 0 0 120 267.83 L120 236.33 A3.00007					 3.00007 -180 0 0 117 233.33 L3 233.33 A3.00007 3.00007 -180 0 0 0 236.33 L0 267.83 Z" class="st3"></path>		<text x="36.47" y="255.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mp4mux</text>		</g>	<g id="shape64-73" v:mid="64" v:groupcontext="shape" transform="translate(559.5,-117.078)">		<title>Sheet.64</title>		<path d="M0 270.83 L14.44 270.83" class="st5"></path>	</g>	<g id="shape65-76" v:mid="65" v:groupcontext="shape" transform="translate(573.069,-114.086)">		<title>Sheet.65</title>		<path d="M0 270.83 L5.18 267.84 L0 264.84 L0 270.83 Z" class="st6"></path>	</g>	<g id="shape67-78" v:mid="67" v:groupcontext="shape" transform="translate(578.25,-98.328)">		<title>Sheet.67</title>		<desc>filesink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="252.078" width="120" height="37.5"></v:textrect>		<path d="M0 267.83 A3.00007 3.00007 -180 0 0 3 270.83 L117 270.83 A3.00007 3.00007 -180 0 0 120 267.83 L120 236.33 A3.00007					 3.00007 -180 0 0 117 233.33 L3 233.33 A3.00007 3.00007 -180 0 0 0 236.33 L0 267.83 Z" class="st3"></path>		<text x="40.92" y="255.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>filesink</text>		</g>	<g id="shape70-81" v:mid="70" v:groupcontext="shape" transform="translate(162,-38.328)">		<title>Sheet.70</title>		<desc>Waylandsink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="252.078" width="120" height="37.5"></v:textrect>		<path d="M0 267.83 A3.00007 3.00007 -180 0 0 3 270.83 L117 270.83 A3.00007 3.00007 -180 0 0 120 267.83 L120 236.33 A3.00007					 3.00007 -180 0 0 117 233.33 L3 233.33 A3.00007 3.00007 -180 0 0 0 236.33 L0 267.83 Z" class="st3"></path>		<text x="26.26" y="255.68" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Waylandsink</text>		</g>	<g id="shape73-84" v:mid="73" v:groupcontext="shape" transform="translate(148.5,-54.3278)">		<title>Sheet.73</title>		<path d="M9.19 208.08 L0 208.08 L0 270.83 L9.19 270.83 L9.19 208.08 Z" class="st7"></path>		<path d="M9.19 208.08 L0 208.08 L0 270.83 L9.19 270.83" class="st5"></path>	</g>	<g id="shape74-87" v:mid="74" v:groupcontext="shape" transform="translate(156.819,-114.086)">		<title>Sheet.74</title>		<path d="M0 264.84 L5.18 267.84 L0 270.83 L0 264.84 Z" class="st6"></path>	</g>	<g id="shape75-89" v:mid="75" v:groupcontext="shape" transform="translate(156.819,-51.336)">		<title>Sheet.75</title>		<path d="M0 270.83 L5.18 267.84 L0 264.84 L0 270.83 Z" class="st6"></path>	</g>	<g id="group79-91" transform="translate(662.062,-11.1094)" v:mid="79" v:groupcontext="group">		<title>Sheet.79</title>		<g id="shape77-92" v:mid="77" v:groupcontext="shape" transform="translate(15.1883,0)">			<title>Sheet.77</title>			<desc>开源</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="10.5" cy="264.528" width="21" height="12.6"></v:textrect>			<rect x="0" y="258.228" width="21" height="12.6" class="st8"></rect>			<text x="0" y="268.02" class="st9" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>开源</text>			</g>		<g id="shape78-95" v:mid="78" v:groupcontext="shape" transform="translate(-9.99201E-16,-0.218625)">			<title>Sheet.78</title>			<path d="M0 269.33 A1.50003 1.50003 -180 0 0 1.5 270.83 L10.5 270.83 A1.50003 1.50003 -180 0 0 12 269.33 L12 260.33						 A1.50003 1.50003 -180 0 0 10.5 258.83 L1.5 258.83 A1.50003 1.50003 -180 0 0 0 260.33 L0 269.33 Z" class="st3"></path>		</g>	</g></g>
</svg>

## 两路 720p 流 - 每个摄像头各一路，采用并排拼接方式显示

Source: [https://docs.qualcomm.com/doc/80-70022-50SC/topic/multi-camera-multi-client-use-cases.html](https://docs.qualcomm.com/doc/80-70022-50SC/topic/multi-camera-multi-client-use-cases.html)

该 pipeline 展示了分别来自主摄像头和辅助摄像头的两路 720p 流。这两路流并排合成后进行显示。

在目标设备上运行用例：

    gst-launch-1.0 -e qtivcomposer name=mixer sink_0::position="<0, 0>" sink_0::dimensions="<640, 360>" sink_1::position="<640, 0>" sink_1::dimensions="<640, 360>" mixer. ! queue ! waylandsink enable-last-sample=false fullscreen=true qtiqmmfsrc name=camsrc_0 camera=0 ! video/x-raw, format=NV12, width=1280, height=720, framerate=30/1 ! mixer. qtiqmmfsrc name=camsrc_1 camera=1 ! video/x-raw, format=NV12, width=1280, height=720, framerate=30/1 ! mixer.Copy to clipboard

显示来自摄像头的合成流。

要停止用例，请按 CTRL + C。

下图展示了 pipeline 执行的流程：

Figure : 主摄像头和辅助摄像头的两路流 – 并排显示
            
            <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export two_streams_cameras_sidebyside_display.svg two_streams_cameras_sidebyside_ -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="6.04167in" height="2.14583in" viewbox="0 0 435 154.5" xml:space="preserve" color-interpolation-filters="sRGB" class="st12"><v:documentproperties v:langid="1033" v:viewmarkup="false"></v:documentproperties>
<style>.svg-2 .st1 { fill: #fafafa; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st2 { fill: #d2d7e1; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st3 { fill: #2a2aea; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st4 { fill: #ffffff; font-family: Roboto; font-size: 1.00001em }
.svg-2 .st5 { stroke: #000000; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st6 { fill: #000000; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st7 { fill: #007884; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st8 { fill: none }
.svg-2 .st9 { fill: none; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-2 .st10 { fill: #000000; font-family: Roboto; font-size: 0.874992em }
.svg-2 .st11 { fill: #000000; font-family: SimHei; font-size: 0.874992em }
.svg-2 .st12 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>two_streams_cameras_sidebyside_</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape3-1" v:mid="3" v:groupcontext="shape" transform="translate(0.375,-0.37508)">		<title>Sheet.3</title>		<path d="M0 148.87 A5.62513 5.62513 -180 0 0 5.63 154.5 L428.63 154.5 A5.62513 5.62513 -180 0 0 434.25 148.87 L434.25					 6.38 A5.62513 5.62513 -180 0 0 428.63 0.75 L5.63 0.75 A5.62513 5.62513 -180 0 0 -0 6.38 L0 148.87 Z" class="st1"></path>	</g>	<g id="shape4-3" v:mid="4" v:groupcontext="shape">		<title>Sheet.4</title>		<path d="M429 0.75 C431.89 0.75 434.25 3.11 434.25 6 L434.25 148.5 C434.25 151.39 431.89 153.75 429 153.75 L6 153.75					 C3.11 153.75 0.75 151.39 0.75 148.5 L0.75 6 C0.75 3.11 3.11 0.75 6 0.75 L429 0.75 ZM429 0 L6 0 C2.69 0 0					 2.69 0 6 L0 148.5 C0 151.81 2.69 154.5 6 154.5 L429 154.5 C432.31 154.5 435 151.81 435 148.5 L435 6 C435					 2.69 432.31 0 429 0 Z" class="st2"></path>	</g>	<g id="shape14-5" v:mid="14" v:groupcontext="shape" transform="translate(161.625,-70.6249)">		<title>Sheet.14</title>		<desc>qtivcomposer</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="135.75" width="120" height="37.5"></v:textrect>		<path d="M-0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L117 154.5 A3.00007 3.00007 -180 0 0 120 151.5 L120 120 A3.00007					 3.00007 -180 0 0 117 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st3"></path>		<text x="23.36" y="139.35" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivcomposer</text>		</g>	<g id="shape17-8" v:mid="17" v:groupcontext="shape" transform="translate(281.625,-89.3749)">		<title>Sheet.17</title>		<path d="M0 154.5 L14.44 154.5" class="st5"></path>	</g>	<g id="shape18-11" v:mid="18" v:groupcontext="shape" transform="translate(295.194,-86.3831)">		<title>Sheet.18</title>		<path d="M0 154.5 L5.18 151.51 L0 148.52 L0 154.5 Z" class="st6"></path>	</g>	<g id="shape20-13" v:mid="20" v:groupcontext="shape" transform="translate(300.375,-70.6249)">		<title>Sheet.20</title>		<desc>Waylandsink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="135.75" width="120" height="37.5"></v:textrect>		<path d="M-0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L117 154.5 A3.00007 3.00007 -180 0 0 120 151.5 L120 120 A3.00007					 3.00007 -180 0 0 117 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st7"></path>		<text x="26.26" y="139.35" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Waylandsink</text>		</g>	<g id="shape23-16" v:mid="23" v:groupcontext="shape" transform="translate(134.625,-57.9998)">		<title>Sheet.23</title>		<path d="M22.69 132.5 L13.5 132.5 L13.5 154.5 L0 154.5 L22.69 132.5 Z" class="st8"></path>		<path d="M22.69 132.5 L13.5 132.5 L13.5 154.5 L0 154.5" class="st5"></path>	</g>	<g id="shape24-19" v:mid="24" v:groupcontext="shape" transform="translate(156.444,-77.0081)">		<title>Sheet.24</title>		<path d="M0 148.52 L5.18 151.51 L0 154.5 L0 148.52 Z" class="st6"></path>	</g>	<g id="shape26-21" v:mid="26" v:groupcontext="shape" transform="translate(134.625,-98.7499)">		<title>Sheet.26</title>		<path d="M0 132.5 L13.5 132.5 L13.5 154.5 L22.69 154.5 L0 132.5 Z" class="st8"></path>		<path d="M0 132.5 L13.5 132.5 L13.5 154.5 L22.69 154.5" class="st5"></path>	</g>	<g id="shape27-24" v:mid="27" v:groupcontext="shape" transform="translate(156.444,-95.7581)">		<title>Sheet.27</title>		<path d="M0 154.5 L5.18 151.51 L0 148.52 L0 154.5 Z" class="st6"></path>	</g>	<g id="shape29-26" v:mid="29" v:groupcontext="shape" transform="translate(14.625,-102)">		<title>Sheet.29</title>		<desc>camsrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="135.75" width="120.01" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L117 154.5 A3.00007 3.00007 -180 0 0 120 151.5 L120 120 A3.00007					 3.00007 -180 0 0 117 117 L3 117 A3.00007 3.00007 -180 0 0 -0 120 L0 151.5 Z" class="st7"></path>		<text x="40.07" y="139.35" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>camsrc</text>		</g>	<g id="shape32-29" v:mid="32" v:groupcontext="shape" transform="translate(14.625,-42)">		<title>Sheet.32</title>		<desc>camsrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="135.75" width="120.01" height="37.5"></v:textrect>		<path d="M-0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L117 154.5 A3.00007 3.00007 -180 0 0 120 151.5 L120 120 A3.00007					 3.00007 -180 0 0 117 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st7"></path>		<text x="40.07" y="139.35" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>camsrc</text>		</g>	<g id="group34-32" transform="translate(310.25,-14.7814)" v:mid="34" v:groupcontext="group">		<title>Sheet.34</title>		<g id="shape7-33" v:mid="7" v:groupcontext="shape" transform="translate(15.1882,0)">			<title>Sheet.7</title>			<desc>Qualcomm</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="26.8155" cy="148.2" width="53.64" height="12.6"></v:textrect>			<rect x="0" y="141.9" width="53.6309" height="12.6" class="st9"></rect>			<text x="-0" y="151.35" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Qualcomm  </text>			</g>		<g id="shape8-36" v:mid="8" v:groupcontext="shape" transform="translate(1.69864E-14,-0.21863)">			<title>Sheet.8</title>			<path d="M0 153 A1.50003 1.50003 -180 0 0 1.5 154.5 L10.5 154.5 A1.50003 1.50003 -180 0 0 12 153 L12 144 A1.50003						 1.50003 -180 0 0 10.5 142.5 L1.5 142.5 A1.50003 1.50003 -180 0 0 0 144 L0 153 Z" class="st3"></path>		</g>		<g id="shape10-38" v:mid="10" v:groupcontext="shape" transform="translate(89.1246,0)">			<title>Sheet.10</title>			<desc>开源</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="10.5" cy="148.2" width="21.01" height="12.6"></v:textrect>			<rect x="0" y="141.9" width="21" height="12.6" class="st9"></rect>			<text x="0" y="151.69" class="st11" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>开源</text>			</g>		<g id="shape11-41" v:mid="11" v:groupcontext="shape" transform="translate(73.9363,-0.21863)">			<title>Sheet.11</title>			<path d="M0 153 A1.50003 1.50003 -180 0 0 1.5 154.5 L10.5 154.5 A1.50003 1.50003 -180 0 0 12 153 L12 144 A1.50003						 1.50003 -180 0 0 10.5 142.5 L1.5 142.5 A1.50003 1.50003 -180 0 0 0 144 L0 153 Z" class="st7"></path>		</g>	</g></g>
</svg>

## 两路 720p 流 - 每个摄像头各一路，采用并排拼接方式进行编码并通过 RTSP 流传输

Source: [https://docs.qualcomm.com/doc/80-70022-50SC/topic/multi-camera-multi-client-use-cases.html](https://docs.qualcomm.com/doc/80-70022-50SC/topic/multi-camera-multi-client-use-cases.html)

该 pipeline 展示了分别来自主摄像头和辅助摄像头的两路 720p 流。两路流并排合成，然后进行复制并编码。一个数据流多路复用并保存到文件中，另一个则通过 RTSP 传输流。

使用 `udpsrc` 在目标设备上的单独控制台中运行 RTSP 服务器。也可以将其作为服务在后台运行：

    gst-rtsp-server -p 8900 -a <IP address of device> -m /live "( udpsrc name=pay0 port=8554 caps=\"application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96\" )"Copy to clipboard

在目标设备的同一控制台或其他控制台中运行 pipeline：

    gst-launch-1.0 -e qtivcomposer name=mixer sink_0::position="<0, 0>" sink_0::dimensions="<640, 360>" sink_1::position="<640, 0>" sink_1::dimensions="<640, 360>" mixer. ! queue ! tee name=t_split t_split. ! queue ! video/x-raw,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/mux.mp4 t_split. ! queue ! video/x-raw,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse config-interval=-1 ! rtph264pay pt=96 ! udpsink host=127.0.0.1 port=8554 qtiqmmfsrc name=camsrc_0 camera=0 ! video/x-raw, format=NV12, width=1280, height=720, framerate=30/1 ! mixer. qtiqmmfsrc name=camsrc_1 camera=1 ! video/x-raw, format=NV12, width=1280, height=720, framerate=30/1 ! mixer.Copy to clipboard

要停止用例，请使用 CTRL + C。

从目标设备中拉取录制的内容，然后在 Linux 主机上播放内容。

在主机的终端中，运行以下命令：

    scp root@<IP address of target device>:/opt/mux.mp4 <destination directory>Copy to clipboard

您可以在媒体播放器上播放 MP4 文件。通过流传输的视频以 RTSP 流形式显示在主机上。参见[主机上的 RTSP 流](https://docs.qualcomm.com/doc/80-70022-50SC/topic/camera-and-video-encode.html#one_stream_1080p_avc_rtsp_from_live_source__section_ayq_2nh_pyb)。

下图展示了 pipeline 执行的流程：

Figure : 两路 720p 摄像头流的 pipeline - 并排显示、编码并通过 RTSP 进行传输
            
            <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export pipeline_two_camera_side_side_encoded_streamed_rtsp.svg pipeline_two_camera_side_side_e -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="12.4167in" height="2.19792in" viewbox="0 0 894 158.25" xml:space="preserve" color-interpolation-filters="sRGB" class="st12"><v:documentproperties v:langid="1033" v:viewmarkup="false"></v:documentproperties>
<style>.svg-3 .st1 { fill: #fafafa; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st2 { fill: #d2d7e1; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st3 { stroke: #000000; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st4 { fill: #000000; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st5 { fill: #007884; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st6 { fill: #ffffff; font-family: Roboto; font-size: 1.00001em }
.svg-3 .st7 { fill: #2a2aea; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st8 { fill: none }
.svg-3 .st9 { fill: none; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-3 .st10 { fill: #000000; font-family: Roboto; font-size: 0.874992em }
.svg-3 .st11 { fill: #000000; font-family: SimHei; font-size: 0.874992em }
.svg-3 .st12 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>pipeline_two_camera_side_side_e</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape3-1" v:mid="3" v:groupcontext="shape" transform="translate(0.375,-0.37508)">		<title>Sheet.3</title>		<path d="M0 152.62 A5.62513 5.62513 -180 0 0 5.63 158.25 L887.62 158.25 A5.62513 5.62513 -180 0 0 893.25 152.62 L893.25					 6.38 A5.62513 5.62513 -180 0 0 887.62 0.75 L5.62 0.75 A5.62513 5.62513 -180 0 0 -0 6.38 L0 152.62 Z" class="st1"></path>	</g>	<g id="shape4-3" v:mid="4" v:groupcontext="shape">		<title>Sheet.4</title>		<path d="M888 0.75 C890.89 0.75 893.25 3.11 893.25 6 L893.25 152.25 C893.25 155.14 890.89 157.5 888 157.5 L6 157.5 C3.11					 157.5 0.75 155.14 0.75 152.25 L0.75 6 C0.75 3.11 3.11 0.75 6 0.75 L888 0.75 ZM888 0 L6 0 C2.69 0 0 2.69					 0 6 L0 152.25 C0 155.56 2.69 158.25 6 158.25 L888 158.25 C891.31 158.25 894 155.56 894 152.25 L894 6 C894					 2.69 891.31 0 888 0 Z" class="st2"></path>	</g>	<g id="shape14-5" v:mid="14" v:groupcontext="shape" transform="translate(507.75,-120.75)">		<title>Sheet.14</title>		<path d="M0 158.25 L14.44 158.25" class="st3"></path>	</g>	<g id="shape15-8" v:mid="15" v:groupcontext="shape" transform="translate(521.319,-117.758)">		<title>Sheet.15</title>		<path d="M0 158.25 L5.18 155.26 L0 152.27 L0 158.25 Z" class="st4"></path>	</g>	<g id="shape17-10" v:mid="17" v:groupcontext="shape" transform="translate(526.5,-102)">		<title>Sheet.17</title>		<desc>h264parse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="139.5" width="105" height="37.5"></v:textrect>		<path d="M0 155.25 A3.00007 3.00007 -180 0 0 3 158.25 L102 158.25 A3.00007 3.00007 -180 0 0 105 155.25 L105 123.75 A3.00007					 3.00007 -180 0 0 102 120.75 L3 120.75 A3.00007 3.00007 -180 0 0 0 123.75 L0 155.25 Z" class="st5"></path>		<text x="24.15" y="143.1" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>h264parse</text>		</g>	<g id="shape20-13" v:mid="20" v:groupcontext="shape" transform="translate(631.5,-120.75)">		<title>Sheet.20</title>		<path d="M0 158.25 L14.44 158.25" class="st3"></path>	</g>	<g id="shape21-16" v:mid="21" v:groupcontext="shape" transform="translate(645.069,-117.758)">		<title>Sheet.21</title>		<path d="M0 158.25 L5.18 155.26 L0 152.27 L0 158.25 Z" class="st4"></path>	</g>	<g id="shape23-18" v:mid="23" v:groupcontext="shape" transform="translate(650.25,-102)">		<title>Sheet.23</title>		<desc>mp4mux</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="139.5" width="105.01" height="37.5"></v:textrect>		<path d="M0 155.25 A3.00007 3.00007 -180 0 0 3 158.25 L102 158.25 A3.00007 3.00007 -180 0 0 105 155.25 L105 123.75 A3.00007					 3.00007 -180 0 0 102 120.75 L3 120.75 A3.00007 3.00007 -180 0 0 0 123.75 L0 155.25 Z" class="st5"></path>		<text x="28.97" y="143.1" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mp4mux</text>		</g>	<g id="shape26-21" v:mid="26" v:groupcontext="shape" transform="translate(755.25,-120.75)">		<title>Sheet.26</title>		<path d="M0 158.25 L14.44 158.25" class="st3"></path>	</g>	<g id="shape27-24" v:mid="27" v:groupcontext="shape" transform="translate(768.819,-117.758)">		<title>Sheet.27</title>		<path d="M0 158.25 L5.18 155.26 L0 152.27 L0 158.25 Z" class="st4"></path>	</g>	<g id="shape29-26" v:mid="29" v:groupcontext="shape" transform="translate(774,-102)">		<title>Sheet.29</title>		<desc>filesink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="139.5" width="105.01" height="37.5"></v:textrect>		<path d="M0 155.25 A3.00007 3.00007 -180 0 0 3 158.25 L102 158.25 A3.00007 3.00007 -180 0 0 105 155.25 L105 123.75 A3.00007					 3.00007 -180 0 0 102 120.75 L3 120.75 A3.00007 3.00007 -180 0 0 0 123.75 L0 155.25 Z" class="st5"></path>		<text x="33.42" y="143.1" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>filesink</text>		</g>	<g id="shape33-29" v:mid="33" v:groupcontext="shape" transform="translate(402.75,-102)">		<title>Sheet.33</title>		<desc>v4l2h264enc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="139.5" width="105" height="37.5"></v:textrect>		<path d="M0 155.25 A3.00007 3.00007 -180 0 0 3 158.25 L102 158.25 A3.00007 3.00007 -180 0 0 105 155.25 L105 123.75 A3.00007					 3.00007 -180 0 0 102 120.75 L3 120.75 A3.00007 3.00007 -180 0 0 0 123.75 L0 155.25 Z" class="st5"></path>		<text x="18.36" y="143.1" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2h264enc</text>		</g>	<g id="shape36-32" v:mid="36" v:groupcontext="shape" transform="translate(402.75,-42)">		<title>Sheet.36</title>		<desc>v4l2h264enc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="139.5" width="105" height="37.5"></v:textrect>		<path d="M0 155.25 A3.00007 3.00007 -180 0 0 3 158.25 L102 158.25 A3.00007 3.00007 -180 0 0 105 155.25 L105 123.75 A3.00007					 3.00007 -180 0 0 102 120.75 L3 120.75 A3.00007 3.00007 -180 0 0 0 123.75 L0 155.25 Z" class="st5"></path>		<text x="18.36" y="143.1" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2h264enc</text>		</g>	<g id="shape39-35" v:mid="39" v:groupcontext="shape" transform="translate(507.75,-60.75)">		<title>Sheet.39</title>		<path d="M0 158.25 L14.44 158.25" class="st3"></path>	</g>	<g id="shape40-38" v:mid="40" v:groupcontext="shape" transform="translate(521.319,-57.7582)">		<title>Sheet.40</title>		<path d="M0 158.25 L5.18 155.26 L0 152.27 L0 158.25 Z" class="st4"></path>	</g>	<g id="shape42-40" v:mid="42" v:groupcontext="shape" transform="translate(526.5,-42)">		<title>Sheet.42</title>		<desc>h264parse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="139.5" width="105" height="37.5"></v:textrect>		<path d="M0 155.25 A3.00007 3.00007 -180 0 0 3 158.25 L102 158.25 A3.00007 3.00007 -180 0 0 105 155.25 L105 123.75 A3.00007					 3.00007 -180 0 0 102 120.75 L3 120.75 A3.00007 3.00007 -180 0 0 0 123.75 L0 155.25 Z" class="st5"></path>		<text x="24.15" y="143.1" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>h264parse</text>		</g>	<g id="shape45-43" v:mid="45" v:groupcontext="shape" transform="translate(631.5,-60.75)">		<title>Sheet.45</title>		<path d="M0 158.25 L14.44 158.25" class="st3"></path>	</g>	<g id="shape46-46" v:mid="46" v:groupcontext="shape" transform="translate(645.069,-57.7582)">		<title>Sheet.46</title>		<path d="M0 158.25 L5.18 155.26 L0 152.27 L0 158.25 Z" class="st4"></path>	</g>	<g id="shape48-48" v:mid="48" v:groupcontext="shape" transform="translate(650.25,-42)">		<title>Sheet.48</title>		<desc>rtph264pay</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="139.5" width="105.01" height="37.5"></v:textrect>		<path d="M0 155.25 A3.00007 3.00007 -180 0 0 3 158.25 L102 158.25 A3.00007 3.00007 -180 0 0 105 155.25 L105 123.75 A3.00007					 3.00007 -180 0 0 102 120.75 L3 120.75 A3.00007 3.00007 -180 0 0 0 123.75 L0 155.25 Z" class="st5"></path>		<text x="22.26" y="143.1" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>rtph264pay</text>		</g>	<g id="shape51-51" v:mid="51" v:groupcontext="shape" transform="translate(755.25,-60.75)">		<title>Sheet.51</title>		<path d="M0 158.25 L14.44 158.25" class="st3"></path>	</g>	<g id="shape52-54" v:mid="52" v:groupcontext="shape" transform="translate(768.819,-57.7582)">		<title>Sheet.52</title>		<path d="M0 158.25 L5.18 155.26 L0 152.27 L0 158.25 Z" class="st4"></path>	</g>	<g id="shape54-56" v:mid="54" v:groupcontext="shape" transform="translate(774,-42)">		<title>Sheet.54</title>		<desc>udpsink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="139.5" width="105.01" height="37.5"></v:textrect>		<path d="M0 155.25 A3.00007 3.00007 -180 0 0 3 158.25 L102 158.25 A3.00007 3.00007 -180 0 0 105 155.25 L105 123.75 A3.00007					 3.00007 -180 0 0 102 120.75 L3 120.75 A3.00007 3.00007 -180 0 0 0 123.75 L0 155.25 Z" class="st5"></path>		<text x="31.54" y="143.1" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>udpsink</text>		</g>	<g id="shape57-59" v:mid="57" v:groupcontext="shape" transform="translate(147,-72)">		<title>Sheet.57</title>		<desc>qtivcomposer</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="139.5" width="105.01" height="37.5"></v:textrect>		<path d="M0 155.25 A3.00007 3.00007 -180 0 0 3 158.25 L102 158.25 A3.00007 3.00007 -180 0 0 105 155.25 L105 123.75 A3.00007					 3.00007 -180 0 0 102 120.75 L3 120.75 A3.00007 3.00007 -180 0 0 0 123.75 L0 155.25 Z" class="st7"></path>		<text x="15.85" y="143.1" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivcomposer</text>		</g>	<g id="shape60-62" v:mid="60" v:groupcontext="shape" transform="translate(252,-90.75)">		<title>Sheet.60</title>		<path d="M0 158.25 L14.44 158.25" class="st3"></path>	</g>	<g id="shape61-65" v:mid="61" v:groupcontext="shape" transform="translate(265.569,-87.7582)">		<title>Sheet.61</title>		<path d="M0 158.25 L5.18 155.26 L0 152.27 L0 158.25 Z" class="st4"></path>	</g>	<g id="shape63-67" v:mid="63" v:groupcontext="shape" transform="translate(270.75,-72)">		<title>Sheet.63</title>		<desc>tee</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="139.5" width="105.01" height="37.5"></v:textrect>		<path d="M0 155.25 A3.00007 3.00007 -180 0 0 3 158.25 L102 158.25 A3.00007 3.00007 -180 0 0 105 155.25 L105 123.75 A3.00007					 3.00007 -180 0 0 102 120.75 L3 120.75 A3.00007 3.00007 -180 0 0 0 123.75 L0 155.25 Z" class="st5"></path>		<text x="44.18" y="143.1" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>tee</text>		</g>	<g id="shape66-70" v:mid="66" v:groupcontext="shape" transform="translate(120,-60.75)">		<title>Sheet.66</title>		<path d="M22.69 137.68 L13.5 137.68 L13.5 158.25 L0 158.25 L22.69 137.68 Z" class="st8"></path>		<path d="M22.69 137.68 L13.5 137.68 L13.5 158.25 L0 158.25" class="st3"></path>	</g>	<g id="shape67-73" v:mid="67" v:groupcontext="shape" transform="translate(141.819,-78.3276)">		<title>Sheet.67</title>		<path d="M0 152.27 L5.18 155.26 L0 158.25 L0 152.27 Z" class="st4"></path>	</g>	<g id="shape69-75" v:mid="69" v:groupcontext="shape" transform="translate(120,-100.069)">		<title>Sheet.69</title>		<path d="M0 137.57 L13.5 137.57 L13.5 158.25 L22.69 158.25 L0 137.57 Z" class="st8"></path>		<path d="M0 137.57 L13.5 137.57 L13.5 158.25 L22.69 158.25" class="st3"></path>	</g>	<g id="shape70-78" v:mid="70" v:groupcontext="shape" transform="translate(141.819,-97.0776)">		<title>Sheet.70</title>		<path d="M0 158.25 L5.18 155.26 L0 152.27 L0 158.25 Z" class="st4"></path>	</g>	<g id="shape72-80" v:mid="72" v:groupcontext="shape" transform="translate(375.75,-96.1199)">		<title>Sheet.72</title>		<path d="M22.69 133.62 L13.5 133.62 L13.5 158.25 L0 158.25 L22.69 133.62 Z" class="st8"></path>		<path d="M22.69 133.62 L13.5 133.62 L13.5 158.25 L0 158.25" class="st3"></path>	</g>	<g id="shape73-83" v:mid="73" v:groupcontext="shape" transform="translate(397.569,-117.758)">		<title>Sheet.73</title>		<path d="M0 152.27 L5.18 155.26 L0 158.25 L0 152.27 Z" class="st4"></path>	</g>	<g id="shape75-85" v:mid="75" v:groupcontext="shape" transform="translate(375.75,-60.75)">		<title>Sheet.75</title>		<path d="M0 136.06 L13.5 136.06 L13.5 158.25 L22.69 158.25 L0 136.06 Z" class="st8"></path>		<path d="M0 136.06 L13.5 136.06 L13.5 158.25 L22.69 158.25" class="st3"></path>	</g>	<g id="shape76-88" v:mid="76" v:groupcontext="shape" transform="translate(397.569,-57.7582)">		<title>Sheet.76</title>		<path d="M0 158.25 L5.18 155.26 L0 152.27 L0 158.25 Z" class="st4"></path>	</g>	<g id="shape78-90" v:mid="78" v:groupcontext="shape" transform="translate(15,-102)">		<title>Sheet.78</title>		<desc>camsrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="139.5" width="105.01" height="37.5"></v:textrect>		<path d="M0 155.25 A3.00007 3.00007 -180 0 0 3 158.25 L102 158.25 A3.00007 3.00007 -180 0 0 105 155.25 L105 123.75 A3.00007					 3.00007 -180 0 0 102 120.75 L3 120.75 A3.00007 3.00007 -180 0 0 0 123.75 L0 155.25 Z" class="st5"></path>		<text x="32.57" y="143.1" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>camsrc</text>		</g>	<g id="shape81-93" v:mid="81" v:groupcontext="shape" transform="translate(15,-42)">		<title>Sheet.81</title>		<desc>camsrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="139.5" width="105.01" height="37.5"></v:textrect>		<path d="M0 155.25 A3.00007 3.00007 -180 0 0 3 158.25 L102 158.25 A3.00007 3.00007 -180 0 0 105 155.25 L105 123.75 A3.00007					 3.00007 -180 0 0 102 120.75 L3 120.75 A3.00007 3.00007 -180 0 0 0 123.75 L0 155.25 Z" class="st5"></path>		<text x="32.57" y="143.1" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>camsrc</text>		</g>	<g id="group83-96" transform="translate(768.875,-14.7814)" v:mid="83" v:groupcontext="group">		<title>Sheet.83</title>		<g id="shape7-97" v:mid="7" v:groupcontext="shape" transform="translate(15.1882,0)">			<title>Sheet.7</title>			<desc>Qualcomm</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="27.4022" cy="151.95" width="54.81" height="12.6"></v:textrect>			<rect x="0" y="145.65" width="54.8043" height="12.6" class="st9"></rect>			<text x="0" y="155.1" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Qualcomm  </text>			</g>		<g id="shape8-100" v:mid="8" v:groupcontext="shape" transform="translate(6.29496E-14,-0.218607)">			<title>Sheet.8</title>			<path d="M0 156.75 A1.50003 1.50003 -180 0 0 1.5 158.25 L10.5 158.25 A1.50003 1.50003 -180 0 0 12 156.75 L12 147.75						 A1.50003 1.50003 -180 0 0 10.5 146.25 L1.5 146.25 A1.50003 1.50003 -180 0 0 0 147.75 L0 156.75 Z" class="st7"></path>		</g>		<g id="shape10-102" v:mid="10" v:groupcontext="shape" transform="translate(89.1246,0)">			<title>Sheet.10</title>			<desc>开源</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="10.5" cy="151.95" width="21.01" height="12.6"></v:textrect>			<rect x="0" y="145.65" width="21" height="12.6" class="st9"></rect>			<text x="-0" y="155.44" class="st11" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>开源</text>			</g>		<g id="shape11-105" v:mid="11" v:groupcontext="shape" transform="translate(73.9363,-0.218607)">			<title>Sheet.11</title>			<path d="M0 156.75 A1.50003 1.50003 -180 0 0 1.5 158.25 L10.5 158.25 A1.50003 1.50003 -180 0 0 12 156.75 L12 147.75						 A1.50003 1.50003 -180 0 0 10.5 146.25 L1.5 146.25 A1.50003 1.50003 -180 0 0 0 147.75 L0 156.75 Z" class="st5"></path>		</g>	</g></g>
</svg>

## 两路 720p 流 - 每个摄像头各一路，采用画中画合成方式，并发送到显示器

Source: [https://docs.qualcomm.com/doc/80-70022-50SC/topic/multi-camera-multi-client-use-cases.html](https://docs.qualcomm.com/doc/80-70022-50SC/topic/multi-camera-multi-client-use-cases.html)

用例使用分别来自主摄像头和辅助摄像头的两路 720p 流。两者均以画中画形式组成并显示。

在目标设备上运行用例：

    gst-launch-1.0 -e qtivcomposer name=mixer sink_0::position="<0, 0>" sink_0::dimensions="<1280, 720>" sink_1::position="<590, 310>" sink_1::dimensions="<640, 360>" mixer. ! queue ! waylandsink enable-last-sample=false fullscreen=true qtiqmmfsrc name=camsrc_0 camera=0 ! video/x-raw, format=NV12, width=1280, height=720, framerate=30/1 ! mixer. qtiqmmfsrc name=camsrc_1 camera=1 ! video/x-raw, format=NV12, width=1280, height=720, framerate=30/1 ! mixer.Copy to clipboard

显示来自摄像头的合成流（画中画）。

要停止用例，请按 CTRL + C。

下图展示了 pipeline 执行的流程：

Figure : 两路 720p 流的 pipeline - 画中画显示
            
            <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export pipeline_two_streams_picture_picture_display.svg pipeline_two_streams_picture_pi -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="6.04167in" height="2.14583in" viewbox="0 0 435 154.5" xml:space="preserve" color-interpolation-filters="sRGB" class="st12"><v:documentproperties v:langid="1033" v:viewmarkup="false"></v:documentproperties>
<style>.svg-4 .st1 { fill: #fafafa; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-4 .st2 { fill: #d2d7e1; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-4 .st3 { fill: #2a2aea; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-4 .st4 { fill: #ffffff; font-family: Roboto; font-size: 1.00001em }
.svg-4 .st5 { stroke: #000000; stroke-linecap: butt; stroke-width: 0.75 }
.svg-4 .st6 { fill: #000000; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-4 .st7 { fill: #007884; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-4 .st8 { fill: none }
.svg-4 .st9 { fill: none; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-4 .st10 { fill: #000000; font-family: Roboto; font-size: 0.874992em }
.svg-4 .st11 { fill: #000000; font-family: SimHei; font-size: 0.874992em }
.svg-4 .st12 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>pipeline_two_streams_picture_pi</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape3-1" v:mid="3" v:groupcontext="shape" transform="translate(0.375,-0.37508)">		<title>Sheet.3</title>		<path d="M0 148.87 A5.62513 5.62513 -180 0 0 5.63 154.5 L428.63 154.5 A5.62513 5.62513 -180 0 0 434.25 148.87 L434.25					 6.38 A5.62513 5.62513 -180 0 0 428.63 0.75 L5.63 0.75 A5.62513 5.62513 -180 0 0 -0 6.38 L0 148.87 Z" class="st1"></path>	</g>	<g id="shape4-3" v:mid="4" v:groupcontext="shape">		<title>Sheet.4</title>		<path d="M429 0.75 C431.89 0.75 434.25 3.11 434.25 6 L434.25 148.5 C434.25 151.39 431.89 153.75 429 153.75 L6 153.75					 C3.11 153.75 0.75 151.39 0.75 148.5 L0.75 6 C0.75 3.11 3.11 0.75 6 0.75 L429 0.75 ZM429 0 L6 0 C2.69 0 0					 2.69 0 6 L0 148.5 C0 151.81 2.69 154.5 6 154.5 L429 154.5 C432.31 154.5 435 151.81 435 148.5 L435 6 C435					 2.69 432.31 0 429 0 Z" class="st2"></path>	</g>	<g id="shape14-5" v:mid="14" v:groupcontext="shape" transform="translate(161.625,-70.6249)">		<title>Sheet.14</title>		<desc>qtivcomposer</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="135.75" width="120" height="37.5"></v:textrect>		<path d="M-0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L117 154.5 A3.00007 3.00007 -180 0 0 120 151.5 L120 120 A3.00007					 3.00007 -180 0 0 117 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st3"></path>		<text x="23.36" y="139.35" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivcomposer</text>		</g>	<g id="shape17-8" v:mid="17" v:groupcontext="shape" transform="translate(281.625,-89.3749)">		<title>Sheet.17</title>		<path d="M0 154.5 L14.44 154.5" class="st5"></path>	</g>	<g id="shape18-11" v:mid="18" v:groupcontext="shape" transform="translate(295.194,-86.3831)">		<title>Sheet.18</title>		<path d="M0 154.5 L5.18 151.51 L0 148.52 L0 154.5 Z" class="st6"></path>	</g>	<g id="shape20-13" v:mid="20" v:groupcontext="shape" transform="translate(300.375,-70.6249)">		<title>Sheet.20</title>		<desc>Waylandsink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="135.75" width="120" height="37.5"></v:textrect>		<path d="M-0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L117 154.5 A3.00007 3.00007 -180 0 0 120 151.5 L120 120 A3.00007					 3.00007 -180 0 0 117 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st7"></path>		<text x="26.26" y="139.35" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Waylandsink</text>		</g>	<g id="shape23-16" v:mid="23" v:groupcontext="shape" transform="translate(134.625,-57.9998)">		<title>Sheet.23</title>		<path d="M22.69 132.5 L13.5 132.5 L13.5 154.5 L0 154.5 L22.69 132.5 Z" class="st8"></path>		<path d="M22.69 132.5 L13.5 132.5 L13.5 154.5 L0 154.5" class="st5"></path>	</g>	<g id="shape24-19" v:mid="24" v:groupcontext="shape" transform="translate(156.444,-77.0081)">		<title>Sheet.24</title>		<path d="M0 148.52 L5.18 151.51 L0 154.5 L0 148.52 Z" class="st6"></path>	</g>	<g id="shape26-21" v:mid="26" v:groupcontext="shape" transform="translate(134.625,-98.7499)">		<title>Sheet.26</title>		<path d="M0 132.5 L13.5 132.5 L13.5 154.5 L22.69 154.5 L0 132.5 Z" class="st8"></path>		<path d="M0 132.5 L13.5 132.5 L13.5 154.5 L22.69 154.5" class="st5"></path>	</g>	<g id="shape27-24" v:mid="27" v:groupcontext="shape" transform="translate(156.444,-95.7581)">		<title>Sheet.27</title>		<path d="M0 154.5 L5.18 151.51 L0 148.52 L0 154.5 Z" class="st6"></path>	</g>	<g id="shape29-26" v:mid="29" v:groupcontext="shape" transform="translate(14.625,-102)">		<title>Sheet.29</title>		<desc>camsrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="135.75" width="120.01" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L117 154.5 A3.00007 3.00007 -180 0 0 120 151.5 L120 120 A3.00007					 3.00007 -180 0 0 117 117 L3 117 A3.00007 3.00007 -180 0 0 -0 120 L0 151.5 Z" class="st7"></path>		<text x="40.07" y="139.35" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>camsrc</text>		</g>	<g id="shape32-29" v:mid="32" v:groupcontext="shape" transform="translate(14.625,-42)">		<title>Sheet.32</title>		<desc>camsrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="60" cy="135.75" width="120.01" height="37.5"></v:textrect>		<path d="M-0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L117 154.5 A3.00007 3.00007 -180 0 0 120 151.5 L120 120 A3.00007					 3.00007 -180 0 0 117 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st7"></path>		<text x="40.07" y="139.35" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>camsrc</text>		</g>	<g id="group34-32" transform="translate(310.25,-14.7814)" v:mid="34" v:groupcontext="group">		<title>Sheet.34</title>		<g id="shape7-33" v:mid="7" v:groupcontext="shape" transform="translate(15.1882,0)">			<title>Sheet.7</title>			<desc>Qualcomm</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="47.25" cy="148.2" width="94.51" height="12.6"></v:textrect>			<rect x="0" y="141.9" width="94.5" height="12.6" class="st9"></rect>			<text x="0" y="151.35" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Qualcomm  </text>			</g>		<g id="shape8-36" v:mid="8" v:groupcontext="shape" transform="translate(1.69864E-14,-0.218607)">			<title>Sheet.8</title>			<path d="M0 153 A1.50003 1.50003 -180 0 0 1.5 154.5 L10.5 154.5 A1.50003 1.50003 -180 0 0 12 153 L12 144 A1.50003						 1.50003 -180 0 0 10.5 142.5 L1.5 142.5 A1.50003 1.50003 -180 0 0 0 144 L0 153 Z" class="st3"></path>		</g>		<g id="shape10-38" v:mid="10" v:groupcontext="shape" transform="translate(89.1246,0)">			<title>Sheet.10</title>			<desc>开源</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="10.5" cy="148.2" width="21.01" height="12.6"></v:textrect>			<rect x="0" y="141.9" width="21" height="12.6" class="st9"></rect>			<text x="0" y="151.69" class="st11" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>开源</text>			</g>		<g id="shape11-41" v:mid="11" v:groupcontext="shape" transform="translate(73.9363,-0.218607)">			<title>Sheet.11</title>			<path d="M0 153 A1.50003 1.50003 -180 0 0 1.5 154.5 L10.5 154.5 A1.50003 1.50003 -180 0 0 12 153 L12 144 A1.50003						 1.50003 -180 0 0 10.5 142.5 L1.5 142.5 A1.50003 1.50003 -180 0 0 0 144 L0 153 Z" class="st7"></path>		</g>	</g></g>
</svg>

## 两路 720p 流 - 每个摄像头各一路，采用画中画合成方式进行编码和 RTSP 流传输

Source: [https://docs.qualcomm.com/doc/80-70022-50SC/topic/multi-camera-multi-client-use-cases.html](https://docs.qualcomm.com/doc/80-70022-50SC/topic/multi-camera-multi-client-use-cases.html)

用例使用分别来自主摄像头和辅助摄像头的两路 720p 流。两者均被合成为画中画，然后进行复制和编码。一路流复用并保存到文件中，另一路则通过 RTSP 进行流传输。

运行用例：

- 使用 `udpsrc` 在目标设备上的单独控制台中运行 RTSP 服务器。可以将其作为服务在后台运行：

        gst-rtsp-server -p 8900 -a <IP address of device> -m /live "( udpsrc name=pay0 port=8554 caps=\"application/x-rtp,media=video,clock-rate=90000,encoding-name=H264,payload=96\" )"Copy to clipboard
- 在目标设备的同一控制台或其他控制台中运行 pipeline：

        gst-launch-1.0 -e qtivcomposer name=mixer sink_0::position="<0, 0>" sink_0::dimensions="<1280, 720>" sink_1::position="<590, 310>" sink_1::dimensions="<640, 360>" mixer. ! queue ! tee name=t_split t_split. ! queue ! video/x-raw,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/mux.mp4 t_split. ! queue ! video/x-raw,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse config-interval=-1 ! rtph264pay pt=96 ! udpsink host=<ip_address> port=8554 qtiqmmfsrc name=camsrc_0 camera=0 ! video/x-raw, format=NV12, width=1280, height=720, framerate=30/1 ! mixer. qtiqmmfsrc name=camsrc_1 camera=1 ! video/x-raw, format=NV12, width=1280, height=720, framerate=30/1 ! mixer.Copy to clipboard
- 要停止用例，请使用 CTRL + C。

    从目标设备中拉取录制的内容，然后在 Linux 主机上播放内容。

    在主机的终端中，运行以下命令：

        scp root@<IP address of target device>:/opt/ <destination directory>Copy to clipboard

您可以在媒体播放器上播放 MP4 文件。视频通过主机上的 RTSP 进行流传输。参见[主机上的 RTSP 流](https://docs.qualcomm.com/doc/80-70022-50SC/topic/camera-and-video-encode.html#one_stream_1080p_avc_rtsp_from_live_source__section_ayq_2nh_pyb)。

下图展示了 pipeline 执行的流程：

Figure : 两路 720p 摄像头流的 pipeline - 画中画显示、编码并通过 RTSP 进行流传输
            
            <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export pipeline_two_camera_picture_picture_encoded_streamed_rtsp.svg pipeline_two_camera_picture_pic -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="12.4062in" height="2.14583in" viewbox="0 0 893.25 154.5" xml:space="preserve" color-interpolation-filters="sRGB" class="st12"><v:documentproperties v:langid="1033" v:viewmarkup="false"></v:documentproperties>
<style>.svg-5 .st1 { fill: #fafafa; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-5 .st2 { fill: #d2d7e1; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-5 .st3 { stroke: #000000; stroke-linecap: butt; stroke-width: 0.75 }
.svg-5 .st4 { fill: #000000; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-5 .st5 { fill: #007884; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-5 .st6 { fill: #ffffff; font-family: Roboto; font-size: 1.00001em }
.svg-5 .st7 { fill: #2a2aea; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-5 .st8 { fill: none }
.svg-5 .st9 { fill: none; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-5 .st10 { fill: #000000; font-family: Roboto; font-size: 0.874992em }
.svg-5 .st11 { fill: #000000; font-family: SimHei; font-size: 0.874992em }
.svg-5 .st12 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<g v:mid="0" v:index="1" v:groupcontext="foregroundPage">	<title>pipeline_two_camera_picture_pic</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape3-1" v:mid="3" v:groupcontext="shape" transform="translate(0.375,-0.37508)">		<title>Sheet.3</title>		<path d="M0 148.88 A5.62513 5.62513 -180 0 0 5.62 154.5 L886.88 154.5 A5.62513 5.62513 -180 0 0 892.5 148.88 L892.5 6.38					 A5.62513 5.62513 -180 0 0 886.88 0.75 L5.62 0.75 A5.62513 5.62513 -180 0 0 0 6.38 L0 148.88 Z" class="st1"></path>	</g>	<g id="shape4-3" v:mid="4" v:groupcontext="shape">		<title>Sheet.4</title>		<path d="M887.25 0.75 C890.14 0.75 892.5 3.11 892.5 6 L892.5 148.5 C892.5 151.39 890.14 153.75 887.25 153.75 L6 153.75					 C3.11 153.75 0.75 151.39 0.75 148.5 L0.75 6 C0.75 3.11 3.11 0.75 6 0.75 L887.25 0.75 ZM887.25 0 L6 0 C2.69					 0 0 2.69 0 6 L0 148.5 C0 151.81 2.69 154.5 6 154.5 L887.25 154.5 C890.56 154.5 893.25 151.81 893.25 148.5					 L893.25 6 C893.25 2.69 890.56 0 887.25 0 Z" class="st2"></path>	</g>	<g id="shape14-5" v:mid="14" v:groupcontext="shape" transform="translate(507,-120.75)">		<title>Sheet.14</title>		<path d="M0 154.5 L14.44 154.5" class="st3"></path>	</g>	<g id="shape15-8" v:mid="15" v:groupcontext="shape" transform="translate(520.569,-117.758)">		<title>Sheet.15</title>		<path d="M0 154.5 L5.18 151.51 L0 148.52 L0 154.5 Z" class="st4"></path>	</g>	<g id="shape17-10" v:mid="17" v:groupcontext="shape" transform="translate(525.75,-102)">		<title>Sheet.17</title>		<desc>h264parse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="135.75" width="105" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L102 154.5 A3.00007 3.00007 -180 0 0 105 151.5 L105 120 A3.00007					 3.00007 -180 0 0 102 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st5"></path>		<text x="24.15" y="139.35" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>h264parse</text>		</g>	<g id="shape20-13" v:mid="20" v:groupcontext="shape" transform="translate(630.75,-120.75)">		<title>Sheet.20</title>		<path d="M0 154.5 L14.44 154.5" class="st3"></path>	</g>	<g id="shape21-16" v:mid="21" v:groupcontext="shape" transform="translate(644.319,-117.758)">		<title>Sheet.21</title>		<path d="M0 154.5 L5.18 151.51 L0 148.52 L0 154.5 Z" class="st4"></path>	</g>	<g id="shape23-18" v:mid="23" v:groupcontext="shape" transform="translate(649.5,-102)">		<title>Sheet.23</title>		<desc>mp4mux</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="135.75" width="105.01" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L102 154.5 A3.00007 3.00007 -180 0 0 105 151.5 L105 120 A3.00007					 3.00007 -180 0 0 102 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st5"></path>		<text x="28.97" y="139.35" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mp4mux</text>		</g>	<g id="shape26-21" v:mid="26" v:groupcontext="shape" transform="translate(754.5,-120.75)">		<title>Sheet.26</title>		<path d="M0 154.5 L14.44 154.5" class="st3"></path>	</g>	<g id="shape27-24" v:mid="27" v:groupcontext="shape" transform="translate(768.069,-117.758)">		<title>Sheet.27</title>		<path d="M0 154.5 L5.18 151.51 L0 148.52 L0 154.5 Z" class="st4"></path>	</g>	<g id="shape29-26" v:mid="29" v:groupcontext="shape" transform="translate(773.25,-102)">		<title>Sheet.29</title>		<desc>filesink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="135.75" width="105.01" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L102 154.5 A3.00007 3.00007 -180 0 0 105 151.5 L105 120 A3.00007					 3.00007 -180 0 0 102 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st5"></path>		<text x="33.42" y="139.35" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>filesink</text>		</g>	<g id="shape33-29" v:mid="33" v:groupcontext="shape" transform="translate(402,-102)">		<title>Sheet.33</title>		<desc>v4l2h264enc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="135.75" width="105" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L102 154.5 A3.00007 3.00007 -180 0 0 105 151.5 L105 120 A3.00007					 3.00007 -180 0 0 102 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st5"></path>		<text x="18.36" y="139.35" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2h264enc</text>		</g>	<g id="shape36-32" v:mid="36" v:groupcontext="shape" transform="translate(402,-42)">		<title>Sheet.36</title>		<desc>v4l2h264enc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="135.75" width="105" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L102 154.5 A3.00007 3.00007 -180 0 0 105 151.5 L105 120 A3.00007					 3.00007 -180 0 0 102 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st5"></path>		<text x="18.36" y="139.35" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2h264enc</text>		</g>	<g id="shape39-35" v:mid="39" v:groupcontext="shape" transform="translate(507,-60.75)">		<title>Sheet.39</title>		<path d="M0 154.5 L14.44 154.5" class="st3"></path>	</g>	<g id="shape40-38" v:mid="40" v:groupcontext="shape" transform="translate(520.569,-57.7582)">		<title>Sheet.40</title>		<path d="M0 154.5 L5.18 151.51 L0 148.52 L0 154.5 Z" class="st4"></path>	</g>	<g id="shape42-40" v:mid="42" v:groupcontext="shape" transform="translate(525.75,-42)">		<title>Sheet.42</title>		<desc>h264parse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="135.75" width="105" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L102 154.5 A3.00007 3.00007 -180 0 0 105 151.5 L105 120 A3.00007					 3.00007 -180 0 0 102 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st5"></path>		<text x="24.15" y="139.35" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>h264parse</text>		</g>	<g id="shape45-43" v:mid="45" v:groupcontext="shape" transform="translate(630.75,-60.75)">		<title>Sheet.45</title>		<path d="M0 154.5 L14.44 154.5" class="st3"></path>	</g>	<g id="shape46-46" v:mid="46" v:groupcontext="shape" transform="translate(644.319,-57.7582)">		<title>Sheet.46</title>		<path d="M0 154.5 L5.18 151.51 L0 148.52 L0 154.5 Z" class="st4"></path>	</g>	<g id="shape48-48" v:mid="48" v:groupcontext="shape" transform="translate(649.5,-42)">		<title>Sheet.48</title>		<desc>rtph264pay</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="135.75" width="105.01" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L102 154.5 A3.00007 3.00007 -180 0 0 105 151.5 L105 120 A3.00007					 3.00007 -180 0 0 102 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st5"></path>		<text x="22.26" y="139.35" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>rtph264pay</text>		</g>	<g id="shape51-51" v:mid="51" v:groupcontext="shape" transform="translate(754.5,-60.75)">		<title>Sheet.51</title>		<path d="M0 154.5 L14.44 154.5" class="st3"></path>	</g>	<g id="shape52-54" v:mid="52" v:groupcontext="shape" transform="translate(768.069,-57.7582)">		<title>Sheet.52</title>		<path d="M0 154.5 L5.18 151.51 L0 148.52 L0 154.5 Z" class="st4"></path>	</g>	<g id="shape54-56" v:mid="54" v:groupcontext="shape" transform="translate(773.25,-42)">		<title>Sheet.54</title>		<desc>udpsink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="135.75" width="105.01" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L102 154.5 A3.00007 3.00007 -180 0 0 105 151.5 L105 120 A3.00007					 3.00007 -180 0 0 102 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st5"></path>		<text x="31.54" y="139.35" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>udpsink</text>		</g>	<g id="shape57-59" v:mid="57" v:groupcontext="shape" transform="translate(146.25,-72)">		<title>Sheet.57</title>		<desc>qtivcomposer</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="135.75" width="105.01" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L102 154.5 A3.00007 3.00007 -180 0 0 105 151.5 L105 120 A3.00007					 3.00007 -180 0 0 102 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st7"></path>		<text x="15.85" y="139.35" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivcomposer</text>		</g>	<g id="shape60-62" v:mid="60" v:groupcontext="shape" transform="translate(251.25,-90.75)">		<title>Sheet.60</title>		<path d="M0 154.5 L14.44 154.5" class="st3"></path>	</g>	<g id="shape61-65" v:mid="61" v:groupcontext="shape" transform="translate(264.819,-87.7582)">		<title>Sheet.61</title>		<path d="M0 154.5 L5.18 151.51 L0 148.52 L0 154.5 Z" class="st4"></path>	</g>	<g id="shape63-67" v:mid="63" v:groupcontext="shape" transform="translate(270,-72)">		<title>Sheet.63</title>		<desc>tee</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="135.75" width="105.01" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L102 154.5 A3.00007 3.00007 -180 0 0 105 151.5 L105 120 A3.00007					 3.00007 -180 0 0 102 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st5"></path>		<text x="44.18" y="139.35" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>tee</text>		</g>	<g id="shape66-70" v:mid="66" v:groupcontext="shape" transform="translate(119.25,-60.75)">		<title>Sheet.66</title>		<path d="M22.69 133.93 L13.5 133.93 L13.5 154.5 L0 154.5 L22.69 133.93 Z" class="st8"></path>		<path d="M22.69 133.93 L13.5 133.93 L13.5 154.5 L0 154.5" class="st3"></path>	</g>	<g id="shape67-73" v:mid="67" v:groupcontext="shape" transform="translate(141.069,-78.3276)">		<title>Sheet.67</title>		<path d="M0 148.52 L5.18 151.51 L0 154.5 L0 148.52 Z" class="st4"></path>	</g>	<g id="shape69-75" v:mid="69" v:groupcontext="shape" transform="translate(119.25,-100.069)">		<title>Sheet.69</title>		<path d="M0 133.82 L13.5 133.82 L13.5 154.5 L22.69 154.5 L0 133.82 Z" class="st8"></path>		<path d="M0 133.82 L13.5 133.82 L13.5 154.5 L22.69 154.5" class="st3"></path>	</g>	<g id="shape70-78" v:mid="70" v:groupcontext="shape" transform="translate(141.069,-97.0776)">		<title>Sheet.70</title>		<path d="M0 154.5 L5.18 151.51 L0 148.52 L0 154.5 Z" class="st4"></path>	</g>	<g id="shape72-80" v:mid="72" v:groupcontext="shape" transform="translate(375,-96.1199)">		<title>Sheet.72</title>		<path d="M22.69 129.87 L13.5 129.87 L13.5 154.5 L0 154.5 L22.69 129.87 Z" class="st8"></path>		<path d="M22.69 129.87 L13.5 129.87 L13.5 154.5 L0 154.5" class="st3"></path>	</g>	<g id="shape73-83" v:mid="73" v:groupcontext="shape" transform="translate(396.819,-117.758)">		<title>Sheet.73</title>		<path d="M0 148.52 L5.18 151.51 L0 154.5 L0 148.52 Z" class="st4"></path>	</g>	<g id="shape75-85" v:mid="75" v:groupcontext="shape" transform="translate(375,-60.75)">		<title>Sheet.75</title>		<path d="M0 132.31 L13.5 132.31 L13.5 154.5 L22.69 154.5 L0 132.31 Z" class="st8"></path>		<path d="M0 132.31 L13.5 132.31 L13.5 154.5 L22.69 154.5" class="st3"></path>	</g>	<g id="shape76-88" v:mid="76" v:groupcontext="shape" transform="translate(396.819,-57.7582)">		<title>Sheet.76</title>		<path d="M0 154.5 L5.18 151.51 L0 148.52 L0 154.5 Z" class="st4"></path>	</g>	<g id="shape78-90" v:mid="78" v:groupcontext="shape" transform="translate(14.25,-102)">		<title>Sheet.78</title>		<desc>camsrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="135.75" width="105.01" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L102 154.5 A3.00007 3.00007 -180 0 0 105 151.5 L105 120 A3.00007					 3.00007 -180 0 0 102 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st5"></path>		<text x="32.57" y="139.35" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>camsrc</text>		</g>	<g id="shape81-93" v:mid="81" v:groupcontext="shape" transform="translate(14.25,-42)">		<title>Sheet.81</title>		<desc>camsrc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="135.75" width="105.01" height="37.5"></v:textrect>		<path d="M0 151.5 A3.00007 3.00007 -180 0 0 3 154.5 L102 154.5 A3.00007 3.00007 -180 0 0 105 151.5 L105 120 A3.00007					 3.00007 -180 0 0 102 117 L3 117 A3.00007 3.00007 -180 0 0 0 120 L0 151.5 Z" class="st5"></path>		<text x="32.57" y="139.35" class="st6" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>camsrc</text>		</g>	<g id="group83-96" transform="translate(768.125,-14.7814)" v:mid="83" v:groupcontext="group">		<title>Sheet.83</title>		<g id="shape7-97" v:mid="7" v:groupcontext="shape" transform="translate(15.1882,0)">			<title>Sheet.7</title>			<desc>Qualcomm</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="27.777" cy="148.2" width="55.56" height="12.6"></v:textrect>			<rect x="0" y="141.9" width="55.554" height="12.6" class="st9"></rect>			<text x="-0" y="151.35" class="st10" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Qualcomm  </text>			</g>		<g id="shape8-100" v:mid="8" v:groupcontext="shape" transform="translate(-9.99201E-16,-0.21863)">			<title>Sheet.8</title>			<path d="M0 153 A1.50003 1.50003 -180 0 0 1.5 154.5 L10.5 154.5 A1.50003 1.50003 -180 0 0 12 153 L12 144 A1.50003						 1.50003 -180 0 0 10.5 142.5 L1.5 142.5 A1.50003 1.50003 -180 0 0 -0 144 L0 153 Z" class="st7"></path>		</g>		<g id="shape10-102" v:mid="10" v:groupcontext="shape" transform="translate(89.1246,0)">			<title>Sheet.10</title>			<desc>开源</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="10.5" cy="148.2" width="21" height="12.6"></v:textrect>			<rect x="0" y="141.9" width="21" height="12.6" class="st9"></rect>			<text x="0" y="151.69" class="st11" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>开源</text>			</g>		<g id="shape11-105" v:mid="11" v:groupcontext="shape" transform="translate(73.9363,-0.21863)">			<title>Sheet.11</title>			<path d="M0 153 A1.50003 1.50003 -180 0 0 1.5 154.5 L10.5 154.5 A1.50003 1.50003 -180 0 0 12 153 L12 144 A1.50003						 1.50003 -180 0 0 10.5 142.5 L1.5 142.5 A1.50003 1.50003 -180 0 0 0 144 L0 153 Z" class="st5"></path>		</g>	</g></g>
</svg>

### 相关信息

- [多摄像头流传输](https://docs.qualcomm.com/doc/80-70022-50SC/topic/gst-multi-camera-stream-example.html)
- [使用 Python 的多摄像头流](https://docs.qualcomm.com/doc/80-70022-50SC/topic/multi-camera-streaming-python-sample-app.html)

Last Published: Nov 05, 2025

[Previous Topic
视频编码与解码](https://docs.qualcomm.com/bundle/publicresource/80-70022-50SC/topics/camera-and-video-encode.md) [Next Topic
转换和转码用例](https://docs.qualcomm.com/bundle/publicresource/80-70022-50SC/topics/transform-and-transcode-use-cases.md)