# USB 摄像头

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

**gst-ai-usb-camera-app** 从连接到 Qualcomm EVK 的 USB 网络摄像头传输视频流。该网络摄像头应可作为 /dev/videoX设备访问。您可以执行目标检测并预览结果，该过程也可以在不执行 AI 推理的情况下处理 USB 摄像头的输入。

AI USB 摄像头应用程序使用 /etc/config/config-usb-camera-app.json文件读取输入参数。

您可以选择使用或不使用 AI 推理来运行此应用。要使用 AI 推理运行此应用程序，请参见 [AI USB 摄像头](https://docs.qualcomm.com/doc/80-70022-50SC/topic/ai-usb-camera.html)。

下图展示了一个 pipeline，其处理来自 USB 摄像头的输入以生成各种输出。

有关这些 pipeline 中使用的插件的更多信息，请参见 [Pipeline 流](https://docs.qualcomm.com/doc/80-70022-50SC/topic/usb-camera.html#use-camera__section_sy3_wd2_ncc)。

Figure : gst-usb-single-camera-app 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 gst_usb_single_camera_app_pipeline.svg Layer_1 -->
<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="13.125in" height="5.00068in" viewbox="0 0 945 360.049" xml:space="preserve" color-interpolation-filters="sRGB" class="st13"><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: none; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st4 { fill: #000000; font-family: SimHei; font-size: 1.00001em; font-weight: bold }
.svg-1 .st5 { font-family: Roboto; font-size: 1em }
.svg-1 .st6 { fill: #007884; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st7 { fill: #ffffff; font-family: Roboto; font-size: 1.00001em }
.svg-1 .st8 { stroke: #000000; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st9 { fill: #000000; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st10 { fill: #2a2aea; stroke: none; stroke-linecap: butt; stroke-width: 0.75 }
.svg-1 .st11 { fill: #000000; font-family: Roboto; font-size: 0.874992em }
.svg-1 .st12 { fill: #000000; font-family: SimHei; font-size: 0.874992em }
.svg-1 .st13 { 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>Layer_1</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.37484)">		<title>Sheet.2</title>		<path d="M0 354.42 A5.62513 5.62513 -180 0 0 5.62 360.05 L938.63 360.05 A5.62513 5.62513 -180 0 0 944.25 354.42 L944.25					 6.37 A5.62513 5.62513 -180 0 0 938.63 0.75 L5.62 0.75 A5.62513 5.62513 -180 0 0 -0 6.37 L0 354.42 Z" class="st1"></path>	</g>	<g id="shape3-3" v:mid="3" v:groupcontext="shape">		<title>Sheet.3</title>		<path d="M939 0.75 C941.89 0.75 944.25 3.11 944.25 6 L944.25 354.05 C944.25 356.94 941.89 359.3 939 359.3 L6 359.3 C3.11					 359.3 0.75 356.94 0.75 354.05 L0.75 6 C0.75 3.11 3.11 0.75 6 0.75 L939 0.75 ZM939 0 L6 0 C2.69 0 0 2.69					 0 6 L0 354.05 C0 357.36 2.69 360.05 6 360.05 L939 360.05 C942.31 360.05 945 357.36 945 354.05 L945 6 C945					 2.69 942.31 0 939 0 Z" class="st2"></path>	</g>	<g id="shape5-5" v:mid="5" v:groupcontext="shape" transform="translate(14.9998,-332.329)">		<title>Sheet.5</title>		<desc>将摄像头 YUV 数据 dump 到 filesink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="118.5" cy="352.849" width="237.01" height="14.4"></v:textrect>		<rect x="0" y="345.649" width="237" height="14.4" class="st3"></rect>		<text x="0" y="356.84" class="st4" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>将摄像头<tspan class="st5"> </tspan><tspan class="st5">YUV </tspan>数据<tspan class="st5"> </tspan><tspan class="st5">dump </tspan>到<tspan class="st5"> </tspan><tspan class="st5">filesink</tspan></text>		</g>	<g id="shape7-14" v:mid="7" v:groupcontext="shape" transform="translate(15,-280.107)">		<title>Sheet.7</title>		<desc>v4l2src</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st6"></path>		<text x="33.13" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2src</text>		</g>	<g id="group8-17" transform="translate(120,-299.615)" v:mid="8" v:groupcontext="group">		<title>Sheet.8</title>		<g id="shape9-18" v:mid="9" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.9</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape10-21" v:mid="10" v:groupcontext="shape" transform="translate(24.8189,1.13687E-13)">			<title>Sheet.10</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape12-23" v:mid="12" v:groupcontext="shape" transform="translate(150,-280.107)">		<title>Sheet.12</title>		<desc>qtivtransform</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st10"></path>		<text x="16.31" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivtransform</text>		</g>	<g id="group13-26" transform="translate(255,-299.615)" v:mid="13" v:groupcontext="group">		<title>Sheet.13</title>		<g id="shape14-27" v:mid="14" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.14</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape15-30" v:mid="15" v:groupcontext="shape" transform="translate(24.8189,1.13687E-13)">			<title>Sheet.15</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape17-32" v:mid="17" v:groupcontext="shape" transform="translate(285,-280.107)">		<title>Sheet.17</title>		<desc>capsfilter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st6"></path>		<text x="27.47" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>capsfilter</text>		</g>	<g id="group18-35" transform="translate(390,-299.615)" v:mid="18" v:groupcontext="group">		<title>Sheet.18</title>		<g id="shape19-36" v:mid="19" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.19</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape20-39" v:mid="20" v:groupcontext="shape" transform="translate(24.8189,1.13687E-13)">			<title>Sheet.20</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape22-41" v:mid="22" v:groupcontext="shape" transform="translate(420,-280.107)">		<title>Sheet.22</title>		<desc>filesink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st6"></path>		<text x="33.42" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>filesink</text>		</g>	<g id="shape24-44" v:mid="24" v:groupcontext="shape" transform="translate(14.9998,-252.96)">		<title>Sheet.24</title>		<desc>显示器实时摄像头预览</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="118.5" cy="352.849" width="237.01" height="14.4"></v:textrect>		<rect x="0" y="345.649" width="237" height="14.4" class="st3"></rect>		<text x="0" y="356.84" class="st4" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>显示器实时摄像头预览</text>		</g>	<g id="shape26-47" v:mid="26" v:groupcontext="shape" transform="translate(15,-200.738)">		<title>Sheet.26</title>		<desc>v4l2src</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 0 318.05 L0 357.05 Z" class="st6"></path>		<text x="33.13" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2src</text>		</g>	<g id="group27-50" transform="translate(120,-220.246)" v:mid="27" v:groupcontext="group">		<title>Sheet.27</title>		<g id="shape28-51" v:mid="28" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.28</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape29-54" v:mid="29" v:groupcontext="shape" transform="translate(24.8189,5.68434E-14)">			<title>Sheet.29</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape31-56" v:mid="31" v:groupcontext="shape" transform="translate(150,-200.738)">		<title>Sheet.31</title>		<desc>qtivtransform</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 0 318.05 L0 357.05 Z" class="st10"></path>		<text x="16.31" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivtransform</text>		</g>	<g id="group32-59" transform="translate(255,-220.246)" v:mid="32" v:groupcontext="group">		<title>Sheet.32</title>		<g id="shape33-60" v:mid="33" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.33</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape34-63" v:mid="34" v:groupcontext="shape" transform="translate(24.8189,5.68434E-14)">			<title>Sheet.34</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape36-65" v:mid="36" v:groupcontext="shape" transform="translate(285,-200.738)">		<title>Sheet.36</title>		<desc>capsfilter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 0 318.05 L0 357.05 Z" class="st6"></path>		<text x="27.47" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>capsfilter</text>		</g>	<g id="group37-68" transform="translate(390,-220.246)" v:mid="37" v:groupcontext="group">		<title>Sheet.37</title>		<g id="shape38-69" v:mid="38" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.38</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape39-72" v:mid="39" v:groupcontext="shape" transform="translate(24.8189,5.68434E-14)">			<title>Sheet.39</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape41-74" v:mid="41" v:groupcontext="shape" transform="translate(420,-200.738)">		<title>Sheet.41</title>		<desc>Waylandsink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 0 318.05 L0 357.05 Z" class="st6"></path>		<text x="18.76" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Waylandsink</text>		</g>	<g id="shape43-77" v:mid="43" v:groupcontext="shape" transform="translate(14.9998,-173.591)">		<title>Sheet.43</title>		<desc>视频编码</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="118.5" cy="352.849" width="237.01" height="14.4"></v:textrect>		<rect x="0" y="345.649" width="237" height="14.4" class="st3"></rect>		<text x="0" y="356.84" class="st4" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>视频编码</text>		</g>	<g id="shape45-80" v:mid="45" v:groupcontext="shape" transform="translate(15,-121.369)">		<title>Sheet.45</title>		<desc>v4l2src</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105.01" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st6"></path>		<text x="33.13" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2src</text>		</g>	<g id="group46-83" transform="translate(120,-140.877)" v:mid="46" v:groupcontext="group">		<title>Sheet.46</title>		<g id="shape47-84" v:mid="47" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.47</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape48-87" v:mid="48" v:groupcontext="shape" transform="translate(24.8189,1.13687E-13)">			<title>Sheet.48</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape50-89" v:mid="50" v:groupcontext="shape" transform="translate(150,-121.369)">		<title>Sheet.50</title>		<desc>qtivtransform</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105.01" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st10"></path>		<text x="16.31" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivtransform</text>		</g>	<g id="group51-92" transform="translate(255,-140.877)" v:mid="51" v:groupcontext="group">		<title>Sheet.51</title>		<g id="shape52-93" v:mid="52" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.52</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape53-96" v:mid="53" v:groupcontext="shape" transform="translate(24.8189,1.13687E-13)">			<title>Sheet.53</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape55-98" v:mid="55" v:groupcontext="shape" transform="translate(285,-121.369)">		<title>Sheet.55</title>		<desc>capsfilter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105.01" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st6"></path>		<text x="27.47" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>capsfilter</text>		</g>	<g id="group56-101" transform="translate(390,-140.877)" v:mid="56" v:groupcontext="group">		<title>Sheet.56</title>		<g id="shape57-102" v:mid="57" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.57</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape58-105" v:mid="58" v:groupcontext="shape" transform="translate(24.8189,1.13687E-13)">			<title>Sheet.58</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape60-107" v:mid="60" v:groupcontext="shape" transform="translate(420,-121.369)">		<title>Sheet.60</title>		<desc>v4l2h264enc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105.01" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st6"></path>		<text x="18.36" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2h264enc</text>		</g>	<g id="group62-110" transform="translate(525,-140.877)" v:mid="62" v:groupcontext="group">		<title>Sheet.62</title>		<g id="shape63-111" v:mid="63" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.63</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape64-114" v:mid="64" v:groupcontext="shape" transform="translate(24.8188,5.68434E-14)">			<title>Sheet.64</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape65-116" v:mid="65" v:groupcontext="shape" transform="translate(555,-121.369)">		<title>Sheet.65</title>		<desc>h264parse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105.01" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st6"></path>		<text x="24.15" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>h264parse</text>		</g>	<g id="group66-119" transform="translate(660,-140.877)" v:mid="66" v:groupcontext="group">		<title>Sheet.66</title>		<g id="shape67-120" v:mid="67" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.67</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape68-123" v:mid="68" v:groupcontext="shape" transform="translate(24.8188,5.68434E-14)">			<title>Sheet.68</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape70-125" v:mid="70" v:groupcontext="shape" transform="translate(690,-121.369)">		<title>Sheet.70</title>		<desc>mp4mux</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105.01" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st6"></path>		<text x="28.97" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>mp4mux</text>		</g>	<g id="group71-128" transform="translate(795,-140.877)" v:mid="71" v:groupcontext="group">		<title>Sheet.71</title>		<g id="shape72-129" v:mid="72" v:groupcontext="shape" transform="translate(0,-2.99181)">			<title>Sheet.72</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape73-132" v:mid="73" v:groupcontext="shape" transform="translate(24.8188,5.68434E-14)">			<title>Sheet.73</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape75-134" v:mid="75" v:groupcontext="shape" transform="translate(825,-121.369)">		<title>Sheet.75</title>		<desc>filesink</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105.01" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st6"></path>		<text x="33.42" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>filesink</text>		</g>	<g id="group77-137" transform="translate(525,-61.5082)" v:mid="77" v:groupcontext="group">		<title>Sheet.77</title>		<g id="shape78-138" v:mid="78" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.78</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape79-141" v:mid="79" v:groupcontext="shape" transform="translate(24.8188,5.68434E-14)">			<title>Sheet.79</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape80-143" v:mid="80" v:groupcontext="shape" transform="translate(555,-42)">		<title>Sheet.80</title>		<desc>h264parse</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105.01" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st6"></path>		<text x="24.15" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>h264parse</text>		</g>	<g id="group81-146" transform="translate(660,-61.5082)" v:mid="81" v:groupcontext="group">		<title>Sheet.81</title>		<g id="shape82-147" v:mid="82" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.82</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape83-150" v:mid="83" v:groupcontext="shape" transform="translate(24.8188,5.68434E-14)">			<title>Sheet.83</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape85-152" v:mid="85" v:groupcontext="shape" transform="translate(690,-42)">		<title>Sheet.85</title>		<desc>qtirtspbin</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105.01" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st10"></path>		<text x="27.09" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtirtspbin</text>		</g>	<g id="shape87-155" v:mid="87" v:groupcontext="shape" transform="translate(14.9998,-94.2219)">		<title>Sheet.87</title>		<desc>视频编码和 RTSP 流传输</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="118.5" cy="352.849" width="237.01" height="14.4"></v:textrect>		<rect x="0" y="345.649" width="237" height="14.4" class="st3"></rect>		<text x="0" y="356.84" class="st4" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>视频编码和<tspan class="st5"> </tspan><tspan class="st5">RTSP </tspan>流传输</text>		</g>	<g id="shape89-160" v:mid="89" v:groupcontext="shape" transform="translate(15,-42)">		<title>Sheet.89</title>		<desc>v4l2src</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105.01" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st6"></path>		<text x="33.13" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2src</text>		</g>	<g id="group90-163" transform="translate(120,-61.5082)" v:mid="90" v:groupcontext="group">		<title>Sheet.90</title>		<g id="shape91-164" v:mid="91" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.91</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape92-167" v:mid="92" v:groupcontext="shape" transform="translate(24.8189,1.13687E-13)">			<title>Sheet.92</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape94-169" v:mid="94" v:groupcontext="shape" transform="translate(150,-42)">		<title>Sheet.94</title>		<desc>qtivtransform</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105.01" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st10"></path>		<text x="16.31" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>qtivtransform</text>		</g>	<g id="group95-172" transform="translate(255,-61.5082)" v:mid="95" v:groupcontext="group">		<title>Sheet.95</title>		<g id="shape96-173" v:mid="96" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.96</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape97-176" v:mid="97" v:groupcontext="shape" transform="translate(24.8189,1.13687E-13)">			<title>Sheet.97</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape99-178" v:mid="99" v:groupcontext="shape" transform="translate(285,-42)">		<title>Sheet.99</title>		<desc>capsfilter</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105.01" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st6"></path>		<text x="27.47" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>capsfilter</text>		</g>	<g id="group100-181" transform="translate(390,-61.5082)" v:mid="100" v:groupcontext="group">		<title>Sheet.100</title>		<g id="shape101-182" v:mid="101" v:groupcontext="shape" transform="translate(0,-2.99179)">			<title>Sheet.101</title>			<path d="M0 360.05 L25.69 360.05" class="st8"></path>		</g>		<g id="shape102-185" v:mid="102" v:groupcontext="shape" transform="translate(24.8189,1.13687E-13)">			<title>Sheet.102</title>			<path d="M0 360.05 L5.18 357.06 L0 354.07 L0 360.05 Z" class="st9"></path>		</g>	</g>	<g id="shape104-187" v:mid="104" v:groupcontext="shape" transform="translate(420,-42)">		<title>Sheet.104</title>		<desc>v4l2h264enc</desc>		<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>		<v:textrect cx="52.5" cy="337.549" width="105.01" height="45"></v:textrect>		<path d="M0 357.05 A3.00007 3.00007 -180 0 0 3 360.05 L102 360.05 A3.00007 3.00007 -180 0 0 105 357.05 L105 318.05 A3.00007					 3.00007 -180 0 0 102 315.05 L3 315.05 A3.00007 3.00007 -180 0 0 -0 318.05 L0 357.05 Z" class="st6"></path>		<text x="18.36" y="341.15" class="st7" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>v4l2h264enc</text>		</g>	<g id="group113-190" transform="translate(819.875,-14.7814)" v:mid="113" v:groupcontext="group">		<title>Sheet.113</title>		<g id="shape108-191" v:mid="108" v:groupcontext="shape" transform="translate(15.1883,5.68434E-14)">			<title>Sheet.108</title>			<desc>Qualcomm</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="26.6519" cy="353.749" width="53.31" height="12.6"></v:textrect>			<rect x="0" y="347.449" width="53.3037" height="12.6" class="st3"></rect>			<text x="0" y="356.9" class="st11" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>Qualcomm  </text>			</g>		<g id="shape109-194" v:mid="109" v:groupcontext="shape" transform="translate(-9.99201E-16,-0.218616)">			<title>Sheet.109</title>			<path d="M0 358.55 A1.50003 1.50003 -180 0 0 1.5 360.05 L10.5 360.05 A1.50003 1.50003 -180 0 0 12 358.55 L12 349.55						 A1.50003 1.50003 -180 0 0 10.5 348.05 L1.5 348.05 A1.50003 1.50003 -180 0 0 0 349.55 L0 358.55 Z" class="st10"></path>		</g>		<g id="shape111-196" v:mid="111" v:groupcontext="shape" transform="translate(89.1246,5.68434E-14)">			<title>Sheet.111</title>			<desc>开源</desc>			<v:textblock v:margins="rect(0,0,0,0)"></v:textblock>			<v:textrect cx="10.5" cy="353.749" width="21.01" height="12.6"></v:textrect>			<rect x="0" y="347.449" width="21" height="12.6" class="st3"></rect>			<text x="0" y="357.24" class="st12" v:langid="1033"><v:paragraph></v:paragraph><v:tablist></v:tablist>开源</text>			</g>		<g id="shape112-199" v:mid="112" v:groupcontext="shape" transform="translate(73.9363,-0.218616)">			<title>Sheet.112</title>			<path d="M0 358.55 A1.50003 1.50003 -180 0 0 1.5 360.05 L10.5 360.05 A1.50003 1.50003 -180 0 0 12 358.55 L12 349.55						 A1.50003 1.50003 -180 0 0 10.5 348.05 L1.5 348.05 A1.50003 1.50003 -180 0 0 0 349.55 L0 358.55 Z" class="st6"></path>		</g>	</g></g>
</svg>

## 运行应用程序

运行应用程序前，请完成[前提条件](https://docs.qualcomm.com/doc/80-70022-50SC/topic/download-model-and-label-files.html)。

1. 在目标设备的终端中，执行以下操作以在不使用 AI 推理的情况下运行此示例应用程序：
    1. 使用 `/etc/configs/` 目录中的 config-usb-camera-app.json 文件。
    2. 在 config-usb-camera-app.json文件中，将 `enable-object-detection` 设置为 `FALSE`。
    3. 运行 gst-ai-usb-camera-app 应用程序：

            gst-ai-usb-camera-app --config-file=/etc/config/config-usb-camera-app.jsonCopy to clipboard
2. 要停止用例，请使用 CTRL +
                    C。
3. 在目标设备的终端中，在 SSH shell 中运行以下命令以显示可用的帮助选项：

        gst-ai-usb-camera-app -hCopy to clipboard

## 预期输出

下表列出了每个用例的预期输出：

Table : gst-ai-usb-single-camera-app 的预期输出 - 不使用 AI

| 用例 | 输出 |
| :--- | :--- |
| 预览 | 摄像头流的预览。请参见 [Figure : gst-usb-single-camera-app 应用程序的预期输出 - 预览](https://docs.qualcomm.com/doc/80-70022-50SC/topic/usb-camera.html#use-camera__fig_ihh_tqq_5bc)。 |
| 保存 MP4 和 YUV 数据 | 将输出保存到 /etc/media/文件夹路径中的文件中。 |
| RTSP | 在远程显示器上查看输出。 |

Figure : gst-usb-single-camera-app 应用程序的预期输出 - 预览
                
                ![](data:image/png;base64,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)

## Pipeline 流

下表列出了 USB 摄像头流传输 pipeline 中使用的插件：| Pipeline | 说明 |
| --- | --- |
| 将摄像头 YUV 数据 dump 到 filesink | <ol class="ol" id="use-camera__ol_zkf_sf2_ncc"><br>                                        <li class="li">v4l2src 采集摄像头实时流。</li><br><br>                                        <li class="li"><a href="https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtivtransform.html">qtivtransform</a> 转换流数据。</li><br><br>                                        <li class="li">Capsfilter 用于对原始视频数据实施约束。</li><br><br>                                        <li class="li">Filesink 用于将 YUV 数据 dump 到文件中。</li><br><br>                                    </ol> |
| 在显示器上预览 | <ol class="ol" id="use-camera__ol_njk_nls_nbc"><br>                                        <li class="li">v4l2src 采集摄像头实时流。</li><br><br>                                        <li class="li"><a href="https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtivtransform.html">qtivtransform</a> 转换流数据。</li><br><br>                                        <li class="li">Capsfilter 用于对原始视频数据实施约束。</li><br><br>                                        <li class="li">数据将发送到 Wayland 显示器接收端（<a href="https://docs.qualcomm.com/doc/80-70022-50SC/topic/waylandsink.html">Waylandsink</a>）进行实时预览。</li><br><br>                                    </ol> |
| 视频编码 | <ol class="ol" id="use-camera__ol_fhg_wls_nbc"><br>                                        <li class="li">v4l2src 采集摄像头实时流。</li><br><br>                                        <li class="li"><a href="https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtivtransform.html">qtivtransform</a> 转换流数据。</li><br><br>                                        <li class="li">Capsfilter 用于对原始视频数据实施约束。</li><br><br>                                        <li class="li"><a href="https://docs.qualcomm.com/doc/80-70022-50SC/topic/v4l2h264enc.html">v4l2h264enc</a> 使用 H.264 格式对视频进行编码。</li><br><br>                                        <li class="li">H264parse 用于渲染视频。</li><br><br>                                        <li class="li">Mp4mux 用于将视频复用到 MP4 容器中。</li><br><br>                                        <li class="li">Filesink 用于将视频写入文件。</li><br><br>                                    </ol> |
| 视频编码和 RTSP 流传输 | <ol class="ol" id="use-camera__ol_ckj_pf2_ncc"><br>                                        <li class="li"><a href="https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtiqmmfsrc.html">qtiqmmfsrc</a> 采集摄像头实时流。</li><br><br>                                        <li class="li"><a href="https://docs.qualcomm.com/doc/80-70022-50SC/topic/qtivtransform.html">qtivtransform</a> 转换流数据。</li><br><br>                                        <li class="li">Capsfilter 用于对原始视频数据实施约束。</li><br><br>                                        <li class="li"><a href="https://docs.qualcomm.com/doc/80-70022-50SC/topic/v4l2h264enc.html">v4l2h264enc</a> 使用 H.264 格式对视频进行编码。</li><br><br>                                        <li class="li">H264parse 用于渲染视频。</li><br><br>                                        <li class="li">qtirtspbin 用于将流加载至 RTSP。 </li><br><br>                                    </ol> |

**Parent Topic:** [运行摄像头的示例应用程序](https://docs.qualcomm.com/doc/80-70022-50SC/topic/camera-sample-applications.html)

Last Published: Nov 05, 2025

[Previous Topic
单路摄像头流传输](https://docs.qualcomm.com/bundle/publicresource/80-70022-50SC/topics/gst-camera-single-stream-example.md) [Next Topic
多摄像头流传输](https://docs.qualcomm.com/bundle/publicresource/80-70022-50SC/topics/gst-multi-camera-stream-example.md)