# 视频编码与解码

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

摄像头和视频编码用例展示了编码和处理实时 4K 和 1080p 摄像头流的各种场景。

在开始运行这些用例之前，请确保完成[运行多媒体用例](https://docs.qualcomm.com/doc/80-70018-50SC/topic/multimedia-use-cases.html)中提及的前提条件。

Note: QCS6490 不支持 24 路端到端并发视频会话。

## 一路流 - 来自实时源的 1080p AVC RTSP 流

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

该用例对来自摄像头的 1080p 流进行编码。编码流使用 RTSP 流通过网络发送。

Figure : 1080p RTSP 流编码 pipeline
            
            ![](data:image/png;base64,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)

- 使用 udpsrc 在目标上运行 RTSP 服务器（您可以在后台将其作为服务运行）：

        gst-rtsp-server -p 8900 -a "< IP_address of the 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 qtiqmmfsrc name=camsrc ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! queue ! h264parse config-interval=-1 ! rtph264pay pt=96 ! udpsink host=< IP_address of the device > port=8554Copy to clipboard

视频流在主机上显示为 RTSP 流。

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

### 在主机上查看 RTSP 流

**前提条件：**
- 在主机上安装 VLC 媒体播放器。
- 在环境变量中设置二进制/可执行路径。

在 Linux 主机上，执行以下操作之一：

- vlc -vvv rtsp://&lt;IP\_address of the device&gt;:8900/live [带有 VLC 版本 3.0.8 的 Ubuntu 18.04]
- ffplay -rtsp\_transport tcp rtsp://&lt;IP\_address of the
                        device&gt;:8900/live

在 Windows 主机上，执行以下操作：

1. 打开 VLC 媒体播放器。
2. 转到 Media <abbr title="and then"> &gt; </abbr>Open Network Stream，或按 CTRL + N。
3. 输入 rtsp://&lt;IP\_address of the device&gt;:8900/live。
4. 选择 Play

## 二路流 - 来自实时源的 4K AVC 和 480p AVC 流

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

这些用例对来自摄像头的一路 4K 流和一路 1080p 流进行编码。每个编码的数据流都多路复用到不同的文件中。

运行用例：

    gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::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. ! video/x-raw,format=NV12_Q08C,width=640,height=480,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"Copy to clipboard

要停止用例，请按
                    CTRL + C。使用以下 `scp`
            命令从设备中拉取录制的内容，然后在主机 PC 上播放该内容。

您可以在媒体播放器上播放 MP4 文件。拉取录制内容：

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

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

下图显示了 pipeline 执行流程：

Figure : 用于编码两个（4k 和 1080p）摄像头流的 pipeline 
            
            ![](data:image/png;base64,UklGRhAiAABXRUJQVlA4TAQiAAAvzgM5EGpREwAJA/1zg9s7IhSkbcCsBvZUYBUUnInIk7VQUNJEqIky8AhjLQQL/MeeZprPaTD7jD6bvDwDqOb/99ptnN57It30A+8TdOCFgoKCghclgheaxVBQ0Ci9CKb3BgUNBdMTeGF6k+597nnfo/+98XF87nMelw1MTTWFH43gukBHN9Qz1IOM3hVSuRdIhR4hG7gukt4W8AxeQFnAQ6ROUMXzZAOjzow8Ryps2iFlhgv03DUMX9cFjAMFPUOacJAXSG8LGHmDQ9KLxkg72aLeMdLLSZtBKE0H3C2CjLXAy41CvYBQKhZM5VVbmEKhrb1t80OxfBrn+IeCgoKBhoGGgYaGht0VNDTs3sOwey8YaGjY3ULB7kIBAKCRQrbvweHGcxGJRCLx4sWLRKJbItG9B9GtzYsXiRd/P5Hoxm1s26ryXVsQKIAiLCUjIuW1Smgt0ACR+5oAvcm2bbIkW+5tccQRz/85YosjtjhiiSOOOOKII47YYostlrjFEdf5LSEzq6p7Vq2us0sL2otDQnKkceFzYHkQbiQkLaYhA48zm4RSjyUpHk8WJK2OHwPf601y1PnxIwlnGlJPQ5KAx5nSE5YbRUAYs3/UhGDcSAiWSQHpxiKgYJnwOpIQjBebgGTgsyhYbiQk7VO4kQTk+TPIBW1bW/ThwzAMwzC8GIZhGIZhGIbhh2H44WA4+DAcvHjnX2Hbts3/HyvpYP8nwO/VLkFpMa8aXM2UgDBDAgIY75jfDK2jk9XWj/V8Gi4WUJOPaD0tWk8Bo8VMi1ITxwqUVH7MF1az3VxmYNMZjrMmIERpuKhAIPHjXoHSYn5Mbi1m+jcEjMOidPKJNnBZgUDq9/t3/4+82NSuxoGwYR0gW1dpHYb1cmvneOTs5MExXjhWSzhjwDBPqg0rc/lw5FHgPbXDxyeGu2p1RJxwwnBsE1S8nCqdw4FJoMhBERw5cCltBa/lmnP1TQJFM2x1FHaJ9boYaCYc7dRg84wI8I4KmwSKZv1XvCBA1sCOLEkRFEkRfom1lk/geJ2tz4hBEdGhSLyipSjSgVjma9ChKPtP9p/sP9l/sv+q1wh4DvyrQIA2EAE6iPzXAogAUODlAHgeAK9nIFBVgSogIlBVkU6AiKAFEBF0ELliAP8sIDoIW6Gqwla0ERJfLkSuasK2IIGXAJLoBJJ4HQOSAEiAJEgBSLQDSZCiCpIg0QIhcaUA/535ce9Ji2gjfAI/X30S/XT2cYmA8Eetn0f9Hw8+yhCqCv5k9JMB8WVCSFzNBD/u9Ac/rDU/KPBJo2eJFwI/rjQh0Q78KNdExOsXMPzs1nsynvfIoHl69tdeUpIY/GwBaQGD+8/OsqQHAf9d5qeTp/eyT48iQhXkz1Z9ytXC/uLRggKoCifP/q0+OVQX7Ezy5xuz+jTxPk1ZQsGNeUdRQAG0AYAWQAFVAGgHQgAEdj/ZQa5iYPlMVfNmufl+0N+FhAJoB6DlfpkTUAAKpt6AUMAHAqAFUAX5yZ45OIZmymBq+s3CDIjir68CAaDCkfl0r5maCclbM/3JpPB+CITC/ahjijYA0IK2bQDglVTfkiTAjenS2SKz7mgmdBszIMCwNp8eKCCFpKgqSFKgIIUUkKRAVYWk4IoAKABVAKoKKIA2cJtlFogCCkAVAFQBqCqgAFQVuIoIb+qYcWQ5qn6QI4SkQBVCUgDGkSUJktJyIIQkPg+QhKqQULjSmMYx/AWbu6M5OPLnMS9k8tQDSYK56Tq6iUndxnSdG/s3FDCszWOLkKRAwbaiqkKSgldTnMYUdrOYcI35YYVJZUn0zgS5SOqW2DJOYwqENv3tDATimPEMtGk6JqHCOJ2BuBIIKSQhJEVBCkmBKjjOzAoCUkgKSBIgCQUJklCQwJVDgrBIwjtYtBHG6QwEyPC3s4BAYAE7pk1Dso0wDH0eYPgELCHYpwBn1aRT792YcEez5GOBqLf5yJDlZzc/KBHMzcYtdrEjoyVALhargqLCWVlGJOxyHGx6EQXCWdmLSLx6stvDL648vyGsBcCBmdnd3NmYjoBr/LR4R8Hi3aD2qwPJMvN9fzsj+9vezrfnzPOrk6XgUPn+ak9cASTYh8G5l5JRbwlBGiHq5QEBcrFIskAwi5D2zmBYvrdkvLcEZhHCPCQ4y2PiigGmtbfb9fIqdy04rCt/tSftz7d2O784k8cq4mjVKzxvZNtwUN3nEp9HbgYEIzMg+TgNOxAE4AYmZZLNd5VZWIIAXGP2qBec5aEj4Bo/TgqKYLCrMzO6Y+rdJDvfvCUx8KrMGwXEK6fwih/19ttnKiUJ8C4r/plJzc9mh2KdRARnu3tmLYkpjunIlO4JmO0+3OwScmHq7tfpbrH/8NOFOZAD80/pDxurXUq88sBwndz4nr/p7nzTJRfVtKrNNiZc6YeLLBDOq3nlm8lm7ZtV6MpnKqdwVMVhVVgXVsVVxB7rovxwXJ7dqIrZXf5Tmq92kZt49+m+2IWuXD4B1zfrt/vuM9VzqXdwh2U36K37OFSCrAjIrknJgx8/h4iCcZU84LOU+d3HtbvGlIQoaOviIfZu55W/G5Cc7XrusaCwMYcguDddl+5MN463XuhKM7HBvTm8grIidm5vSgJgcLvM3RPwqtuvv679lEi2RLt16Iii4HJkvxcM/yo47WIu/MgNc1MOhzwuOfNOw+HQ+gvKJaUpSNVmEs9q73ff3d14M05NkgbHZ2pEfvAbl7SMzCq6m5u6vCuXzXOErlwe3O1yT+ilt/27NxwtBbnaPrjjMnejyn7Ynb5n3ND6tw+Pa+uGYc+yzW7pnK37D6nXlN6Aovs8wINJXZAlZOqVw1knKBivdimR1NYx3J0oCt79ztu7cLc7peHINI7JlnwsyGD9zjk3nO7szBs5up5Z8qlXgEQvfwXVtwQjryHAeGFKcm9GdG7m3bpDbYfMbhyRJCDcaDemG5eHbubPuC1AhpW5aVLnuDGnr8vyuF5/ZIjLKTbl4rPMZncllKp3JG93IV1plvwffkjykyM/5rcJ2WbuzZzbPFP3jnE1ckevA9n3u+ZA6OWXMqqEKo6t2/y+gfGeQUgFxTZgu+vz8vR1Wb5f18FhWU82gWObaW1J+9S7eUirwjw+ED6CKm3tBEFm3sDtTenuVp/EnAtNM2wHzordnoKkABn6cwoYrrwzOfbmjmRR81DFzrWEXtE9nbqF+e3MGxAsTW69kQNAQl9F0o5h4W0Izsy9A5lkkbcte/dV8eNRyOQxEHDizR4m/lMvuWlZFJZgOq+M2aauMdmqKIpiYS8tCyMWIPHD3N8sac5Apk/hfG3Jo8m5WFuCBy/tVaFzSfZAzv0xmT9TGzJez5/PFubmQfQVoHGM0VDFMeVKO3mY2N6yWBVFsVrE6CXGVIfgubKbh9T3Vt7xtYGjVHhHVZ4754yBx1S4LXjyY9eYxWi0MKtRPG7hvlqnREsgbcC09vcEbTWiwI385QWrT/NRVfXz1Mu22+122k9nXpdgz+Rjb0Io5JXGtF5HDuDYGxFg8tTLK99rNUcmCQg394PGHO44HHidHOPlySTcmOM/y1j7kUEA6OfRL24gxGUZtO15wVFIboZolIEofcSeZ5CZUtivLPneLLlYxwSbXVnVo/mo9qdHzv2w5UjG1dx9/RzCrRkRX5z1zt5FUE8opKYuHaX0iGExCKUWjLAJxU4BweJ6s3x/Z+01AtBh1ivM0b2IN7kr1iGJb6BSWGdQm2cqz+1TN79v8BB4vFDLp94nMbJXFEWRedUqbGHuFSHxfNzvsg8EJFgVIFy/ipKiKAp/l/Xsxb/TkHQk007YTR3A4PqyWW3v3t8IubAu4iFbp751LvYXQRiG4az+9kOApACJbMVtRUfX78DNdOzc8Kb6yITeyDnHyYDyuXCWGJfcWMlrFtJJ9b5KQUsMWvqJlfZ9iFIaqu0oC7hYwk38/NNUURSFv8uaFzouc4KTKiTf7rbmSHxhhi+3ZrVB+5LEyqidGLT0S5qmoTFiHyZ25o2+b5zj6RCMGueGqTd4sWa49/oPvb2g4Y/EpsKbgodoHqU5WRwznrLZylsSCIKAqXlLhv7czaokGJLkc7hwvbobsrUxuXO2ShgEQcDVUy8A3/mhI0ePQaezW/ihc3Y1oLwUDZ/BHCNNU7uG5L1z9U0iyHrRYhp3axZvB4PBIHSRt0jTGxOx7fqdI7bP1Cj9MDIbNzHNh+9OZjfj7zJL5maaflTYeLdk1ww+fOiaA/G58I5i+MaknME7onY/VhcTP3TuLlsFCIKASRbghZ7AM9VzLl6tQxd5o7vHKiS+KDhrHGM0diAE1UKiI/TUS1o2bu6P2V120w+TZcN35uvww9x7Am3+sYpJW7cMyO4zVeYS7yeYc67wEUopZ7E+QQ6MZxScmCIQFRHhzLx1DP+u725N8eftdpvsWdQtXt+NTPbn7Xb7u5x25b09rnYRRYQsagpTv/7mPDJdl5pJm41L/ax3TMyZeCldNr9vQPrGze89ZwzcHGxQq8VsKcUjR8oESf5IYVqXwe/WddW6J/Os8usNAUCCpE9BUie+7zdkvDB+Ne0XIf+0vaawV/nr3SImg4FfVf4Aop/LlSo+j3TsxxjbD5XdDYVTPyZLk3NqnnrNMfFyigj5uH4gp15Intv4U2ez6pu3hVeN46wKXbRM7ohLrzhwrsJ4RxUhtb0NmNdPwHVXMYNBVVX+IGC42FXVuiSPdcRTYkmbjB5m2T1pk2RELvF6lps79wgTPst42FEq41k/z6VJSaiqguG3G3J802D0bbJarVbFkqd5IBzfNJx8m6xWq1WxIeNRXSURoarC05wCpot1ld2Ds3clwfzbiEzfravVmdCXwnsiENNnkA485/rOEM2jBo0R54jnFLAWKkEcwMbtA4DX+6WlaCushSBJgigfU0BE+YyIAWsBFcbLTUoCZLzMY4peVipLi0o8PVB4mFpy+VmS8raaFNUqJ1QVnPQhbG5iMvrbJWmnDblfVdl9M7XHz05Hgm+fnpavAFVlTEVKYS0QxAGsBch4mccUEOl5GVMQxAGsBQBrAXsNMBhfRHSvJxhBoPbg8YyxXzylIAlti/aEgu3RqgABsD0AMrAktBUgVEHaMSgAAQUIgLQxKfpyuvRDe/zfrosfMSjlHGKFYCdPCAUJVSHBjqIKkoS2I1seQRKqEJIiFJBQVZCkQBVCktBLK300FCCgAAGA5KK+hiVFWwFCAQIAAYAACBuQQABChQD00kuLGgkVCkgohCShCiFJKEgBCVWQEBIKkug+AWcMWFrPKUS0s4iqiqh0VhFVVRGVzqoQUqDtRVRVIaRAVUVUVURVIaRAX5LGsG1qlK+2967y2r76piAKqKoCio6qqgCgHQEVFFkggLYCUIUqoK0AoG0BQK8EqiKqKqKqIsJFZUmBthdRVRFVFRFVFVGFUCCiIqKqIqJXEAVUFaqAqioAaCsAqCqgCqiqAqqAqgK6byB9AX45AX1xQF8c0JdbRmqktBV87jtaYRPrEx17wf09RH/5M5Dnb4kJ/byhX/gM6JL3tfyS45X2FTFQkNArG/abAHr5VuWlE6KDTUFC3zgQyYxKAX2z7JKW/Sf7T/af7D/Zf9UAAyR+JikDIgmLAhzFIUzKgEhMr8iE46/YJdAnAsZ4arBaCr/OJhyLRCGeGrIJGOsHvR2tdaywYsU9OHKgivHqwgGrAcd6h2D3fZs4ce8cKGbGwDhEBHLq1YCjBdi5zMs5IaGQ4vMMIMf0w6uJBsnUroHh/rc9z02F44Qs/Fg/DZIq80fLicnMDKZ/A7KJ6FSN758P8GoFNxaOrbtIQYYVmgSKZpvk5pwUZEiYlAGRmG2S9yyJiA5FIvtP9l/VJF1QuUQytd9wDcnUtpYlmbJ6LFCKZOC0SmPrpFKTT0BVkUqttmcx6ScwCmT/yf6T/VeNHgBoAQRQVbRXAFBVtFVVtKqiVcIEIUlRBR1JAejYCpKEgiQdATiSBOjocolkCQyO3cGSAs6aSfcYkGEvnA0GMzduBnuC2HS7pSU/MmVkm5IM7yfN1blEogSG33qr2kzIjV89Ft7WuqPZZplXH4u6Mkd3d2uKlZfNGF6wYmX6PFfValediTeT5GHxTD0B3nXNkuunXkyW5v1wY6r8YWm8w51dJ8xN6bisGjeuTfeD/eA/xoyLC2aJN5HA1HQdacsZ9rEjZ97AbUzPMa4WJKc1Nqb7FzprOa62pDuYyJFp+cbSxrx3AEm6aJ4UmWl5T4ZVn8J+Ze3vzAXbvh2T46pP4XwXEyABfTPpaI6ECsmJ2R7Kg9dStkxb1tbh3K+Nv3HjakrhtGon+oZSZBoHILxLzYkc2gvWfSFrHYO8emRcTQl2zYxgEAbyhpKtM+uGZ3OOTG/oeG8GLxIcvHToWBRthEtzcs796YKNiTeRFDx7RXPwC2szb/J2UZmuO5oeGXo3FN5csOsPfva2tzClC70binBkpt/MzYSibyQpGN0WxSQm035WnKL+kdHNkrTzhsJmbpneFkVyJO28oaiwTIrHHkTfUFKQQUAC5DVIEiAAkFCQABlckwKQUFUhLSj6xpJCKAJVCAUQURFRVRFVFVGFCAWqKqKtEAr0DSZVaHvoS4e+IPSLLMm53GX/yf7bJ4MuUrO6N6K6eddwhkSKswjvKGStltCkUcut7XPGANmenaRRvRiygVbSqALZf7L/5JQUmgSKZn1JSN84UYqnGhjtVOORGSpK308F5M3jMRqeUBSmwnFC7R0+ItyU1M7RgKlipwzXABndS8ZREu7mxsgpB442T/0tRqqFsVhxLvMcKGZaIQQxCo7NPAeKmZ9zjKm4BTkmODCwbJ0YNOz+Pr0GHOstoJOz388gjtQJhSYceUivYPRKHROOhVdid1R+NoGk+e3FCm4FbbIJGMMLq5T3EyoicKyPVX0CxyL89ss3SRkcYX7rGJOw61U/m5QBkYQXUou8Ih2K2OlQFAeiA/JyaJNNdCDK/pP9J/tP9p/sv+qkAFQVUFW0qirwHGhtAwCdgKsF8BxobQMAnYC/QQeQUCGhYCsUJDqArVBVkKSgDUhcJYREB7AVqiokKe1A4ksGRK5sEAGgAF4KgOcCXsuAKJeUIE8htD/qNEdLIFpC2oB20xzHhIJx75CDUFUwKgO5OkiwjCBthGHZnANChbOmiSgt4HlDfKkASVzRQJKOoCNeAuiI5wCJ1zLuaE6Otr4l89ov/DonF5klVBWMsgtWVOsNwXy9y7wkJhSM68oSqgo8BzrhVQPa+s8UqKqwrKpiV6QEG6/KvBNEFYy8d5Q26AA8B1QV6IQrERh0N8SVDNyP+vsm5+wwI14ItIcl0UFQlq9NRERVIaIKhpXpknZ9y9AvPgQfiirmorakAIzXWRqEyQULGVbZ7P/n5pMYRcG5yVogpEBVRSAUqCpEKHglUQDuzU0cRP7qzi3NTXx3MPcEGBTmhqIiEApUFUKKQFUEQkBIQQuEIrgqAKqAqgJQVUABdDiYLqGAAlAFoKpAC6BAC3AVAWeVlxyfqfn3zXG5IRQA2gCAgqF3egBUAaigLgJR4DUIQEJBAiAX2QWbkLa+dffmCTi6o9m4RRbQgmRpNo4uN+XwYHJHDrqBgGVV1JYAGVhSAJKwJBRkYEl55dySFgRHJnR0A5O6Gy90vB71Wk51dUMBSVhSFKSNAxIgCQvSxqSoCmkDElcDkCKkQEhChRSSUFUw8syAEFJIAiShIKEKEqSoComriCufqdwFUeg2yzMBkoSqgiQBCaIQpAhJCIokEJB47QE+geJI0D6eCN77++rUhnEaANyYo1sUy09TVd2QcRoAXJqe+7YOHOkIMPTvR5UlOJvW6yQnx0lTFlUSEQzndbU6Uy6Tc4MKmyhU1j8WVZGTYQqAB5Ne+wtH0hFg7uXFOwrmo+NqvToTjBbrqj5Z8tTPi8LOFuuqaCDCc7Ku+yFxNbAz4LcpyFl0TQSh5SyyFAXtauENKAgtw70lx1FIQRxCBGGMMISA4QxyBYlPFyyPEVu2CK/TyFIgjPdRTALxNe3HBSCNArYh4/Qarz9iPyG4MT1y5pWB14EUkFMv5K23npdbcyYpgDuZGapFtCj6KUFuE/6msuRsve4dE3N0YeU99QZNVccMM785/s5siEuko/HmenvvJtcxiSCFn3W/qf0ZSQG5qoOZOZyTYhITjNddZi2JqbtfJ+YJuNSre/nATMmtVyf/a5ZlzfnG3JM9c3NsquwvxBUA3FSH7QXz/hTOd94qZZjNR5VfHwlwtEq9ARkX027lFd+VlVf1yPnKknY1YuOXZF5NHq4egt95nnczzrquhZuvqmr9NiCbaldVg4DheuA21f3W91YpW1y+nlviNYeCJ29G9quYfNwy7iQAXWm65K13dG58wUYUgO5oRrTrqhgN6t2ertnN3G3L1B8Ph1zVd3FVhG5YmifgRiZyLihGlJdS4CnFLWX7d8/94Wn7GJT+NdZOnjBfrVM3zE1JAOTAlG7v1avJxCtCsv9VgHb+3jm7TtyxSIduOL9glgvvSHc2x+EQgyPjakE3TM2IciUoza77MQzM+ua/H/9uyrAyn+723yVeRJ69KG5Tm9/l56oqevuVH/Jm3VLf0BZ+HGTrkLiC7G93zXdjb/SrzTN1drl3E6WnZeNyb/LdDyoj896FXvd7plzuTvujdxOwSB4iL4kJff0RmcbF/pw8VPHQehPXQXhvpgG5yALS1lMKhKW5CTiusplzYfXImd8but9UcLZKPqTp/52Y1PpdB+bmyCwhQGuhLyU24xyl4vKRiNt3lrsfcL+0tLQ0EKJ5FoNQGiOMbCJEfUsw+ruGADkwA/IJmEXsXG5O7njB0iGzG0ckCQnX92M6pMvzzW7GRQEy9daD6M6RuTn83zRNszogLqXd/v6hdjQH58JdEjhusyD0fxfQzby5i9cDF7ZZr+4cp17kXPlMPQE3rVuyKZl6o67JCb1yKNzBD4fx7vSrzTOVM8mC4dAtqrhZ5sMhNilDr/urr5cN6W59y2IRrd9ZQl97qGC1ckfzBNxvvVG633jTyLYhB2YUULjIbAfyYG7vKEE1dYA7mV9v6/0+2vrn8NeVX7X6S+tPCJ7NxlZ9ioJ8SXGZULtj+iUvux3s4u5qzb1JxW5XGTmb3zdsf++dccYJWQY1eI+1ySa6QMLIawje9c2BwtT0HMhVEVbbdL+sV3uL5DEQcOLN3NeFX9cXrGqxFB4LY+qudT1Ttfqr+JJiTYMKYjkZ7kYOXNRB6I8cGBRJ0E84jL3DkONqSnJaWXLzTOXPA/Y8M6DoFUQ48FN2sFVSluXXfzbRdztv0Qsd25TLPeFGnmVSV8uZg74mODfrBAHAxgv7WeB6xvc870LrmScQ1LdkMDcDEs9FnkyXhKB4JOEGJq+9C+Z5nmdO1r/5SxiGsQ3CTsH6hgK4l1XA8CwxHtnsrvJKfRMRxokpKWDoTQjw22zj7bxWc2TyCIEb+XZjpt/Zh5PXDhwiahIz5XtT/iUMQ2sh+nnwjmL4lhqB5DVLYUlzGkKbNpR2c0KQPL43/W+agbf9JrbVDeWlCGPfpMTlpzXVsHoC4a4uiqJYFRH3U9+Y27BD3rKzTEzizx/kS9HfKLxs5JScwBSPhf6oGpBhnud56S1ya1v63nHoSD7XyZRDR5Jdb+bIhT/e53meJ/5xxiKjo4sOd+MORz6ur0k2JeWlvILJpC6MDa1PdCScTapo6EgGSQbyep3YPM/z83p1jpE8kuTjV1z4cBx24v5gnWNSBakZDEmWJfG5cJZ47z60k5t7rSal36pVjkFp4NyKQcJmRDD4atrsfM/z/qfn7V/oH1uusynJflVtA+KLUjEoGHGM9euj4WT9URAEAQA42vPc9B9eZFXcHZZH4ktQz++n/C34lFMpNdQSTfWMCvvGnxEk6aw3GdLWt+69SfLNZnMMO/ziaurOZpVvNpvjjOEFS2KWpstW90msAlma0x3TqgrG/qmdO5rRHY5mRFwiaV9B4+8aNzD9fLPZHGO3MZMgmJgN22Y3jth6jWVj7t1vvD3vejt/xu1XljyaQcBwnZALsyFLM6J8Lv0ij6AdKXd958M0jxqBuKGATd/RpcvuXRzHceRN4iB+kblnnUurKV1vWebLAeWLEpdxlySvWShfcu7frqfcZxxM+zVNGTkFuORMauvoyt/Y+z8FzjErXqhIHu6KdUh8+fkiUP6c4OU5NO9ggx7pKTA3C4oCAMdmRNrqlgvjmdaeW9Qt1ZS3xjOtB8fcr2rTtwQA3vqWwoO3/srLvnPhBetAHrx1Zm7iV86ixTRBYf7OtD4Bx8ar196BAoBB/bcUbKt6XZtRwDTzivWq2M24zSwFJ68udllK/mVhssxMLfG5XOn8CBjaijMGiuuAQXuOU+siU5ojGXp9CrdVMK68QRqt/F+TpAufqYHj2G+52cXkcXkelsvud2Vhpky9bwP2zZn4glg98kgE7fLnXJaX0rw8SvtMRqvrpRx7o19tlhuXe9t9WC63D73lKQ2b5cCF3qTD3FgWj4F7At5/C4gvPUxFMakyKL1qsJbjKUVwDgltRZCnlGCZYn9uuwkZLSES5Cmic9tNSOH4/WFJQlXBNIeocNY7HC15nacE4/OYwlnvkIPQV4hKsEwB2nOI5bl9TGF636QUVVXBMqIgScKy2ZOgLQ9HG+aW0RKiwqg5vLcEiH3TLEHo5+OMAWJul9o8M05lbD9kzllOhkWXwlGCsCq+9S9YsScAMMwaMn48UThZWTLP9gzm5kKtD9tJ8McsJcPVwhJfjJsUhrbq5t8GpZFOympn99BqihnjYuCW2ZI8F37lT2NiUPmVPwkYFo3bZBHBQWG5mAZkt15+GULyPaOpxpga8pQKCW0PEiok2BkkVIUEO0NBkgJtBQlVFbYCIKEgCRWSFOgrRYWEgiTYGSokKdoWJATJI0gKFGwPkFBVYStUISQp0MtqvbOS8z1gDB2VIA4EsBYKaxlesNNDFF0TqqqAvQZgLRTWAhLEAYg0imktxpYA7TgQvZTcLe4XacUY64WS4tpCYK8RxAGEQbr/NQlhHO1DErDXDOJAFNYC1gKCsYW+FihOuaswJogC2hlQVUDRWQFVVUDRWVUBQDsC2opWVQVUFYCqAoC+XDFTQFUBKDqrKgBoR0AFRREQUFVFe1VAW9GqrQCgny9e6SOjQlEVEgqSoT93JKFthYSChIKEqlAUQlJIkFAFKXrZbX7f0EVh6JGiICEUVZCkQBUkKVAhQYoqSICEqpCvCdIX4hUsal9MQXcC0V/+jEShqgqoKsDwmZoSgHYEVBVQVUBVFaqqABRQQFUV0EvPJVoKqCqgClVVANBWAFBVBRRQVQVUAVVVQP9mgoKEXq2eG7SHDaGXcMZzye/NpiJ6dVOAhL5hcElmWKoCfbPsspb9J/tP9p/sP9l/1QKDI25wrNrHaolCE451sKpjwrFQDEwCSfNzEajvoE8EimahF2TYIOXDkQMTxChoBZMPxycN/GxQwrDsLAI854rCYIwnZ0GFeT3/+fvXPnqz7PaxZbaPwXHFrUtb3LdhtPVT10rbV76D476r7z3b6esHbsssX1g4mTUEln2Xnt6y8/cP3Da++rAIzxoCyCjACw==)

## 来自实时源的三个 1080p AVC 数据流

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

该用例对来自摄像头的三路 1080p 流进行编码。每个编码的数据流都多路复用到不同的文件中。

运行
            pipeline：

    gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw,format=NV12_Q08C,width=1920,height=1080,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. ! video/x-raw,format=NV12_Q08C,width=1920,height=1080,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. ! video/x-raw,format=NV12_Q08C,width=1920,height=1080,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/mux3.mp4"Copy to clipboard

要停止用例，请按
                    CTRL + C。使用以下 `scp`
            命令从设备中拉取录制的内容，然后在主机上播放该内容。

您可以在媒体播放器上播放 MP4 文件。使用以下命令之一拉取录制的内容：

    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

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

下图显示了 pipeline 执行流程：

Figure : 用于编码三个 1080p 摄像头流的 pipeline
            
            ![](data:image/png;base64,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)

## 三路流 - 来自实时源的 720p AVC、720p HEVC 和 720p YUV 流

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

该用例使用来自摄像头的三路 720p 流。对其中两路视频流进行编码 - 一路编码为 H.264，另一路编码为 HEVC。这些数据流被多路复用到不同的文件中。对第三路流进行显示。

Note: 此用例不适用于 QCS8275 和 QCS9075。

运行 pipeline：

    gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=preview video_1::type=video ! video/x-raw,format=NV12_Q08C,width=1280,height=720,framerate=30/1 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux1.mp4" camsrc. ! video/x-raw,format=NV12_Q08C,width=1280,height=720,framerate=30/1 ! queue ! v4l2h265enc capture-io-mode=4 output-io-mode=5 ! queue ! h265parse ! mp4mux ! queue ! filesink location="/opt/mux_hevc.mp4" camsrc. ! video/x-raw,format=NV12_Q08C,width=1280,height=720,framerate=30/1 ! waylandsink fullscreen=trueCopy to clipboard

要停止用例，请按 CTRL + C。使用以下 `scp`
            命令从设备中拉取录制的内容，然后在主机 PC 上播放该内容。

显示摄像头流。您可以在媒体播放器上播放 MP4 文件。

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

    scp -r root@[DEVICE IP-ADDR]:/opt/mux_hevc.mp4 user1@[HOST IP-ADDR]:/workspace/Copy to clipboard

下图显示了 pipeline 执行流程：

Figure : 用于对 720p AVC、720p HEVC 和 720p YUV 摄像头流进行编码的 pipeline
            
            ![](data:image/png;base64,UklGRkA+AABXRUJQVlA4TDQ+AAAvNceSEOph3LaNJKv/sqNkZu99RsQE5AWihhtq+KnSlnxr+iSoASOgo06iS9XQEflf0ad5Sqv1/8ty5GQxR7BgQcGCgoKCDYXmNBQc2FCwYUPBhg0bNmzYsKGgYMPxvmjpOu/d++7VqF7/fa6XysARGDuEPkLOYBLwJlRYMXh7qNCL4nEnUNl4K1KBeH1EiUzTzkGsI/AGhbwVVwzeHlEAppOAt05g1iQ6gdln7qlAvP3LSyXQGTQXNHYC+5LAvr1EvD1SWGF4qwrEC1QC3ma7iXgrUrwDMNJ5sM7wG4cSEOowTBsVqVBgYNtcxwoOzu6eS/DH4GCxuFhcLBYHF4PBYjFYLBaLxWIwOFg89wPj2h492j/ZMxh8cDBYLA4Wi4PBYrBYDBaLxeJgsRgMDu6+n/2fAL/p/3uyJPmfu19xxRVXXHHFFVdcccQRR2xxxBFbXHHFq8efvLe691Z17zQDb64XQ0JaEx4cNxJCHz8aXs4MCaV/DAmxPUlIvf0oOM40JKM2lB/BceZC6gntRnLMuXrA5eNFERDOLKMmBGXFFxKON6MHpBuXgPHh7ciBw8eNgPTpcN1ICKcC1ookIF1yge1/EGl4GIZhGIaH4fAwDMNwOAx/GA6HwzD8YXj4Yaiwbdvm/4+ZdKj/E/AUm+Yn/P+D/8H/4H/wP/gf/A/+B//PzT20XYP3sY8TD+yXPJaNbmN5LyMPHGyHLtVG05oAIQ8c6srR8tDp2Nn3xCVEDrjrMc2+dLCPKcFg/z4GjgyVbru60ufTIgc8h3df/fGmWX8ALnJAxMNbE1SasCjgIvsjzsYM0Lbb/bP/IB30G3LNZf8ULdQbdt1l/yQXeiU4D7twmT/JwyzNle6f9a1Bg/UtQYP1KddgfPAf+A/8B/4D/4H/wH/gP/Af+A/8B/4D/4H/wH/gP/Af+A/8B/4D/4H/MpUc2tqR4xYZ18TB9exUyQIAIQiGIToEwVtAZBxETgIAbx/zqYavUjmy38J0CN4ComMgehIA+EYAwXdPiMuM4JuB4O0g+I2fs2+ycKAdRqNWCYJ/bPv3tS/UCGbGP3z6l6l/X/q3X/80BGYG/rHr30K/jv0299vSb45+tfXPY/9fE5gZ2b/OvfxrSGMSoBwXv6u+OPt16t+WMiAC/9DW/0Y91ZtRIx70v2/NR7x1jKiosDyi9fB+C3NB7madwSTAP/V1q6flYjQKEZD/Mveb1PJ3tfWv9oxCPHSbi8I3ACgv03/5pvCuCXq1/vKyOejupf+HJkB3L32CNwFqN3vJcRtI+tmLxDd++8YNVcJTab5KCsjuP3GD32YhevWff1/aCGbI7ncXL6wV4j8evzkYMKPc+td/npoE+jIIQVb4/7AXhRD0X968tSREMyIO5Mzb+dsIYsKnZMDuoR7emzCVXvmHcRJkY+GFtUIMv440QrD7beGFJSv8VCIOSm+HbwKQf3ESbvbOCScnbkA+PT2IooI6NeJ3RfVmyN8k//kQncJtVLUX+bcB+l4Soipf9VyqhCgboogLDSMY8ixIvF6myz3Z7T8PgVHW5HYTIKst+eWvYqvCkk0VmBkHQbZZ/GVJtB8RZ9cQrd9GvCteXh6qcLifW8JMFztMguoiSNSr6ZMn+xvJwcwoC0v79XTuya4koiAdkf8GAFUqqHl51wS1vQFZt+xOAz1kULs91W/KR0FdciuZI/oGSDgm9/eOK0opPcTKUiRGk5oO+ZJu3p0Aqm/oYSYBmGdrpxVuA8lc0JMBgMOexAnM0J7EJgFU66kpEQGzpR/+i+gOP6ah+0jo9vKeqOnMobzi9pLSQ1T17nfIAXXe0+s1AVAerR0lGNXR2qccQF5Y6hXCoBb2GwEk/Z7eRZ325E4K0JvlQr5Z43rZqm+str+j0OwyjmMpJWLlcs1skOcbCJokn5M/KzAz2ld63cUBEHFo6CEHMzNSQXMFxoLsUYEZcko+jUCWWkGTAJgMwAQA8OYdWI5ShdRJIEyn8mQcS+mhCgcaDtFsACJORxo+KTAzekdHA8Y40KMBM2O2p7WM6q2YDMAECE4EhCA4CYB3BwAiAEwCTFK+CjsRgAgA72o+eXGRYEboJAAmQDCMEcrRAL5R6lQqJZNXUE5CDMq7+7ltHACIAoAQJAffPE+0q8XxBA5kGxr6KEAlCghJBzGVYcaTU0AlSLRgZqjWuUUYks4321gAoBIFIASRKlFAFAClEgW8aX5E6lZxLNvYZGn8jvKk9FAlgdzetI5Xv02ZC1CJAhDonHg24IDe0rAD5NHamQwxR/dUhcEMYmWjEK4SBSACQJIkSgEhiFQKzIBSSaIARAFQSQLgPuUIEiFcJQpgZkAlCghBuFIAYkAvvKttBMJVogAwAypRAAIAEAEAzAiGIHj/cgTJAIxepBLRsQCoRAGIAKCSRCkAAQ4wM8JVogBMguA3Nvc72tTOe1FKiRiWntsVHcPAGCMRBmOMRMiHR7+4TmTSS1eFyQXRLELpsu8OZQUwo1tdTipMe7pBAvRELgEzGEEOQpW1v/RxoCrTdt3B6ATMjCQ3uVS67LtDWQEhUNr0XXcwFd4wyi4pz0NV6e0dt0Brk6nMXLv+pBWY0a4uvQyrtkQtcHLUGDCDGUEOQi5trUUEKmO0ysy1641WCAAyb7uu69q8ApiRaJPLRO+6VgIyv3Zd15c6QRgSbfquO5kKuD91ikeLC+IgM6ZSlem7rpQAdNl1ByPBzNDGSKXLvmtNhQjI0RfjZxEGmRutZN52XasVUJlD15eZAjO0MRIhyI1JgNyYXIGZIY0xFe5d+YVAEAvKlCshFiejVWKMUbEgddl3/S6vgABUVvZd17V5pcDM0MZIMLQxUmWm7z6VWiEecmNyhW/uEMPcUldobRioR6L3YdCehjIA/fEGj+Y0CSPIIXpOvgs7HI6CiPyfjAIzghxSehoSYEE2BQAFgCORfxZPpo0BeboMRESi7jIwozyS669bQUT+T0aBmZH1Pwsiov2qxL0GVaH93kBrs51PC09EYttKMCPIIfmR/A4YB9poAAoAOBzqbIdSRkCOVszLxZ6IxLaVYIYyaUFB+zA1CgzzbJuuPwraGuRnZ4mI/LKrEEDV14KIyF9KhXtT74b22apDmnSg8+6yJyI/1Um5FUQ0jBIMtbSivx4tEQ2/TnKEQLVuOJuPUW1hl+3oLJF/3sl82hCRvxgFxspTJxFSWzJIFp6aMuRF0HBVuG+V1XA/Fc8JUumBQm+wrMxAD1kc6K62RETN1EgwQ7ZfyJ6IyLppmYAhPwrqEshnQf3usyciu90liIOytn6RfXOH4WA75i8IrQ3EmAl6VWBmqBnZpQIz5CgeOkwWF7uaijakWT94V9eDpYUGx8Yo6FkBj2Q7lZ+uXVtmQAjkKFyPGJCHmrw7LuuBhmmOkGbtvKvrxtJGgxn/1LXy1NTLbSHIlbAwCU/l+vp4dT2lqfzx6B9eayfoeALHxsFR/QGYejpXumy760krRLRejEjiFUfv6mXhresVGOYLscL9vFwenbDbMmxYF3Y/bIxeeNHUy2XtaegkmKF/FXlq6uWxEFQc7lEKVft1kUOc59q7ut5be+4L7+p6T7ZTCPlx2BfHo7NibRBitn6u83jFdhiKuhF23v24b17rRtiLvhXoo6AfMzBMQyJNwPcuxBvq++f9yPEIMlXPdXMDGurjVE6C/Bcvmnp5dEIcDwmQ9LXw7ml5dMKuS4V4i8I/1PWDoMdSIQq7V+sXGfgbun3TlgR62ZbQUxpIN2RNiDyS78AMtXvwK3kXkKm3Fx1irZteTT5z5K8KcaALKw5gDCR2h+eGyLpVqcDMUNfGT2WstqbhsqukGV+tP0sErHXTq8lnzvqDAtTU02tnlDx9FHSUrmW5vzaWLdDTmorssOk/mH5pRSoRB9nG27QC5oJm7aUQRM38KhGALuxaTkA0fOy1LC97qg0gz0Ise60gD0vrU4mAFW5+fjlUY0PLziQwq4F+d2XAUKmnemZUdfroqclxf/I8VN9pthzC2P2mNybdUzMMi96Y1FMhQ8gW6a7K2qP1Cwlm6Kmvd9DxrD+Opelqu2+G5aw0XWGbq8ItMFpnbacg59auM/A9THp4Q30sW3QtgRg6n3pxMblWEyCbevE0y2V2ne9vsCwVzFwMqzZTVX8U4iwnsM3ik8n7WthRRuFUWL/KwN/QiYPr1dkUelrjMBaW0hAjyGWBfCuectwB5KeC3BUcUvcSAFaezjIOsqmgpQTDkk0fhnq5dVbUbYjZimWOGNAr66cZAKjO0WMbVvcSAKae0go4ORquCgCy2trSupzz9QzN5c4aALqG1iYO5LmhugRjS7Soh2K5fRXkZgmYIT9al2OS4VwBQD63+zTBP/b9qXk8AGCorqF5HkJuVgFQF2E7BTCy6Re5TQ7GyVHTKgCQP1paKHx1qt0FQndbUTpzypPSQ9W7f9shypBqAFVtaUgrANIR5SG2uCoAaufsww4M2TXNmEzi1zsFyNSTn5cKSH7x9CJvhTHuyRl0ngoD/jp0d7k7ySM2Dy7nAom7m1E6Cyil9DDhqf3ezXMV4jAwepFKABOoqxN1qwDA/Cj2aYW2vsGzQfCwWc6yCdyoAaBraK2jdrX10wz8Td1jf36E0DM0UinIJWCo9yR+ATNkKtwBfHuQn2pqxips6BIwM7qGFjoG9NRTfQIHyG9nJ50fnq39OQcjmwp3BcdpHdUnhGZ/suIsA0OXgJnRNfRZAwtBqwrMzOjTqbEuMzeVX1VgZux+puMpBuTMketkmKjPbZ63K0/NToEx8/4TeAKxrMDMUAdPR43q2h0qhJ6OtC1D/FmCGeqztecMwUprBcbC018kQs2efP4Vem8uJUzone/ctqub0hiijGMpPVS9+/0KQRYazIy5oFUGZsbW0i5EjArMDDkVfpVAnWq/0JikbhWYMWvouFNgxvuB0uqW5EdBi5OjoVdfE2cWsT/klDCRB5qhfduH0xh4Mo6lRAza2ZA8HMGT6JXYpxJB1bsbPJ3UobBPrQxIrSs1wbkCM6Ms7JdXeURb231agb+xO04jqZpECYasaTiBkXwafJrcAaquoCHV4BC3Awf6B/rtWQzkv3hyLTjEfv6AoKnJTwHZDcM5idcJmhsdnnpa6IBrwYHe0TaH+tnanQphAGiwzjCCA+WWXtso6NHZZqzAIceDBIBqLmgtgZOjVTLZQgUYpqbihPAk03k5q+m4C2kOYGZG6sldulOmEGSo2tr+7zr81dL1K1S8vEzotXo7ndMgBm2yjDJk4amTIWtBVxXwLTigWm+PEnrhfy7Bk6xzMDM6RwsNZsbYUJrdDiM/WvGzsKkEfz0Mkp3E+nOXSbz24XY6ZxDWKZIfb+C6XIdej8L16rQV/pgejEQoxzuoEPNqGxM2q4WdVuBvWzBeLE3BKIXdJmCUhVhrAGHBeNCpo4ezBt/CMgqnZ0GPVxXiSRgwM0P1RIVUp0LMNYAwAPJM5Nbz8NrTs7kNXZA34DecFYprBMx0IDdmYGasLXUSzMw4DSRyZFtb/x1ABDBBviV3AAPZblxt5tufC0/1JKelIDvUm7TPVUA7stt5ZEM0foUcf6IGocerR5vpzClPSsTwtmZL6AJ5LnfAMJ6KSo571yVAFOJ9eiMY18YSbTX4a2LjPBaDZ5E4iDbTWUEpJWK48rooKFDjgyN/XM9Dt80NmpekGhsi4barl1MF8K0NEU6QPctvY2QDuQQqJd+BkW1omOXBnqjOc61iAeYyUDGrwHcAHI6W1icFDjgSeQhDD/Rg9JqaLg92RNs8z5Se0oT16TZKR1/e5W93wG7uqf4kwYGFpz4JU4WlNvmLsGMeNIK8yXUygf7RNjNAHub1nsgOrhGTqdO0EETk3fKcK6B0NOFK4Suj6dpTHmJYf10ktKZN7snlB+fXZZ7n+e7ZDmmuJb4CaimIevV10XCTXPCC0NQso0RMArWz3xZ6woIeu4Hi+1RCd88DEd1gqBeHCnf1AzWCmlbhWxeMBYkd5AM1FRgfPPn6GHwl8sfjVMeB2q29rXsJvgOombN2YQAOeSJxish+ouF68uTrY7AgGo7Hv+hqSuKYxu30bRhH7u0O6nAUdttKcMjU04sMYWwtzfQD2foYSmSPx2czQf5sXQfZF9Yf065vd7N6IgayU7f62RPRfp4DxpFfpXEP4PsShitnI6EnU8Z4ciYVwh2D9UDCHde9+gqcCku0kfc1TIJ2D/P++agKrWlyGqhZpTHPrQKS/Hr+0Qki4WYV7ojcp188PelvY5REF7RWXMCME8X84QciqvMYSA5PQjzvJPgOINOG/FmDwzEn20UV1LQtxfzhByI65nIkcalkXHUb2St58zYH2dVCLMoEHPZ+oGkVp/v7nmL+QET70wTmZypafDjaYWokAJTbyZgBlZnd+60nMZPIHPlSxr43JYHa6arQU1MF6uTtY74SFP0DEQ3nNw/VVlBj/ahwLwufuxUIPZkiH9wNXneVjJmAGYDUZb9ylo47dVefpD5akUp8+0IV1MgL+TKQf4zeEg2fP56zOIfa+j8ZBb4DJNOBmk6Cozqy24jvPTltPkYfiZrPH8cMnaBNhvi3oI6WThEIMhZUV9h9mitwROuozkOgHNGp+uVj5GdL4vPHX/IJyoZqow6elt8DzHwbiJb64mmhoWpLrUJcvie9dysQenq6JJ0Q66z/GPnsSNSfV+0dpXsaJ4FaeVoe9jTs7mWXuoHQU1Mk397AHRRuVWX9z7b5dGc50A40HBS+bcEYSXwabK0CKos+EB2zTCIKbW39VAN8B1DpQMNVgmPIhvY5mBnJaO2jUll0T7TMMgm0jtwBHERXv87kbWDlaVEhgLR+Pay6jNUX1p8zgKPkXIg+QaAdyGtUWaQW5HVWqViQL8KupRytWClw4PQ0CcpFvcrBzEDvaKOBi6dFBWZmqOf6VeOe5Ag9U7pUa+tTKbPI8kfbnHUlcTf/ttZQmgWQFxHdQEOp3guqNe5hjtDTU0T/IvxFgpkZZlEvStkdj10CZkAvxL5L3gCVeqrzb2FUnhoSL2BmRswT0RYARyD/KOz8e8S+jdaR7SRiMiMl+ywBIHc0fELclmgNgCHPwj4bgIH8mXyHWzGF9X0CMKrCknEbTAXzRWbtVCMu41NDtQGAaisolYiZCPIKQMC6HcCAOZLrIGeWnisEzdpPpLd2uCoEzgOlFZA78n0CMHD15OR96TjpYOcaYKjD3j5qxNQfRfOiAL6b3tmjAYByKygAU1gaJeTR2oXE/WvGFFG74gYPswTMkLOB1n9HN9iFBhgot8Id1N0xskcrLhLftmBsiGifhcQMY47R7UkU65gHdRvqj5b8ch0zA6NqSGx3Sl0LK+YKHB3GzAyzJVF/klDtVtDa3ArjvCef5gqno6C1ZCyZehL1OuZOAXItbN1LVR4F/aTB0RHMAbIPZwN5qIVfSKBtaLjspDRjLWgSxtTTaycBeW7s0CowxoH81CjIcSCagd9VkCgOGlXX0PCiwJFRfEf6aMXiJD+MTtAPZAC5FfSUgVEO5GcK70QgR3+DYWUA/atdY5sXidPR+k2poE7P3i5yvAGM3UD+k8K3Lk5EdgO+o2xFRGRjnuVtfHBEZOPmYIZ+JSu8FyS2Gnw76vREJLz3wtLxBL4dmXoSwnth6VGjwVb5MxGRjdklYMiFJ+G9IHKlujUrSAjvBYl1DoYcBVnhvRDeucmyHwUJ770XJGYSzJDjnqzw3guiVL7D8FZ47wX5VILfMEbnyAovhFg1FJh62pdgZpwFDebdCEOnA91AeC8sDWcJqL6wVnjvhaXtSb0ZKvXkzLcuGIXY7yYrvXgOW/mHEfnCi/jvJcqjL04RTqw1WicmDDDkahBCiGEEOJ4X8xAGqvFBCCuEe6/BjA9bX+zCDoV/zsEMlD97YYVo3ksw46z8Qwxftyi3XsQPMNToRPAiAY61F02UmB9ehRCiSSWYGbIrRLA+nJ79MfCjd2GManRCWCvEcqfAzAyYrRfCCrHcKfDb3LnxEatBfEpCNl60CIg+HYQQojgocKw/eTcLq/08rC/8KuzF+RDVF0IIMXTy6IXB1XkxypDn/OzixS9+1uUNgw9rRFFBnRoRYKjT1gshxH69U2CGKj8OQtxACJdqgCH/tBedgvzRi2tE7R8MUNVeBBjyyfuFxLctGAB4YgDgIIKMW2QEORRBxuQcBJAfegPwhADAkQB0OzsYCTAzI8ihCHIQkGbWnyTAbzeMIIciyLhFZmYA+vCpTACOjyBHLJQyh84ogIOALPuuzBDOjCCHA9K0s9kuTwAOB5TpZqccAL/NMYIcRJCDAMAB3ypZdgcNgGMjlJkZQQ4iyEEEmRmoTN+bBKGMUA66Uzb4AiPIzAgyQpmZAciy704aADMzAF32Y19mADMzQhmhHESQGUEOIpS/dfH1DwB81wjlu0Uov7HW7U1GkG87AqEcjVC+bURyXITyV5cV7jAMofxVRSh/jbPFnSKUYyKc/2u/Jsh/zSx0t1H8Xzsr8b2Wme6n4L9rRMyGZvXuaz40u98zp8w4tuB3W4zD+KJ/vxwjyO+6GAD498vdDxnoHgz+A/+B/8B/4D/wH/jvD/77g//Af+A/8B/4D/wH/gP/gf/Af+A/8B/4z4aB/S0B+1sB9qcb88/ODNC6wf6DtNNviK4N9k+RUG/Y+Qb702yX8w3mTzDPxijkgst0qyvkgYpuZeSCqkWpMvJANftSbJd4YK5Jt/t/XeKBv17QNB9R2SnxwF5VU9lZ3ilxwO/Mvtjogv/Af+A/8B/4D/wH/gP/gf/Af+A/8B/4D/wH/gP/gf/Af+A/8B/4D/wH/gP/gf/Af+A/8B/470SuiruHygXXHYtS7azxwD3PZTsjSUoYuWAhsCjrSQB5YPjPjCSIQ9Q44Em0Kh1MsTzC/gOk+NwMJS4HfJqF+Z/L/m/PXNJgfovTYH3wny3C2bJCDvjrLtU6IfLA26p0cuZD5IArczJuU4scsI8J7776402zAi5yQMQLgkoTFgVcZH/EORrfcNn/DPU2XPZPcqHXyT+4zP/luRsN1rcEDdanXIPxwX/gP/Af+A/8Z6fWGctGzHpoqxOS8wZs2uksZcn5iaq20Qm0NQX/gf/Af+C/P/jvD/4D/4H/wH/gP/Af+G8OAACEIBiGyDAEbwGRsRAehkm/away/NfQCcwMpUuTgZkB9f3uemiNBJgZ0pRGYhJAmvZwKHOFKCBv+0NrFAJQuoxrJL5bBup0bDYh2Xh87sEMlY9fSO2aYjttJZiRr44bMwmS3XRbNF9a/XzOEQY9PrumKbbnEgHZHeNezHfNfD+/AW1D9IWGEQy1Ww/ki2Kw4vWlAqOsye0mQDLWgppH58lvTwhAbzxZ9zqQ35ZgRjWluPXpu2Ug33uayKxv4LfdbneYNuR6hdvpGhqm17L9tBb02yoDM5KNJde1p35D4jkDI1vQfjONnOnvlIG6NvTDBJBnf4PnDwpAdh7o2dwK8kcrxgwA8q2158BVUHMAAPNEQw+GXpM7VZFS/b4oABMAwGQAwgDEAzAZgAgA71LyJ9HQJGZJ7pMCM8Ms6Us7xAEQ0Q201GBmxkFQrQBVkzgrMCOZkVgEnuhVIyZHA5gMwAQAfj8RgMRUACIAqNxUABBApMwlwAyoTAMIA6BNBgAhCJd5BWYGkJgKwDsHBCMQDEG2EsU40dXR1oAD1YJEFwVInQAILDydZZj25BPACPIazMyoyjIHIy+oluAJASDTCkAIIqVOAEQAULkGgLcdBG8D4bEQHoEJZwEA4F0UYjIj+IYAwO0g+BYA5NNj4VwxzRECndaFc67etAmYkaXFspfd2rl6agA9PjlXnzUC+LCqnXPFvKvAzGiXxUqXq9rNJID8L8fCuWKa4x0D1LYodgiBXBbHE5gZySc/dLuJZG60uo3qZVm4Yr1TYIY2RoJD8rCUbjAHhwIAM0xDR4TGQNIunpx7Xc80wIz8UqzLarYuXLHeJQhBdl7XzhWbk8LbDZQ2psJEgN713U4rIAKQbdcdjAICkCb2KZf7Iev7HO+cANN1nZHG5AqQxuQKbwS0MRK3AZUbo3Dvg5o5cQMiItHMwMy4Np5CRbNIwNCfaZj+370lIrE95R+9JSL/MQczZk5QUOy3BszoG1p2tSA6S6jOeUtEJJoR7xYYC0uLiJ0lJ0NKJxbyNAkjyCH5Mw192Ph5b4nINp0EMwBw2M6TU8AfyY6I5CCMF2uVnfrD3wGEQKeNICKyftsqMMojufHjYInINjMJZsbp6C0RkRhWCdhGp00xmwQwKzfs90MzLxVCkHT14P0wrE8KgasbYrqvcz9U56HoFN4xoVo0e9+cy2KoK+BUDFv5RkD+Hzf0CrdRHZtBvwWkA9H803VcCvItGGYgse6u1z4daH8OE3sxLGapI/HzWjSX2fRLIz+CcSjIr18O17O7gf2TRkizt+Knxy7BeSBad9dxKchf8Y6hFOQTMDOSFYkpmBl6bV9zTBYX3ZdGj6cQ70Uz72ZPggoDjo25pYUCChKt6uZuKBYlEPhgxfb/Pnjv9/VBgZmRfxTUrPrr+1dri0OY96KZz2ZPgtwHMOPqLD2Oh9l8IPFeuWxzscM4AVRXCKLBE4lhJsHMqBZ7S2KwZIerAjM6QTH9I7wPqh+oeXnXBLXyRCTS3UAPGdRuT3X1hnwU1CW3kjmi/N6HfCDRSUCpjsgBakpipQBAdoJqiQDdYJsrqN4TiXWuoF48zXMgtWKUAFT7Sq9lGIlUJwrIGxIzCSjVWXLvGBgF0SFEDrQvwQw52uaAu0D+TPYsQ4gWuQKqo6WZRBy0nkQOhiVx+quwRGSHX60pMFRLZC2F7i8aDNV5+vmkAKUvlhYaAaKNUUC1tTRKQB4FTTMFqNNAPmOutrZ+YZIkXw3UtGCGunjyZy2r1NPeBEZB7vF3pfDl7p2fqe27qHwgsbju8nIg9y5hewO6JGAGMAivkdS++acxMDOgH8nlIWKrAYZZklhkAGP3SMcSekP7TwAYyeH9iw4TMwmAsRR0kWAG0AiR4x3DzNI65Er2CGaonfcr8B1AL6x9NuCASDOAGe8HmlYxADOQfa9CqBH19NAtBImVApKeSNQv7anbCvKrBCif6EvrAGbgw5b8iwqIqQaYMQ60yoBxoKUGmIFnLw6rLlNBr61NKwBQ6Z6eczAOjvwhAYCVp6kEYyWoREx+twf9UdC7qOv+BkuJ6DeIEcpvKagaEjk4iLwsJWIqpZf0sAsZRjAzzDO5T2BmmC097pCsiOalVAjnkKUGM6N6IGHAQeRlWb1rkAMJCUayId8F8p/s/1Z3AOiFsMcTOMTtwMyM/kujtY6CKhsSFwUO2acKgOo8DW1gcKkEADl6ch3Qe1prhJ8FrbKAa8HMjN7RWgNLQQcFZmbostRug30iQ64F1TswM8McyZVgzAWlFZgZpdsvKzDmlnJwbABghMdAZBiCjCAzIzIOIt/2AIARzswIDQMARngMyJn3QxRiMzPCQwAgAgCYASAMwXcMwMyLqQQ4wBMgMgrRIRxgZgBghE+E4D3NDNTIMAYAZgZkpvNT348/UdPe2pqKFhj3RPvlWGqpAJ7ANNRkYQwA/G6BsSDqwKj21EgwqtUNXAsgDJgEysytqFvwLSyjIA8N+U0CZihBtgeYGXJK9lEhnJkZ+k+W5okayS7yyLGheT7RNoesyRpwKAA0GEhVWusqAZjRvTYrHZZtSbRA/kr+pEKUKUsFxtKSBANRkFkmoSqttUwQBshMa60zCTAzlNSVgsx0pgDITOdaVwoIA2SVfa8zqfB2B5lpiUTqXFcKjKTSWlcAM0NmmYKstM6kQgRU64bFjyIMqtJSKZlpXSVgKKm1rhSYGTLTCUJQaa2ASmuJAFSmM4l3Csh06sUqzyRUpivEAmSltc6kQgigKq21zqRCADLTCRgy0wmU1FpnCogHmelM4X523dOfo8IhP5yXgsLvLEsbQUSiWB20wgTXgR6riK9dayF8X5jjJGgJRk/iAkbSCT+VwZboKGWCeJDt0w38X0/gu0A1DrRPJZiZ0ZCowEEYQU6D4+LqaZtXKU24LW8jL6jJI95ci5f1G+eb5UwrMDJjtArTYV1Dy+8RlxkF+QRQCkAASf/4mGaHzf/4YjPLEIA8pY9O2OFx1VZgRj59/GObj0/+/xnIcvrnwQ4/LbtcIQClx/mjbR4XbYW3u9nT4yfdb5x9WLcSWTdvxE8bo8BQ08fH8vtx2ewfVzuJCPPs56fPUeX8cWp209oPTy8asp2++mbZSzBjfPrbNUHI4vFvOeTl8W+LDIHy6W9/7hTeIaBa/jTcgIafHqcyX/5tLeMgMePc+ebP07YCM0PpT3PnxX+4x1VbgRny/Pi3q4KcPv5tp7tNIf7nqdMKcZBNHx8X+T2t87SeANVZkHfFz8djvb8zhrwu6sZbInE8SMTr9rSWb0N+s1YMhBlUQUIj2dL+BEbuaJ+OwRWRG8eDjIWqc7RfGPAdAN9fBDWjAofUJExE5qjZTXByVJ/0iuxQxN3cysnRT/cjxyHEfjEdxH4Q5C85mBHkkLImdwLSPU0rVWmTawUOwpGrzOl6OBkJMEOOVixTL4bGk1/kYEY1DlYMTTN4GtIMDPNsm/RHT7Q1cuZIDE2zt/TzSYEZsj0KOzSNJzH9O+5NvkOidKDp/xnEsLfUHPKPXgx7ImcCSyvGtfDNIGwzqxBAlfr6lH+Magt7TGvhB0E+NaMT+0HQMJNgrDx1Mqy2ZICDs/QiwaiO1i4z8H0rECTLnBdEwu/nlRnoIYsB+ekoxNAMnpo0BzPMwt/AD83gaZ9qMORHQV0C+SzofBnEMAgSKx0H+hdv6526p1339BgPKhXWpW2uAP3Xu2MAup9ui72lYjdBO9Bj9VaUxSRQO320uDAcYyQ7Q+5trcA4UcwffiCiOo8DnTbUTDX4DqDKrbDFQYHD1iQOUY80tAiNKF+pPlUp+YvJY2p5G3lBw/1oLNv9rWPWiSC8dz+Os0VDw0yBYyI5D7TOgYWgl/ww3RbHj50GmKH25MaCiERxNgoh1vvXj7Nu+mrFpgKSvrHuMuv77vJArlMI+GFwx+1Zt6/kFmPfv38UNNeBvqFh/dL3q8LSjxXuS9nXRQ6RBl9sZu+Pgp62/nUxe19bWiQI0N4fp5+6S0P7MQEzkn5oXpSO5/fN/zuPm4Hc9sGtz+N6oGN5Oyr1NJRgnAW5EnzvGlE5+21BLvk+PYob1NO0kxNAdoNtNi99t3LCrzSQpXtfT2d9t2hs00nEG3yxGcePg/WHBBHI/iRsfVLg+5kZqKkiEMwE+Q4A+E2IluW5sHSWiJU31GQRAPA2g5gEVsayHT0ex3B6T0c1I/ECZpjCRTZE3rmNjoF85W0xZuA7aWsrtjsFjkjJphH6gRoDeehbhbB2oK1WM0sXifi3IGsSZQQAWJcllRtN2p2wEOYjv2wVIFNPCx0Hqn2l/acE2FpKp4MYBkFiUSowKk+WBuecILttw0hsTwCSa0GuB/TCDucEAKqzp4UOIb+5VgCm3o4SAE5/HgoDhj4Kn2YAcCqsnd2bejd8p9lyCCSObQKYwpLdlgowA3kdMc0AyHGwhQFDnWq/qDCBdWMF6I+CbNFJQH8hQnQJboFRPQt6rlA2NHTqHlZW7fXoWkIxgNGLVAKYpDyK5pwBkH19A9dJ7J7szzsFoErdcK4m8OtTAiS/7Gmho/TU2+NJge9p0pHYheHQdRVasjU4CL28M33odhLMgDoPdNHxpCPRKgRw7boKbzFSIiaB+nrkGIuxIWGO1OiAbKPfE71e21JGQU+9rXsJvgucais2OcBRpSAnEVIKKiTMQM6EQI7Wfk5w2NPyAzgI03Wlug3MBc0kAjh1Xe5aGFS5+YUJC2E2sSwBZrSvtCxjALuj8CsNxpbIDcfV7CWtBW01GMaT2I59208LsnWOgH0twcyQoxdzCZ3+dWrAzIxdTVsTIhY5wFAbK7oEYMZhHDMw3u9prcHMjE6Qy3BfUqh6na5DnONJgRlbQccPCsyoLZUhYiHBzKie7f6sAL3wTyUmcTMJZox7cp0EM9I9natbYZja2k4/WzGV4HsYomo3Ww6ZmCN4Enn2fqPBzJDjcIO1waGwyw8KYJhubOUEc6PAjNbZxzxCT73dlgp8T2NcBK0rMDPkQD5HT/YJYAaS/uHOTjUdSzAz8NLQNIvFWAlaZwHIhkT+dTMa9YeWsdNGGUuJmARua27mjbWzdiHsRzAzI+aJaItgGKr3A732CtG3gnwp7FwjJkNtSXQAM+SF/AXQSxrOCszA6WdqZoB5tkMqwcyQKyvO8la6hmoDMENtBV2tjOeh2skXJyyEuYb3YGbG6Yke2yio3VaITQ4OaVZGAdjV1qYSyBfzaQ4A6upIrFRAbFSAUTqqDZTWlUJouaTjKaTpwcyMhaDlJyMRzownaw8JQqUj2t2fPA/VX7KH1sshzCjBzFh4mkkwM54FtWEtOJB0QvxVQo5716mJng2YGd0DLXIwM8aG0ux2GF1DbiVoq8H3MunhDd/5xLZDk3wrXK8QejreoDiotrbNdKcVwjneQYGZYQr7YMJ2U0/bUoHvb8aRSHMAOiU6Ah8sDb0GVP5S0J1lH+0+/TsAVW6F6JIJ8sKKaQ5Any0dwV8zllLGcRxLiVhZWjFWUpAnfwqJGcbMUW1Bdjvrog1uZepJTLuYEoydJ9dLIHs/2FcDyG5vXVcByW4u/CIDkt6RGzUA/VJQ0eJW5FzY+U4BshvoITNUUHwHoQ/Mx7O307miPCk9VKWl00HbVGNYuaXiGgHZ18JvDDhgKc0AZsanPQ0aUFpLMDNDdZaaKmQRkR/JtQjK8tCN5/PCUb0LO4R1jmyzXL3stAKYIQsS5y6ysNR9haLiOwhd7G6nc0d5UnqocvkFh0QXT13YWtBVBXwYo/RUS9W6/VSCJ1nnIZ8cLfTdqdSTIHcCfz26Q9S+jNn9eX8HiYvd7XRWUErpoeplu9UKNUxxgybtws+1dbMk/+jJP27O/xoyEgDf0qsdItaeaJaA72+MWUNinc7ezz25HSDXZB++kHRcbRvv7wyHgobn9OUlPXq7ycGxGJ2zYv2X2fu5p6b92hmN+l7L2GmjjKX0UJVGVIrLhmKMRFTLu5JnQdY3MUd5G/rVkhiamBoMdR7ILc7nzd66DszIpsK6xTheaiuWJzAjOzfUfCHpy/nHhpqxuhXG6UnYejWOi4b2nTLUgeXMlUmd66WzgjKOpfRQlUZUykgWZKOzw8qokLmgqwIHpCM6KQQ5FNVA+3KCv38h9qEDQ88uRzd4Ck5UjbUgIl//eD4lYBhHdmgiPVGq8JVp7pQJnRLO9dIZooxjKT1UufnxGhW6GE9Om61fGgBRePMY2VYQvaivjTOLWCkTOSX86146lSfjWEoPb+iNqITUODUkhiZ88DScpTotmhsQiWa56rTCnVlLdPz+ficPa0t28CS2BzDDrD2R9STW4+PdyU9HT2LYCxoWRk0kD2tBdvAktj346ybQltHPopQeqlJ+4c26YzC9JzGC70gvaMLzrewamjAHM2TniLwgcTxIMDN0WlvynqhZlQrMDN0dBYnBk6hnGnw7qpwORHtP9vFFomGk6NI8ofNr9XSWp0IM280cWZD/paHmrAEOrDx1MoRxtNQpcEzIR/LdBHpumw4wi8H6+gtZTaebZiKGPI0bJ4jI1zMJlI5E4+J+lRZGo84TOv+KlXoak8BUiGH97gnrlMk9OTN68TQG09r69diV+ArI3xaWaPz6eHuCGV/xz3kSX66t1NOY8IRTIPq1Jj12exKNi/k6Sqi8n24HIrpBs9kp3JVY1dZOJe5xDOR9+vn5edoZBWZG3k+fnz+nXS77dMwBeUjHMqTq09GEVH06y8GQpks/Pz8v0oNWYIYZ008yjIG8Tz8/P087o95uPFQ7811fa6MxZulZT6bTtAuRbTqWqPp0wpOC7tIXHWbG9JOEGdMJJZgZatdNn5+nM6PAQcjTy+r5+TK2GuAgEtOli+cfV7NSghm6S1++DzNj2lVgBrL2fHl+vsxKCTaU8IkdVNNZU56UiGF7PXJuUySBWezJzTJwKM4DpVXEs6CZQjCqJt9PkG/JHZAvvDh2ZZ5VVXucjIFEn7rp1hM11wS5I9/t4ubgr4zjE3u8eDWdOdX3kqREDGsvuk7oAl1KT69mJawfgntB1g9uVG8cVOqJqDl9bWycxy2fzNW0FlBKiZgE1orVoECNsiHX7WKeNBhAZa7jZydIbMydTfWuoeGgcI9jBqTO80oBHASqPNdSAVJKBYaUUgUYUkoVYEgpFZgBVek811IBzAwlpQRHA1LneaUAfqtRO5cu+Hqy4aSU4ImUlDLASKRUgJw0AUNKqcKUlBJQclJwEFBVrisFcDiQZLnWEuBIQEmd60wBzMyQUqowJaUEBwGp81wrgN8syo6oKA8x/PDdkaM1UVDOPR0PEhzRf2m01BG1pVYl5zSViGhobyYwr/Raoh2obhWC5XYihKsqPxwFpRWS2toSsfmro+naUx5iWCtWhdZ0gTp4sdTvX12kJzu4P3d3NPU0m+zwYJupoCeNr4eGm+SCF4SmZhklYmV5KxDap4epb1DsFG5T6lPqrDuou/oAdfb0mt/vmBHK0QhlBgBmBgAOBQAOBQAOIpJDAYBjI5S/bi3GpVxn09FTG40B8OQAwKEAwIyJmRkAOBQAmDExRyKU4yKUYyOcwwGAQwGAIxHKbyytMKy/oyq0JgvMxtO2leAoXdv9SYGZob80ohw4et9GtIIaGQvq4Omok5kQCwlm5ltAPk67DAwAXUNzDSwFjRIcxPvpVOPehOHaViD0ZLrIqfAXmZnI69YO0zKvcDfngc5VAEkE8trSS7a1YpXgXoZJYKkbCK1por8QMYwSzMzQs+loZJumOwUGkG/EvkvuKgeqrbULifvdfdtaiHORo6c33NsppcKVYiD0lASB/sXTsVWIZsZ5oFUWcva0rICVoLkCM0NuSaQIWVYhemGHs5KjtQsVgByHyZ79b6sSzMyBVQYcGvrSDMDM0I1v5L0pCTy3+2ahp6aDeFEI5I6aHWLqj6J5UQDfTefoowYzknSgAJK5oHUGM5DvFO5h/uXWhIXQkymSfBpu8L8nBWagrf3aJF2zTyWYGfqzaHp1d4xTQ75L8A3dcXK7rQVf6GlJ0jXkpycTLcHIX8mnFYBZQ/6kgHwgkSYAsrmwrzqE/NoAqH618XTUwEFQcQAAPR3sRMlGiF80AJitoE4CyUJQvVMA9NbSRt2X7m75Qk9PBxpSCUBvhV9IcGQU31FZ26aTQL4Y6IeQ854GA8Yo6Esz97Bm5OhpKQL9UYjtTgHqtBV+KnEobuA6CUCOD/Z4eiNU6smZ/84jhJ4hQfTCEvl9zD4Bo3VWuMV0uydxlmBGK0gUl3HdCBqu4BASzXZ1qT19aZ0C8i/EWv+6mh4HIcQkjF1Nwi3O47wRtNBghjkK65fp+DxYetTge5LQM6YEiWaebpywjzn4TVMrb/dP63oQ/+OJDNA+WHqRYMijtVuJe5fQM6QI4/S/NxDN86/30udGiLUBqnRvh+N0nNaemk7iDWBUT9auJf77zswJYrY0YZeAGeZJkLWWmoMEMzPaV0tWWLLLHBwi6qW11pKtTwrM+LAkImtJLN8fJ2K0tSArhCWxycHMDHn2ZIWwRGsNvi8dJx3EwpEVlsRGg980Rr7xZC3RH01tyUDXlpYZmBlmIJEmuG/NmCYMnQ50AyEs7S9GgaHTgawQlqjoJPhNYJwG8rME/61LtuexDNP9ucuhP50nNArMDLkb18tVpwEOBfp0uZyfTwBHLOQuXf51epAAMzPkYbFcztM2yfpzp4HqcJ7lYQzZrpbL5Tw1ChwK6G66XK7f5wC/1Z3Gc5mEtOPZqJDD+3OOgG9ld1ku050Cx5Lt+5cPYGbo7nyoQszs3MqQ8uW8k2CGai/L5bSV6M7nDKfxfM7BQVzfn0f5rqEc358UGNl4nklAj+cuATND5d1quZzPjAKYGdDdYrlcXvoMYIa6jmejkBzGcw4OVN15rADZnc8ywGjH80z+ty5GkEMRZNwiBxHJMRHOwTCFcA7HhMwIciRicjQi+SvLCIwgBxHkIABwGCI5PoIcRJCDCHIQQWZmRDIAMIIcjiC/W2AEmRlBZgQ5iJgcjmgOIpQR5FAEmRHkUAT5v3V9XUbxf+2scIcRfK9li3s3+O/EVVQ738zA77r+//nG/H45RpDfcTGC/Pvl7ofscx8G/4H/wH/gP/Af+A/8B/4D/4H/wH/gP/DfCXwRNteyzSmUSRriO4RdTqBJOqKS8AT+A/+B/+ByHNDasH/mkn6uHLCPycJ8+Znsfz5DSQm5YMWqrFeQBwb5jCTRNhfcFBbF39zmga3x6hlJeDRJZgXBfxnT2N8KsD/dmH+ORl0hF6RbGfkgrfpDRi44J6NTKvDA0suptlYu8MBcpKl87OyvKBc4YG5ORgZt8B/4D/wH/gP/gf/Af+A/8B/4D/wH/gP/gf/Af+A/8B/4D/wH/gP/gf/Af+A/8B/4D/wH/gP/gf/Af+A/+7NuvcwD21u2C/MKeaCat13I4yCZy/634j9tGRqsD/4D/4H/wH/gP/Af+A/8B/4D/4H/wH/gP/Af+A/8B/4D//3Bf+A/8B/470QBEHzzELwVBG8HAL5TBjI3mcKbhkQbneAWILXRCrcBmZsM3ynT/rVIszcvnxfzD7dSLoqLuZ3DsXgv8V0yvaPP+s37UNDr7lZ2NW3L2+kGWv3BSUpmUn2HCoAIAGEAEILIEACIAjAJwqMAZkZoHITGQXgYI8jMAJgROhngunYhUEohACilEIBSSoEZUEkiZaIUwAyllEIYlFJAHEAlUspEASFQCoBKZKIUIgCVyETFAJRKpEwUgBClFJihlAKUSmSigAmg1Oqqaw+C/vFxHkByeHwaA9Dp43IEQ5bTnzyRr1OjADk+Pr5IBJCkj4+9jIGsWzY3IHLLvgIzo3t87JLToiDxdJYIQdWvGzssu50LgcrfP3qyzXqmFZjx4fI4zYFy8Zjm+fnJC3cxCrFglo93/H/VtQcpLXkNZlQbsk8KzDAFNR2QpZ7Efhi8oOYlAWYDLU1YWVPTIgrlo7V+P+y9pUcNZpwtTTtvvRdkj38HMyNfCev3XvhmH4A6OLJ+GLylulVg7GralsC1oO3sKIT3lr60Q4IYMIUVHzrlNuxBEkf+EMgbIlcGdoLqHHL01i263e5lM1DdAmZLQxc2DvRRRyF/tOLp/aHsz7Wli0SIo+F4nq0eSKwUGHpOoj4fZpdCUEj5SMMyvbbnJ0/PZoLB+9fVmD4KespjoHTWL065DZsQtSKxAkMdiGg/giFHEp8VzBO5TgGATIVNFVQqaCrBjGpuRZfEOO9prRHMGxJZmHU9AJwEPVRA0glxNACUWYuA6qxYVADwYe3r6wQ0pBqAPlrbKkSUtfUr6TZsQhg7a2sFyAuJQSwVoD9T8wJ8WNcrDWZm9AMtKuBa0FMZaF/pWIKj0mPdKjAzY2upDHM7MDPkKw0fgLygpgczA6ULyDP5aQIwZJueywmGsQIzY+VpJsOqU239VKJhHyIb2mtAO1ssyOWAcfRqAJnnGqFJ19A6B/RHO3SBdG/TKo7Oc4lQ+UdLvUIgBYesaX+FaolqGWB8KEJGS/UnIxHO8dYGHBgHSquQy7W2PpVgG5FkQb6H2lmf9nbogFaIZwkGgKps+64b/+hpa8CYDTStgGxtmxYcxQBUvrt23Sx1RLNJ5rQ/IOlIbMCx0DqiYZt2J60AnuA5n+ypsPSgwd9BIapHiwtzMA4kppApNWU+iA3kSMMZzEDeTY+Np9CQD1t6OgGHgjZ5vGQ3fiGusRR6OzIlP52kmtWeiPzrYjxJ3JklQWJM8B0U/v2vuLsqzKEH+6iqR1vLbE2vWi/IncBQ5WZvh/oL2VzStQ+TqfCdUlPvZ0kcyFktrNtuNtPU2dtakU8nYMjd+cfCE5GoR427IrfaU7P7Toq86g/5S+tVYQa5piEvhZ9CdtT0prBLCYZZCr/sSq0lDi6EcShopfMt1SU4zthQk16N1gnm4rZS8tNJGFC6fVktB6JmluCOHrrqT4K2GewoEFWh3oyE8VRHvhtpaIHS+0Ur9ikYqhP09AGhMfTG1rveUVrFqmprR4nQ25uR2EwQXZn+r4IW+q7mFfLa2jRx7Sikh1hpfyISBmPkXqyP5CpAP1k3JdeCkU3JT8HBGIxx8ONFNAdwnJ2jxoCDt6dasnWFkJMLZP35kwYzoLoH2pZ3tZJAv6ehtR1YyY5GNXv+LyillIiVXjZaMph8soMXCzDkexIN/baowNAX8inADOipjyqPVDtam3itI5cHgJOzt4S8oKYHM5AvRCD/uK+vYGbGwdE6fxPkL4LqG11bgU4lTABJwOzhDZ6M41hKRL/2a4OpkYj+89GDoXaCyK/ADDmSPZ4UoMrLQFHJVAgrRhkvL0icKwDyU23ptuRItt4B6sPGU0CmJOYGAPKNsFP5BjB0be1rV107gfHqxbvNf38bZRxLiZgSzraeayyGETcvajSYkT8SPRzAzCgfSbjldPXkvBARjIMjet2BY6l0T0OxSOf1IMRtMfInEm4+XTvvfQDllvzrPH2/ePT2ryX4DWBcPV38uq2AFgQMllBKiZgSHk0aHTu7zhtNPt68xBrMjGpKVGchSVsTWS/ssEqbGHpOtNIToJp6IuEF/dQv7W0x8osg4a1Yz1yI2m0FCe+F9ZtSvSHqIsSfb3TtBEg4YZFHiZgS7lznaG08ZQ5XE6K+PxxKcBBKd5vHp8VYSt0eShnCSMXQg8N0e/iQgCHL9Olxveq1Kg8HDUZ+OORhqjxcNZgZVZuun1a9lrvDrgJDZe10/fi4TlsJMKPaHUoJZLtDKcPy9mAUoNuDUWBmVNevf92GAsX9wdUfbz3ZaIwgBxHkcEAlMlEK4RxE/kzPJoIRZGZAJTJRCGdmAOBQBDkIqCRRCGdmACqRMlEABxFkRpBDEWRGkIMINuwmdn7o62kNd/sI5WgAGAfxoqLiIsh3DgAcH6H8NW2X4AS+niExJoWSsi/oWILvxXYJx0mqfrHd034mv2spJSKfZuDvWJoVrj5r8HctVcZIgL9riQGA7882Ivds8B/4D/wH/vuD/8B/4D/wH/gP/Af+A/+B/8B/4D/wH/gP/Af+A/+B/07UhP3tGa4/yf7X2zA0K8gDw47tAvgf/A/+B//beAI=)

## 三路流 - 来自实时源的 720p AVC MP4、720p AVC MPEGTS 和 720p AVC MP4 流

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

该用例使用来自摄像头的三路 720p 流进行编码。每路视频流都编码为 H.264 并复用到不同的文件中 - 两路为 MP4，一路为 MPEGTS。

运行 pipeline：

    gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=preview video_1::type=video ! 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/mux1.mp4" camsrc. ! 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 ! mpegtsmux name=muxer ! queue ! filesink location="/opt/mux_mpegts.mp4" camsrc. ! video/x-raw,format=NV12_Q08C,width=1280,height=720,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=4 output-io-mode=5 ! queue ! h265parse ! mp4mux ! queue ! filesink location="/opt/mux3.mp4"Copy to clipboard

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

使用以下 `scp` 命令从设备中拉取录制的内容，然后使用媒体播放器在主机上播放这些内容。

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

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

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

下图显示了 pipeline 执行流程：

Figure : 用于对 720p AVC MP4、720p AVC MPEGTS 和 720p AVC MP4 摄像头流进行编码的 pipeline
            
            ![](data:image/png;base64,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)

## 三路流 – 来自实时源的 1080p AVC 文件保存、1080p AVC RTSP 和 1080p YUV 流

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

用例使用来自摄像头的三路 1080p 流。两路流编码为 H.264。第一个数据流被多路复用并保存到文件中。第二路流通过 RTSP 流在网络上发送。第三个流被发送到显示器。

运行 pipeline：

    # Run RTSP server in a separate console on target with udpsrc (can be run in backround as service):
    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

    # Run the pipeline in same or another console on target:
    gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,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/mux.mp4" camsrc. ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! queue ! h264parse config-interval=-1 ! rtph264pay pt=96 ! udpsink host=<ip_address> port=8554 camsrc. ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! waylandsink fullscreen=trueCopy to clipboard

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

使用以下 `scp` 命令从设备中拉取录制的内容，然后在主机上播放这些内容。

    scp -r root@[DEVICE IP-ADDR]:/opt/mux.mp4 user1@[HOST IP-ADDR]:/workspace/Copy to clipboard

您可以在任何媒体播放器上播放 MP4 文件。视频流在主机上作为 RTSP 流播放。显示来自摄像头的第三个流。

下图显示了 pipeline 执行流程：

Figure : 用于编码三个 1080p 摄像头流的 pipeline
            
            ![](data:image/png;base64,UklGRswkAABXRUJQVlA4TL8kAAAvzoNNAGphG7BtG+L/s01STs8YEROgW6WViDsANhBlgyxrV6Y5+j8BzgWQiA7v8I5hmIa1sEZ/MPZiXOVRqdb/99xttogVpbn7QncLCgpeeKG7BW+6oFCOoKGgYHqCcgQFBQ2VIIUJKqw3yVfnvs/76H9175v4OX6PZ2g4FblALxDcF6gXuSEvkF4uEnoGEBYXTcNtjuo6hkLvGBngLuAJPIBhKjTq1CcL9F7EPEWwF0h5s0QWqC73aBQ/blogFTeoGbSAYRZwbwtkhN7c2wLhVZohhXmM9PIuYBzudnlmMG38JULZwAsE5WgBF2RqdFO0gaEpFGz/mzh/+Zd/hrju3UbynEIikZHIuCJzLrK7kUhkZPdeMhIZV86lDpm63ULZti2y8k+8zn6+44pt1y8SiUSiuyT94kRsE4nESTqROJE40V0uE5HLtEv/ZUGS5KpRVsSTexBE6/yBzK/e9P82x5at9K55zTHv+73mNsccc8w2xxxzzDHHHHOb29zmNsc8ZnuLK1WVem26e+8z5/1hZTEIxLEmhSeBzqDSEBTHVCADv2QGwcpG2TTI33lseJ5smnHPSx5FJTMg99CBiIJfMssXdBqLggpmwXUFlYeg6JAKlMaiYEGHoEQExWRxKRALnogeOg2BWDkVnChEgWAickFte1ANfwzDMAzDD8NwGIYXwzAMw+FwOAyH4TC8+OFnHf+//xQlSbLcNnkRkswA6XLfmQ8IwAfs9V8MWutPrl3SUZZkCEYuySjnyvIO0ycMVtx++qja3PwGjhlvW09e7fH7x/+KQa8Pqo11SFZcb0K7ff/wPOF2j37tuVmWZATGgi7JsPB437DxKLkHNkUhwVFWwsCuw0CA7VTEp8FRgpoLhX8B1qtIFIU4DYw80KXv/PHJs7Jt7UYajgk10K8eg2HjwbkaOy0UTyhg1D+wCxgI6LpnKRjNzFBXAodfFCFZUY1eUwneuRFp4ROMBYtCdo0Xhg4tDQWIykDBxmIgVqQzV2IBkhXV2GLAEz4pFBNOI/4j/iP+I/4j/iNtABy3cya4IryrAI8Cr9RryEXmcu3WY65vHJTCDM5rAfgapgTw7Qv+i0u4bvc/XNIVoZ1R7hR3gYY7VV81IUMSUQDpGLnHSCBJeIV9w6CSRCEGkiQuOhpI3aMQ3xIE9fdequqFCvij/o+GBH7Y/mEXIPOfzH+MnzWpocL/Y7X7PIbdFGxA/Hi8ykk4alQCfcVEq0vhRCGO4djSNRIcc6kzXMXUXgt/o6BSp04QAydn80SFn1l+1o6hL0KFkfZwE6pvC4L66EKDrMsQ/biiqDnnDkx/9fryRo3Po6+KG6afx+f0F39/Qb+qzqbkz/c2dH++cKWA8ReZsNsH52cUfpH4irhiXEYDpqmUUwl0gRuN+yxyfb5Isq3dfpmFBMtC2G1A7bh8m/U3Cyp5sRLqP1tJNnCBefHis/7Zryh/4P7y0ijiAlU/34qccEfM7U98whCyBtjg5JyfcYwx1TJE99L3ALjfD+TnoVx3ZMvov9h7+dPlZ9184X8wvzjLkFpjoyNnyjmFjDJ5+HiQQ+oNTCut4/MJtHb+jO9ZoLXGxXUtKo48xRHSkrRSe+8Y3Xy08Sg4Wy1dYmy0t664WhQRtQYYL4vdx5P/ZfF/moxtp+AXR/nTNQHyTt471gI8R/LYzXMzx4zXBsC5guPMep/ijeZadsExmDPP85qCK/PaofnLUNQf5l+kufk8EYpeV6xrO65uY8KVw5OoHRHfeNRcqhhzy5BzebMtZndJB7Kc5F7gSn0ApPO2AExt/a51gx8PZWBoEtma/vknNCTBRPYdKfv/7J7k3pC/PGeKYN4su0CSjniSHj/tEyQuzP/G++gacd47lbbWLXXSSnLLMZzDe4e4yr56wDnXXpaGppW7UV8mhlH2yys1zMCe05oXGUm7UuDucQSRGpfXzh+fSIHGuYLrHNNzndb6HXCN5hEGx6SgIRy3w5yIHMgs+4E1HJEPvvI62ZqEc7eR14gsu2iIbziie8H9Xzz3m1bO3Ycdvt30pBHT9TmAavyzNbVme/zMkrE/WGQOUXpKCYayP+qLPMj+uSadKbGcjsYiNjQEwKiaHoUieLPPnoc5qY51cruYfXCmLIY5cSn/wWFWyrmes0U4XtzvyLyMAB5kyeqrJ91zhbauMmr8bBvks8Xdj8YEJ/1s8c8DEG0QDj8PovT4vLibE2AyXHyZtxFxaQX7ONr/pUMHnIzL0z9nLfPbxVQRQZvcLWYhAeZ28FV12xG0+d3iqNTx+SEn66miRr9lPUzIdBxEFG9ekso2NjRktMAPd9benvJ/y00Xk+Hzuo0IHtaLbK/IchxzH8Tj5/sdHVh+tyK+4XgUAoH3WJ1NT1pR31N0VAlFTkRGMvsiZ+WkSAJmIFemL4pqvJAHOlNqeeCiivd3/ZgdffvYRZW9kFlQnFNpYt9v7meiUlSZGAfFdkdcPh6lMHM/ReOfbZGNrR+SZMd3IlZiGk7v2huCzG5ZdD3L5k3Q+LmJG//4+k5OiUwWy2G8sOP9K7kiT9sq+GUg7x+Jl5LOp2Cfwv8BAp1Q2GKWyfGr9VAOiUoUf+rb5gMZVUfVdFWiuL+Tt1/eF2O/SM2tSDv85x/YRFSROcoBkVipEZI/mbJ7jn6tsyi+xqIUj+1yuKvnJ4fVtgqG8v6RA/HHYCazyATznJV0XEC56RidRBZ/C3BPG1FR9AXWckX+1JcnmvacYhZuABjbRcS+HEdG2XtqR8pyEfHVMsvufJuQO7EazboCWY5GUdVE6dKWNK0sTSBXxkzsjPrSuUdUUMjEe5qd3BMAzEoeTSiqxXotn1OavU3ZOBae1zTxds1Tc4ZmZL6IreK93Ec8ydNopGYHpsssGo0Osn1J0y2+rU3zbSzK0oZue9Nue+N1822dHMvYaLO/9aj4RW5U0x3rwVfM/JImF2Oy3yinbPuW5kGOo1E9L83Mqo5mTdbzNpkfqZH886g7Grd8C/GGfqaJi6AYmbHmXb01oX7hydTzsks5T/G8ZbV4Gpl6nJp9RyZamp0IOk6ffMfn828+KOJC+UPyvlEmP6fadBi6MGzsB7IvYkNkVaQ3YFjYkCj8Axnaio/FzJixiIiimsRxGshE+UNDlrJmUZGgUriMD19B4xXJ2B9Tg1yJ9SM7PpEHeTS5fzBs1obIChC88ycRqOJPd37MdQNyJ7NDTEOeZJvGcWwz6Jf7OmotKtToopVC2mjHAJ0c3zK7nbFLNj1xyA6BIaqMNP1tzOqLGzV5b59223Kkmt+QWLibeIYv5OCJM79YKAKJvKRVDFLQbugYEMGGo5idyXU0QiA9BVkWuUQn0X6M47BZR/ciSCJjwK7n4slxAf22FOPlOiI232psNMd+lJ5T3zwunlWaNos0ooM5Q7/JiY6QGs9VRHBnm5waVUbCBDLs+3n6OBRhlDbCdg5fHpQdUvMk68jeERuQV1YVaYZdmq28V2T8QgJDclGki3V34SyNOm46fn4UuUl+s7SFbzu6KdhvpcjeRqaVtnvIShGX6s1iBPWSGdNwWV25AB1qLDJoOqyhYWZ+WP1JpfnyTRq5mvyO0huYWnmGBl/TX/dpKinytqFDZs2TLX7G8ub93HWKozyTspmGdIng8k4u1Lce4E6e4UrmJpHntLRWbLcDBx5klhLaEw8vJPtIaL4poo6BPDRyae1WbI9q+VyeTqszTNKJG64N/81lX45BMLUzavChOUjfuXBNp+l2shPPp/zj2O9SBE16GFoZmIHcl6fTaZdHuLQ3kR3hJzp58h8dHC7rF+Jba4XwV3wJByH7/Nrw+Gq3DJMtYVfEm8F8f+qe4iQyTIJMNqHpaXwS4yf9LcdGR9Xw/pmctPtgv7dNkHTcmIOc0ZD0Yg7zoTNlL3MD05d5vQ+C1wvRP7F6RUOjzjDyYKpXJLhLoK849mVrSJLrJiJZVbFz4SLIO0AyazAUynAUuDAsaYxaFJzLekSa73NeWlanovBoTU0sqrA7ZN+vgrCnoz8hsVyToX8byNWl/0BOq6LwqRT1iGQeRmVsyHo+6G01ms5PxLccYCvkgCBJut+M+JyKPA7DMPXA2G9cKfH2zaPJt2uS5GgsQNYyoHnMhEpdBmYg9zS5HPKKMwd5G3fnUuYkA5pa7kmSzjevxYqmlH3zIELDM2ysSyvfdhQZo2oZGlPK6eWlKHx6tiVNLVuSNKq5M0Qv7+XBPE7lLZGJkNUyJsX97iu8UtHC5sacRD+y1aMxg/mqt9qookiJbztiKSaE46CtqLHwGUgp5Lt38miOMu941XikjMnDOTVrUcUEAHMnFTWnslo324OJ390SXMnWRGO5WG8XMXE1VcsuOeNCCsdcNRnIRSbvIgIg/AV1x/J5LdfK7Ox2vXi1FCEXtkN9mc2z9dLuyLwS60ys0+vCvN9RVCCPMma2bbJM3j06hpz4v3c3jWVInua1SSuRNZnMfjuVr8ndPFMShUZVRWYwP5l7qVynOEtZi2adidmj8wPZjg/i7gf2JGryJLozf6uxAVYltKthVXaUKyS180j4fa2oUZ48UzTzYNg6L0kwqSO90TzD/kMQkjeHXUdch9Qsp3eOuqupXEFTHRKcaucRU7M8zg5wDKGdC2dV0h/WNwTz/ndBGB4Uy1WkQVWPuzMCTAezWR0Rm2uBqnNqlCU087cK1TqZzt46hgSj1RzupoMiJ3VMxsGwVac5DoeIYDlI4VGWYFxPuDtEXqeY3wcP4xXIvFYsVwDVIWFcxwRPtfq2YwMS3gkgQeM8CJpeKa4MumNBA2cxSQDOLu+6K6bXgOal5iI6ChjSI8nRSbhW7FVwHXCeTs9Jq//weuArQM8mwBEGulaj19UAC8dOrqvDsYvHg0tJakeR9wXkGhabbzk2QK8EYAP3sUGvFHeGBjyr3Smucnes1sDVftkE9J5L95hL47m5ofZKcna6VtQ9Cq4HrmvA48y/yryflgL0vB081vQIRiosXBMB8NhSewVsehTBc/RvPFG3D2qkMfx9RFzbT8zUuB1CfxO/qNGvMWygFHCNP88aSmHzVwwo0VTISZLQYAMK+0dBoTTVOGXMf0Bg4j/iP+I/4j/iv32bAyNsQBEu4FgRF0Bk+KgxzIQjTACyYgYWVCQhWZF/blRVBGPBovBp4MS4kznEA1swykqIA2clOFY85LVqOFCN8AZAVkznXd6RPASMBR9zTeeGze1FhawFRyn3YOCepFVwrPhGWtRixUAbUuBYcJXn9hnUBIyI/4j/iP+I/4j/iP+I/4j/KozkwWXxYLTMSxF+ktMB2TQlxCdTmdsSMsAoIesILNhxL9Gd6gw4qhTQBVOZzoNmgvE1HE7Ny7bwE78Qjk1n9p9hMjMNjC9/lf6Ooww4NqV4sFgBScRBSEiGZEVIFtzp/SOKbDEeeuVlTDViWUcMiva/uiUGXs/LtiBZUStJ5Fkj1TLbH44FC433jSnO/lPByBPyDfEY8Lf+WUBWTOD/awGd0AGMCTVw75ososqMnC+8eSUGX3hzRQpFU13jBTAEoC+LvUL+kL03M4VSKsZCQxbRdHQdoVTW0SDTgaYBoxYJpKxtGiGquiiUvlpBl2B6MeI/4j+CIsDrdnBFeEYB6FVQ3g0TMIGEx+1IakeEM9ed4lEAj1TBEriqqTFfAVQ/8YM2pGZ+UIQz6saZsgHT9/3amQMmbaR/Xczj6yXgleLZc4Gc6w6Yi+eObKmYF+f0Zfmr17YlpzIk4Ij61cOZAibL7bNfhMQGVIVQ7PnTgNf3/79WBU1qOP4FzgDdOUjt1eOdA2cGQLR2vx8YPct1xz83UVTZnI9DmZjpu9AxKx9dKTuqwubMX8hzpDuOctnlsarW0I4CV8qVBXheHxrwKvDY+5qnL7QrugVeMdcvjZe5gDzWvMQ0kSoSIKPYEQCQqSKpFAlNeOUoBfImhWSDBhBBd89gBID9wmYd64aJbA0ZymDUfxcbpUjuPFJqWRuy7t8QXC0r2wFSpaB2rIwUxMadckWBhMf1QZLwLnA24JoFwDvCYza41vS+T8XZgGsWQOKiF1CPCFxWmoPK2ruYjD8PltZmCTn4qlo92OXg8WjtNCLrwtqsJHfFoH9OrYnvlrb4WbLBAkyrMbXm3bMiz1DMF07RYxwBTtvVn6ydPlK5UvrmzlcGNAZgat9PRQfD+6WtDuRk0a8LW5VeKbiSNOr30K7rY3f8Iurn1NA8ffewd9/V8HpPXJcu8nkBTIM54UzAYfawTwlQtffDg2NuUE1XxLUKVPuSuNAF1HrOXQaKuJzAQA5Pr8+peIwq2Z5+sixsavbS/+6fMrF4HhzlwKzkcHWoZG5K6VezXVr4g8Nd7eUSheWgeStiMnwhM1I1Y1M4KZKACWRp+nN7dxjLlh4prBZneFtkJTV5X5lxB+NlMzjdytbEVlTBPzU2ZbxcDg63siaupqqJHN/6au5l9VCImmRfVn/aLlJiA5YyIzbAxuPv/JwBzhRnhseX4yvNPQXVKSRcO4H5C5lSOwqiB7n+07bISZXJdSaPkXb+XxFccFf3uNeCXkMwFuOn7hnvsZNG4Udec49lTAC4fMBQ3JFmVeRpdhiZUSlL81oGZrSTWWQi+2COMh2NJkFozlCuH42ZysSQb9aVbLAAS1kbtjIhx80jPQAwpXwg+7I1Bs2aGoCZywfylV8d20weaGqRj2ZdYxGPRub+nNLUFrExtVyZsciNibIp9dWUVRFJDc7lkCb6Zz82Jzmm2ckjAaaFvCdAau+/89PYOFM0yB53yFxtIDVN+EIC494JDOd9kgQYyNqY3F8/sS9rYwJZEp21hdwT2tnpno8acFaQuAaAJByjOn/8iv3pE6k1qeF5HYShx3zgUXSQxCV0kKUBEEUwzMtDX9ZmL3Myka1hVGWmltXrHIYs5cAQi1ckND2UpkIjau7JrIrMSSSjDkMn8iQz1SFiElkVaZCnF5IpoljmxkSVjWLbjkZjARM1VbLbfZrKM1T+zIClrNlkBDQibK4qpklMzbbJCXOQpfnNOSlDHlZdw6xZd8QxJ8mEGpoqT0K4UnJQJUlMAmSa5CCuMkThDcIPpTh+RBpTfR+THQHjJKXGw5oEf2OVsmuSapATVNUbP6COQsUwvyFATpxD/qg7ITZQocKV5/qPh4ojaE6SeGKnT1EI5HlEgFHuPPFKIQqVY2Qnqjy9jF7LhNhoguXCNq8aeehIyJ3cU3cwahspixYdLamaNfUGkhQpBbn7LkdzuBjYFyoWe5PaxRmeTsvqFLNLs5W3j9QdITWeq8iZoqi5yEiY1zJ5OKfVqVyLOp8022a5XDbLk7JDap5kfWOHzk/6l5CIStsI0QeVAmAGchct76liGAKm9sMqo8b9Ilhu7Z5k3fi+n+XE/aLdWnVYCt+OFRkFS7td7IhLS+QOTPxgKItGiAzT4nXh+9OIoTgerVyuCHUDgOsm2r2Q2qQTGgL87vc7EZCxPc7s9lVJRn3r+/44erqtFMGxDYlLaOePghZYbk/UDJYxubf+8nbb/4Ett8G9v81yclcJ37+NifXiKbbHqZ0vD+wycVWFxOVTyzMkQMPwnKok4lzWvcCMot2+kLWZd+ioeibxNRPx8TKrs6lpRA7yd6taxCYRW9E9ZOvAqfy3iPDGvivltlEdA7mqxLZbK2fRcq3SdKIQxW60twRgLqOyTe2tqpAhobCWxeDTUJYkNRgtlmoiju2/20VJMLYtm661rA6fxrI2O3m/y1fbP5JrWfRP+fbhR5j/QbbkUQZ5WfkhcVkF+zi6OgIvRKzbciDudhzLYpDv5dSEvrg/nWG1TEkCJhczMxDvx429iwketmHeFW7l3Y+nu8U2N3+QQZ4HsjXvZUkqu470ZfxlRVpoyGidXsiqYypi0877n06Z7JtSiOmuXFaPqliU+WA+fOKieYp9uT6dYbFMzVSotFrmvIy/JDIwZHj8UMtkRFP2tEbb0pj0nL5zAG+3Kcnl8yi6VycG+WjFpjjGwp6xLNP3/7uZrZ/vSZV0j6bapVw3EX+xl++NoaGnQLbOlIEsDc2/yTjfJcmnW1F+4B/tjaFJpmnqZv64VCT3LfSl46VI7jjfqgS6wPlgQ2NC0ScAciYPJhT2fnCoxJx8k9Hpn/3YGFTV026qRqP/5E79Cdfb781oJQ+jEVeJyUV/NBpNxJD6paTz6RqZjXZydxcZE29fG87EzpB32zQWt5EZ1TJx7JpWy9i0ws4O7bZKmdrAJA7ilsbk4sjBnqORebVm6o9pVvMD8RIrruJPplzHzziL4mssan0/Vss3TzSxP/2BLUXf0Bzmq1D0fzsyZzgHn4uneLt+NGbwQsqOPCty4hK+m47eiFOUZnJSymn6eGrk257/MJanKKpla0qHnbz9+FTWbiWhI5+fl21hUyKzx8qyZ61v0hNYS7kiSJLON/9zw50s3tZ1PUg4lV2LiolHiiqK/OkgxyTJ7pvJUn4RfYzypf+Y+ncdKzkwpXxIn97KKXFBzrTb0dZ1bpxO5tEyYx1/6sr9BZCxP6YGH7+TLRnKOxoz8TMzsJMRi/WIyF6B4PGcfmdMXAfThY25LkCGVt63oTGs5bQeDGq/il7O9NCQkxGPmNxId8W5yXIsY6PN/tZz1BLMtwE59CcEB/L7eB4QXM3LDn74d5uQrXhPYw7zlg9rjnLx2nT0CUZFFhkm7R/6fkZ+ZxW/W6YXt5j+exXiHxGnmeN0N4yRGfurq7cm9NJctASdDgTDbf9xIbN9QkN0if5vwYNYdVSyNricHyhey8LaA6OZtE3xG1H3lK7Fq0LMIjpo1r59Ja7sLdFIeug4/554vaW2UUT30I5360AgheweY9N/5+JOmZF5cU7NuztnrJkJRc3a2kq8+mRih5MckIPu0EN1YcmjEefI1M1xPrMzOdGzVv05izTDLqaZrKkZi8AAXDeJvz4dDrb6pw/Mis9sRyDyp+n21fq+cVAE85mVch2aVi67R/NGES9jlbU16hUH6I44oA6z2xlL2vTEcfTaS0yYt/IM/6++G3e2yQkexI7gxM5O8/7hEIi7w2MsptSaVfWUrrfVei3WZDkvIzsmNhdX+aXWPP2AGDBgVPgPiJhaPDhDUbs5C+zsKe43Ui7mLtOnjhfSMa+ahbqUv2xAJIO3E4LYDVZptEsZ7xSpdjE18tzRM0joLMFGM129P0MaOV89I+w5K4f7ioN57l4DSU6NPEE433WPech4d+PY0TMFVOUgcU4Ihjtox6qD8oaIEkfXfELNyWGQkNhckn8QI2iFzCw+2lj3eQEVxtU5lYagKt6w474pm8ZaK7bbuiPqGPuqle0jTeC7wFDtjvLW1HL1mKZKKVyyN4sR1Etm7AmzcgFSfC9zLzxtFzEBJvNBR2pntV1a64tt87tY9KkZFf/M++0ZRmSVPfEz20xPYvdynxS/FHnb0CGz5smhIfsZixb4Bz9NxKBj4uT85YnmMQn8JmVP4RmK/pO+hNx/hQjXv0CTIAk4W0i4epwljt1I2mikvHPpe/Ov4fbQD5DwTgAJug+Q6J3SY0K4VnUlaUdXr7pL92atpESfHRO24wXIqIXNRyTJo4iNiWwWTeLO0WQfH5E1kSGKBe99GpqxC+vb1BizbhC+kKkxhsP9Jb6J7DCHn4KCCIwZnlNsyHurPJjd9k1kSPKxegZNOW8f4zj+uBLTj08fxNHQfC8C5X8eGJqoyZ7A/jJbRC+Jx1e7ZTjUgvSU3bnUxvBP/mTi3z3RlKLfZWjqeZmvc2NG/XnYk0g5k2dIXDo9H8AEbBz/BEeEI8X7AUDwyATqkVxAjwTXhIB7z54pPSf0WNVzce+6S2hGLyRXtCi6xNj05e1h8P59GzL0F8kPh5+nsqTjWGaGWMvhpz+P5cr0ZfvnT0fZkS07SjnM4/rd2PFuHzpl9eVlDbsMAvuO+Jz++Ckay/UZftjLvQkdDvMyquS07sxaK1PL2Z93RZGSpEnmgWHob4P808LGWNjyQ5nJjJr51vmQyMv4bk4r4iua2Gq3uxM2NkfZ/rm2sqsZfCht9hSLRRKXy+yRi8al7hjPY8bLIiX+kv2iRhr3WUfc9Hlvrd85xIFMKt82B2oAGtU9NdZ2ba0dkOpeWns7LGI+LG6o2VrbnNODIqPALq1tqa/uw1fA3LaEZl/Y+Lh9Y+22HzG0+46TTeLG2q3viyYm31vrZzkBgIltyXD7VVlZv9qRSSUae+xurXkv4o5r4dFotRXb2bGIqca+bYIiMKVYV3a7jslT4TfbLCTWz0+xDQiubGn+8MfDkvTz0fMkm5FtgzjGRkexQhzG3SNUAKPvd4raFTaB40eB/AxTahD5POdNHGESO++CmM9DEiDTXTf2ij8aTaH7mTHPOfMnH+Yxieh3jkdyhVHkmjWOtGa6+x6EMzZWYCiCKEluCFDt5jG7m5LZLfXmenisOON5ThVHIMN5ylixFIfHeQ7HUEnpCIhjRB9SAipUVA9TWt5NSTW6kd3/9Xre1aBJwiOsq4gcKc4kTWqQcGaR2h3EK/5YcdcUms6bkNrrrhFoug7tHEt77do1JUm4dySBqO7eDX9NPJMLrnPtcdY7atPzseIk3CPT44HlxreL3tWw6XVXg0Zlb+hKgaPRFdzzmVy4+s/kcn0k3sqY7kVdt7vYrK4GhvMx3UnOXbl7JYdP+jp4YqbnufYq4EoMeJFn1m2AnpGpxiq+06jfR/o6fRUU8NQq4ut96nLPO5/BfNhXxHX1okZgvM+/pl1NFDagwfX6okagAb7mWYneKSRx1V6jDP1Qv8axAa6V1yjDcSdcpBNa4zp7yUEAm78UMCl9QOC/8x/xH7GVYEoRmGUdwTFaSaiKNgukElqi6pNMgfmFRpkC8ylt9lsHinAFRqY0g2aC0dREDKkxzIQj05ks6SAvHU2oDEQTDnsIP9XykpxQGYyyEjOZ2fL89k9AaqRgZxEkm3a1mMoooIQUxOEBinAByooYqEihaKpRxflsi0FQ1OKGdCx0gGRF/nUAY0ENRNcYjCmBrr8nK23BUcMUDMyAZUW+dbkakAXXmgVjihjsY5C/h6Ngf281NCsakAl3fHsHm3AR8R/xH/Ef8R/xH/Ef8R/xH/GfMeTo9wApqO9FIcjfDbMSwpELQSMhiFYeuaOdScHoMD9jhSBadRRmMQzRmZX9TpxABI7vseMw4j/iP+I/4j/iP2IuaLwMrS8eqPVfUQLJi+cCJHoE9igSJIG7cUhcuElNa8IdEY7nXhGq/5ZUmAPAdbuNs8AzZAOwlfMOuMvgSHI1xfKW2tkEzmVLwBnOWAwdRcIbkITzG3TtKiA1SMIZNRA7QjtrQFK7vpnXpEn9IbWrSUdpBGcWwYkdO4qo8Cbe3RA3iaKOkhy8mb9dhaSapwSYJw5E8hP/kJNQiYrmq5iAZn7YxXZI8vvDKiRxkyvGCSarUtGhOBSpZ88bbQIbsJUl+VbuyVwcTVKdU2O3AX8nZtRM7a3pMHEmGitmEZPtNPOFfyCj/tbahZjxcSis3fYj7sTABDZofLkIHaQG4tkfC28S2Sdncg1TyzJaLj+pj0eZmHtfkW/loSPh72Wp0lbWo50Q0z+H1VKZVu7TfCZn5r2sVXqUc7OTHdLWH09ybDrMvNoNJJvg9oKOvqqeqYrGxubOqpt9PjKjXA5GB3kwvG1U9xe2J2NGN2JqEtk3NMG7MLJr0ih/aPpybkbcTbh71yFKQy4WTO10IM6TbKlCFJHrKVNf7ba1rdnckiZtZ/+vkq1R9sFMtlOyy0T1+C6TY5OImmArwlgGBkw7dluZBTnptI2pkVVIm6VcRsRfSbknycxNKfOgiZ4/D2JRk61f3E1nsiWPflTLxMGUy+XdeCq6Bh17ESayJTjxh2R+bKS8j41T6CaG7/p/BeO0dBRCQ3YZDZiGq+qKolVab2rZX8xGQbPf/s58L4cRR2FX8m51V0W6I3n0FykN/JmX+N0fDKg6QEafprLfkx2asZz/FcwHSjwNQWlZR8AYc5g95ZG+d1/RHFpxMIlvM7KWq5ExdYfG88JviY48l8GIJhFe8qhZ0JjVC5nxeA8zwvbBJL2MTWoLRfwVi16jHQjKlGPtTE46Ue97o/Eg/ZRR4fjA22p1mvpyT5iB9GOCrUweG1uX+0YOzU62HYFMzHs5+8fAl0PTyvE/7oZyZc5QtqYv845FgVQMaQ5yTH1hQk7BPo6SmWOu4rWj9RdnU2rus5DgoRDN/SA7EEzFHTW4ynKTPIvl8+DNnnm2InjIQrJtbDW43ZP7xtpXNZlnJ1Ov447jDOq+JTnNYuKvoGQdwQAzp4d+AABc76d5E8YkAJpcrOh+6DfCGAQ8EzVVGNEVEEbUcB+bjVdbFOGvoH4JHbJzFtdHcmnt8cRokNTQGurD4lVEdHv0BtpZ450Iko4UkHQFuuI9A/XmwgSe9HXh7xEcnyOOUswJz5yLFXp8W/Ey/0F/Feei98v9/4T663xRo7/qtAFJbP4K2QbA5q+UbTabv/Mf8R/xH/Ef8V+Fn0HRzMrCkIuLQoKjvKQEIZsc3tzWGY5itzy/2/Pv3wRGAQA=)

**Related Information**  

- [在主机上查看 RTSP 流](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html#one_stream_1080p_avc_rtsp_from_live_source__section_ayq_2nh_pyb)

## 三路流 - 来自实时源的 4k JPEG 拍照、1080p AVC MP4 和 1080p YUV 流

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

用例使用来自摄像头的三路流。第一路流是 JPEG 拍照的 4k 数据流。第二路流为 1080p 流，将其编码为 H.264 后进行复用。第三路 1080p 流进行显示。

Note: 对于 QCS9075 和 QCS8275，目前暂不支持 JPEG 视频编码。

运行 pipeline：

    gst-pipeline-app -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,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/mux.mp4" camsrc.image_1 ! "image/jpeg,width=3840,height=2160,framerate=30/1" ! multifilesink location=/opt/frame%d.jpg sync=true async=false camsrc. ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! waylandsink fullscreen=trueCopy to clipboard

在 `cmd`线路终端上显示菜单。
1. 选择 Playing 模式。该 pipeline 启动视频流传输。
2. 选择 Enter
3. 选择 Plugin 模式并选择 `camsrc`。
4. 选择 Capture image 选项。
5. 选择 video 或 still
                        capture。
6. 输入您要拍照的数量。

请选择 Back，然后从菜单中选择 Quit 选项，以便停止用例。

您可以在媒体播放器上播放 MP4 文件和照片。显示来自摄像头的数据流。

从设备中拉取录制的内容并在主机上播放这些内容。

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

    scp -r root@[DEVICE IP-ADDR]:/opt/frame*.jpg user1@[HOST IP-ADDR]:/workspaceCopy to clipboard

下图显示了 pipeline 执行流程：

Figure : 用于处理三路摄像头流的 pipeline - 将 4K 流转换为 JPEG 快照、对 1080p 流进行编码、对 1080p 流进行显示
            
            ![](data:image/png;base64,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)

## 二路流 - 1080p MJPEG 编码器

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

MJPEG 编码器以MJPEG 格式对采集的视频流进行编码和写入。运行编码、保存到文件和在显示器上预览的用例。

Note: QCS9075 和 QCS8275目前暂不支持 MJPEG 视频编码。

以下是该编码器的各种用例。在运行这些用例之前，请在终端中输入 <var class="keyword varname">3</var> 以进入 Play 状态：

- H.264 编码和 MJPEG dump 到文件：

        gst-pipeline-app -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,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/mux.mp4" camsrc. ! "image/jpeg,width=3840,height=2160,framerate=30/1" ! queue ! avimux ! filesink location=/opt/4k_mjpeg.avi sync=true async=falseCopy to clipboard

    mux.mp4 和 4k\_mjpeg.avi 文件存储在 /opt/ 中。
- H.265 编码和 MJPEG dump 到文件：

        gst-pipeline-app -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=4 output-io-mode=5 ! queue ! h265parse ! mp4mux ! queue ! filesink location="/opt/mux.mp4" camsrc. ! "image/jpeg,width=3840,height=2160,framerate=30/1" ! queue ! avimux ! filesink location=/opt/4k_mjpeg.avi sync=true async=falseCopy to clipboard

    mux.mp4 和 4k\_mjpeg.avi 文件存储在 /opt/ 中。
- 预览显示使用 MJPEG 编码的文件：

        gst-pipeline-app -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! waylandsink fullscreen=true camsrc.video_1 ! "image/jpeg,width=1920,height=1080,framerate=30/1" ! queue ! avimux ! filesink location=/opt/mjpeg.avi sync=true async=falseCopy to clipboard

    视频在屏幕上预览，mjpeg.avi 文件存储在 /opt/ 中。
- 预览显示使用 MJPEG 和 H.264 编码的文件：

        gst-pipeline-app -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! waylandsink fullscreen=true camsrc.video_1 ! "image/jpeg,width=1920,height=1080,framerate=30/1" ! queue ! avimux ! filesink location=/opt/mjpeg.avi sync=true async=false camsrc.video_2 ! video/x-raw,format=NV12,width=1920,height=1080,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/mux.mp4"Copy to clipboard

    视频在屏幕上预览，mux.mp4 和 mjpeg.avi 文件存储在 /opt/。

## 基于切片的编码

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

通过视频编码的切片，视频流被分割或切片为多个部分，以进行并行编码。

用户可以将基于切片的编码用于视频播放、电话会议和安全摄像头用例。

以下命令使用户能够在摄像头流上实现基于切片的编码。输出的 video.mp4 文件存储在 /opt/。

### H.264

- 1280 × 720，每帧最大切片数 = 10：

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=4 extra-controls="controls,h264_profile=4,h264_level=14,video_bitrate=4800000,video_bitrate_mode=1,frame_level_rate_control_enable=1,video_gop_size=299,h264_entropy_mode=1,slice_partitioning_method=1,numbe_of_mbs_in_a_slice=1200,video_peak_bitrate=32000000;" ! filesink location="/opt/spincalender1280X760_1200_MB_720p_live1800.h264"Copy to clipboard
- 1280 × 720，每帧切片数 = 8：

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 extra-controls="controls,slice_partitioning_method=1,number_of_mbs_in_a_slice=460;" ! filesink location="/opt/encoded.h264"Copy to clipboard
- 1920 × 1080，每帧切片数 = 3：

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 extra-controls="controls,slice_partitioning_method=1,number_of_mbs_in_a_slice=2720;" ! filesink location="/opt/encoded.h264"Copy to clipboard
- 1280 × 720，最大字节模式：

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=4 output-io-mode=5 extra-controls="controls,slice_partitioning_method=2;" ! filesink location="/opt/encoded.h264"Copy to clipboard

### H.265

- 1280 × 720，每帧最大切片数 = 10：

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=4 output-io-mode=5 extra-controls="controls,slice_partitioning_method=1;" ! filesink location="/opt/encoded.h265"Copy to clipboard
- 1280 × 720，每帧切片数 = 8：

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=4 output-io-mode=5 extra-controls="controls,slice_partitioning_method=1,number_of_mbs_in_a_slice=460;" ! filesink location="/opt/encoded.h265"Copy to clipboard
- 1920 × 1080，每帧切片数 = 3：

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=4 output-io-mode=5 extra-controls="controls,slice_partitioning_method=1,number_of_mbs_in_a_slice=2720;" ! filesink location="/opt/encoded.h265"Copy to clipboard
- 1280 × 720，最大字节模式：

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=4 output-io-mode=5 extra-controls="controls,slice_partitioning_method=2;" ! filesink location="/opt/encoded.h265"Copy to clipboard

## 帧内智能编解码器（H.264 和 H.265）

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

帧内（I 帧）是一种数据压缩技术，可实现更小的文件大小和更低的码率。使用智能 codec 和降噪功能运行 720p@30 HEVC 流的用例。

对于以下用例，输出的 video.mp4 文件存储在 /opt/。

### 具有智能码率、智能帧率和智能 GOP 的 720p@30 HEVC 流 – 启用降噪

- H.264

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 levels-override="LevelsOverride,bitrate_static=160000,bitrate_low=358000,bitrate_medium=700000,bitrate_high=1400000,fr_static=16,fr_low=4,fr_medium=2,fr_high=1;" roi-quality-cfg="ROIQPs,car=2,person=1,tree=-2;" encoder="v4l2h264enc" max-bitrate=4200000 name=scb ! queue ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw,format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard
- H.265

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 levels-override="LevelsOverride,bitrate_static=160000,bitrate_low=358000,bitrate_medium=700000,bitrate_high=1400000,fr_static=16,fr_low=4,fr_medium=2,fr_high=1;" roi-quality-cfg="ROIQPs,car=2,person=1,tree=-2;" encoder="v4l2h265enc" max-bitrate=4200000 name=scb ! queue ! h265parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw,format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard

### 仅具有智能码率的 720p@30 HEVC 流 - 启用降噪

- H.264

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 smart-framerate=false smart-gop=false encoder="v4l2h264enc" max-bitrate=4200000 name=scb ! queue ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw,format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard
- H.265

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 smart-framerate=false smart-gop=false encoder="v4l2h265enc" max-bitrate=4200000 name=scb ! queue ! h265parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw,format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard

### 具有智能码率、智能帧率和智能 GOP 的 720p@30 HEVC 流 – 禁用降噪

- H.264

        gst-launch-1.0 -ev qtiqmmfsrc video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h264enc" max-bitrate=4200000 name=scb ! queue ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw,format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard
- H.265

        gst-launch-1.0 -ev qtiqmmfsrc video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h265enc" max-bitrate=4200000 name=scb ! queue ! h265parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw,format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard

### 具有智能码率、智能帧率和智能 GOP 的 720p@30 HEVC 流 – 启用降噪

- H.264

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h264enc" max-bitrate=4200000 name=scb ! queue ! h264parse config-interval=1 ! mpegtsmux name=muxer ! queue ! tcpserversink port=8900 host=<ip_address> camsrc. ! video/x-raw,format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard
- H.265

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h265enc" max-bitrate=4200000 name=scb ! queue ! h265parse config-interval=1 ! mpegtsmux name=muxer ! queue ! tcpserversink port=8900 host=<ip_address> camsrc. ! video/x-raw,format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard

要通过 TCP 播放流，请在 Windows 主机上执行以下操作：

1. 打开 VLC 媒体播放器。
2. 选择 Media &gt; Open Network Stream
                    或按 CTRL + N）。
3. 输入 tcp://&lt;ip\_address&gt;:8900/live。
4. 选择 Play

### 具有智能码率、智能帧率和智能 GOP 的 720p@30 HEVC 流 – 启用降噪

- H.264

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h264enc" max-bitrate=1000000 name=scb ! queue ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw,format=NV12,width=640,height=480,framerate=15/1 ! queue ! tee name=split ! queue ! scb.sink_ctrl split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=<model-path> ! queue ! qtimlvdetection threshold=50.0 results=5 module=yolov8 labels=<labels-path> constants="YOLOv8,q-offsets=<-107.0, -128.0, 0.0>,q-scales=<3.093529462814331, 0.00390625, 1.0>;" ! text/x-raw ! queue ! scb.sink_mlCopy to clipboard
- H.265

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h265enc" max-bitrate=1000000 name=scb ! queue ! h265parse ! queue ! mp4mux ! queue ! filesink location=/opt/video.mp4 camsrc. ! video/x-raw,format=NV12,width=640,height=480,framerate=15/1 ! queue ! tee name=split ! queue ! scb.sink_ctrl split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=<model-path> ! queue ! qtimlvdetection threshold=50.0 results=5 module=yolov8 labels=<labels-path> constants="YOLOv8,q-offsets=<-107.0, -128.0, 0.0>,q-scales=<3.093529462814331, 0.00390625, 1.0>;" ! text/x-raw ! queue ! scb.sink_mlCopy to clipboard

### 具有智能码率、智能帧率和智能 GOP 的并发两路 720p@30 HEVC 流 – 启用降噪

- H.264

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview video_1::extra-buffers=20 name=camsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb1.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h264enc" max-bitrate=4200000 name=scb1 ! queue ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video_scb1.mp4 camsrc. ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb2.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h264enc" max-bitrate=4200000 name=scb2 ! queue ! h264parse ! queue ! mp4mux ! queue ! filesink location=/opt/video_scb2.mp4 camsrc. ! video/x-raw,format=NV12,width=640,height=480,framerate=15/1 ! queue ! tee name=ctrl_t ! queue ! scb1.sink_ctrl ctrl_t. ! queue ! scb2.sink_ctrlCopy to clipboard
- H.265

        gst-launch-1.0 -ev qtiqmmfsrc noise-reduction=2 video_0::extra-buffers=20 video_0::type=preview video_1::extra-buffers=20 name=camsrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb1.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h265enc" max-bitrate=4200000 name=scb1 ! queue ! h265parse ! queue ! mp4mux ! queue ! filesink location=/opt/video_scb1.mp4 camsrc. ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! queue ! scb2.sink qtismartvencbin default-gop=30 max-gop=600 encoder="v4l2h265enc" max-bitrate=4200000 name=scb2 ! queue ! h265parse ! queue ! mp4mux ! queue ! filesink location=/opt/video_scb2.mp4 camsrc. ! video/x-raw,format=NV12,width=640,height=480,framerate=15/1 ! queue ! tee name=ctrl_t ! queue ! scb1.sink_ctrl ctrl_t. ! queue ! scb2.sink_ctrlCopy to clipboard

## CPU 和 GPU 中的 MJPEG 视频编码

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

对于 MJPEG 编码，如果硬件不可用，则需要 CPU 和 GPU 的支持。该用例包含对 16 通道 1080p 2fps 视频进行编码的能力。

Note: QCS9075 和 QCS8275目前暂不支持 MJPEG 视频编码。

### 前提条件
关于 MJPEG 编码，需要 CPU/GPU 支持 1080p@2fps。
在运行用例之前设置以下环境变量：

    export XDG_RUNTIME_DIR=/dev/socket/westonCopy to clipboard

    export WAYLAND_DISPLAY=wayland-1Copy to clipboard

### YUV 文件 1920 × 1080@30 → 16 × JPEG-ENC → AVI 文件

    	
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg1.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg2.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg3.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg4.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg5.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg6.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg7.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg8.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg9.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg10.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg11.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg12.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg13.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg14.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg15.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg16.aviCopy to clipboard

### YUV 文件 1920 × 1080@30 → 12 × JPEG-ENC → AVI 文件和 1920 × 1080@30 AVI → 12 × JPEG-DEC &gt; JPEG

    gst-launch-1.0 -e filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg1_%d.jpeg max-files=1 &
    gst-launch-1.0 -e filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg2_%d.jpeg max-files=1 &
    gst-launch-1.0 -e filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg3_%d.jpeg max-files=1 &
    gst-launch-1.0 -e filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg4_%d.jpeg max-files=1 &
    gst-launch-1.0 -e filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg5_%d.jpeg max-files=1 &
    gst-launch-1.0 -e filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg6_%d.jpeg max-files=1 &
    gst-launch-1.0 -e filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg7_%d.jpeg max-files=1 &
    gst-launch-1.0 -e filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg8_%d.jpeg max-files=1 &
    gst-launch-1.0 -e filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg9_%d.jpeg max-files=1 &
    gst-launch-1.0 -e filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg10_%d.jpeg max-files=1 &
    gst-launch-1.0 -e filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg11_%d.jpeg max-files=1 &
    gst-launch-1.0 -e filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg12_%d.jpeg max-files=1 &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg1.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg2.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg3.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg4.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg5.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg6.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg7.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg8.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg9.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg10.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg11.avi &
    gst-launch-1.0 -e filesrc location=/opt/1920_1080.yuv ! videoparse width=1920 height=1080 format=nv12 framerate=2/1 ! jpegenc ! avimux ! filesink location=/opt/mjpeg12.aviCopy to clipboard

## 启用 24 个端到端并发视频会话

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

运行从文件中获取并发送到显示器的 24 个并行且分辨率为 1080p 流的用例。每个流显示在屏幕上的不同位置。

Note: 这些用例在 QCS6490 和 QCS8275 上不支持。

### H.264–24 会话解码

    ulimit -n 4096 && gst-launch-1.0 -e qtivcomposer name=mix sink_0::position="<0, 0>" sink_0::dimensions="<240, 270>" \
    sink_1::position="<240, 0>" sink_1::dimensions="<240, 270>" \
    sink_2::position="<480, 0>" sink_2::dimensions="<240, 270>" \
    sink_3::position="<720, 0>" sink_3::dimensions="<240, 270>" \
    sink_4::position="<960, 0>" sink_4::dimensions="<240, 270>" \
    sink_5::position="<1200, 0>" sink_5::dimensions="<240, 270>" \
    sink_6::position="<1440, 0>" sink_6::dimensions="<240, 270>" \
    sink_7::position="<1680, 0>" sink_7::dimensions="<240, 270>" \
    sink_8::position="<0, 270>" sink_8::dimensions="<240, 270>" \
    sink_9::position="<240, 270>" sink_9::dimensions="<240, 270>" \
    sink_10::position="<480, 270>" sink_10::dimensions="<240, 270>" \
    sink_11::position="<720, 270>" sink_11::dimensions="<240, 270>" \
    sink_12::position="<960, 270>" sink_12::dimensions="<240, 270>" \
    sink_13::position="<1200, 270>" sink_13::dimensions="<240, 270>" \
    sink_14::position="<1440, 270>" sink_14::dimensions="<240, 270>" \
    sink_15::position="<1680, 270>" sink_15::dimensions="<240, 270>" \
    sink_16::position="<0, 540>" sink_16::dimensions="<240, 270>" \
    sink_17::position="<240, 540>" sink_17::dimensions="<240, 270>" \
    sink_18::position="<480, 540>" sink_18::dimensions="<240, 270>" \
    sink_19::position="<720, 540>" sink_19::dimensions="<240, 270>" \
    sink_20::position="<960, 540>" sink_20::dimensions="<240, 270>" \
    sink_21::position="<1200, 540>" sink_21::dimensions="<240, 270>" \
    sink_22::position="<1440, 540>" sink_22::dimensions="<240, 270>" \
    sink_23::position="<1680, 540>" sink_23::dimensions="<240, 270>" \
    mix. ! fpsdisplaysink text-overlay=true video-sink="waylandsink fullscreen=true" -v \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix.Copy to clipboard

### H.265–24 会话解码

    ulimit -n 4096 && gst-launch-1.0 -e qtivcomposer name=mix sink_0::position="<0, 0>" sink_0::dimensions="<240, 270>" \
    sink_1::position="<240, 0>" sink_1::dimensions="<240, 270>" \
    sink_2::position="<480, 0>" sink_2::dimensions="<240, 270>" \
    sink_3::position="<720, 0>" sink_3::dimensions="<240, 270>" \
    sink_4::position="<960, 0>" sink_4::dimensions="<240, 270>" \
    sink_5::position="<1200, 0>" sink_5::dimensions="<240, 270>" \
    sink_6::position="<1440, 0>" sink_6::dimensions="<240, 270>" \
    sink_7::position="<1680, 0>" sink_7::dimensions="<240, 270>" \
    sink_8::position="<0, 270>" sink_8::dimensions="<240, 270>" \
    sink_9::position="<240, 270>" sink_9::dimensions="<240, 270>" \
    sink_10::position="<480, 270>" sink_10::dimensions="<240, 270>" \
    sink_11::position="<720, 270>" sink_11::dimensions="<240, 270>" \
    sink_12::position="<960, 270>" sink_12::dimensions="<240, 270>" \
    sink_13::position="<1200, 270>" sink_13::dimensions="<240, 270>" \
    sink_14::position="<1440, 270>" sink_14::dimensions="<240, 270>" \
    sink_15::position="<1680, 270>" sink_15::dimensions="<240, 270>" \
    sink_16::position="<0, 540>" sink_16::dimensions="<240, 270>" \
    sink_17::position="<240, 540>" sink_17::dimensions="<240, 270>" \
    sink_18::position="<480, 540>" sink_18::dimensions="<240, 270>" \
    sink_19::position="<720, 540>" sink_19::dimensions="<240, 270>" \
    sink_20::position="<960, 540>" sink_20::dimensions="<240, 270>" \
    sink_21::position="<1200, 540>" sink_21::dimensions="<240, 270>" \
    sink_22::position="<1440, 540>" sink_22::dimensions="<240, 270>" \
    sink_23::position="<1680, 540>" sink_23::dimensions="<240, 270>" \
    mix. ! fpsdisplaysink text-overlay=false video-sink="waylandsink fullscreen=true" -v \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=4 output-io-mode=4 ! video/x-raw, format=NV12 ! mix.Copy to clipboard

### AV1–24 会话解码

    ulimit -n 4096 && gst-launch-1.0 -e qtivcomposer name=mix sink_0::position="<0, 0>" sink_0::dimensions="<240, 270>" \
    sink_1::position="<240, 0>" sink_1::dimensions="<240, 270>" \
    sink_2::position="<480, 0>" sink_2::dimensions="<240, 270>" \
    sink_3::position="<720, 0>" sink_3::dimensions="<240, 270>" \
    sink_4::position="<960, 0>" sink_4::dimensions="<240, 270>" \
    sink_5::position="<1200, 0>" sink_5::dimensions="<240, 270>" \
    sink_6::position="<1440, 0>" sink_6::dimensions="<240, 270>" \
    sink_7::position="<1680, 0>" sink_7::dimensions="<240, 270>" \
    sink_8::position="<0, 270>" sink_8::dimensions="<240, 270>" \
    sink_9::position="<240, 270>" sink_9::dimensions="<240, 270>" \
    sink_10::position="<480, 270>" sink_10::dimensions="<240, 270>" \
    sink_11::position="<720, 270>" sink_11::dimensions="<240, 270>" \
    sink_12::position="<960, 270>" sink_12::dimensions="<240, 270>" \
    sink_13::position="<1200, 270>" sink_13::dimensions="<240, 270>" \
    sink_14::position="<1440, 270>" sink_14::dimensions="<240, 270>" \
    sink_15::position="<1680, 270>" sink_15::dimensions="<240, 270>" \
    sink_16::position="<0, 540>" sink_16::dimensions="<240, 270>" \
    sink_17::position="<240, 540>" sink_17::dimensions="<240, 270>" \
    sink_18::position="<480, 540>" sink_18::dimensions="<240, 270>" \
    sink_19::position="<720, 540>" sink_19::dimensions="<240, 270>" \
    sink_20::position="<960, 540>" sink_20::dimensions="<240, 270>" \
    sink_21::position="<1200, 540>" sink_21::dimensions="<240, 270>" \
    sink_22::position="<1440, 540>" sink_22::dimensions="<240, 270>" \
    sink_23::position="<1680, 540>" sink_23::dimensions="<240, 270>" \
    mix. ! fpsdisplaysink text-overlay=false video-sink="waylandsink fullscreen=true" -v \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! mix.Copy to clipboard

### H.264–12 会话解码和编码

    ulimit -n 4096 && gst-launch-1.0 -e filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_1.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_2.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_3.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_4.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_5.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_6.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_7.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_8.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_9.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_10.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_11.mp4 \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_12.mp4Copy to clipboard

### H264–24 会话编码

    gst-launch-1.0 -e filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_0.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_1.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_2.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_3.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_4.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_5.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_6.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_7.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_8.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_9.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_10.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_11.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_12.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_13.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_14.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_15.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_16.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_17.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_18.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_19.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_20.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_21.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_22.h264 \
    filesrc blocksize=3133440 location=/tmp/dump_1080.yuv ! video/x-raw,format="NV12",width=1920,height=1080,framerate=30/1,interlace-mode=progressive,colorimetry=bt601 ! v4l2h264enc capture-io-mode=4 output-io-mode=5 ! filesink location=/opt/enc_23.h264Copy to clipboard

## AV1 解码器和 4K VP9 解码器，240 fps 播放

Source: [https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70018-50SC/topic/camera-and-video-encode.html)

使用 AV1 和 VP9 解码器运行解码用例。这些用例仅适用于 QCS9075。

### AV1 用例

- 3840 × 2160

        gst-launch-1.0 -e filesrc location=/opt/SeaOtters_AV1_3840x2160_30_25.0Mbps_Main_no_audio_30.0.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! fpsdisplaysink video-sink="waylandsink fullscreen=true" -vCopy to clipboard
- 1920 × 1080

        gst-launch-1.0 -e filesrc location=/opt/CaribouHerd_AV1_1920x1080_30_39.38Mbps_Main_AAC_34.472.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! fpsdisplaysink video-sink="waylandsink fullscreen=true" -vCopy to clipboard
- 1280 × 720

        gst-launch-1.0 -e filesrc location=/opt/av1.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=4 output-io-mode=4 ! fpsdisplaysink video-sink="waylandsink fullscreen=true" -vCopy to clipboard

### VP9 用例

3840 × 2160，240 fps

    gst-launch-1.0 -e filesrc location=/opt/test_UHD_240FPS.ivf ! ivfparse ! queue ! v4l2vp9dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! fpsdisplaysink text-overlay=false video-sink="fakesink" -vCopy to clipboard

Last Published: Nov 12, 2025

[Previous Topic
摄像头](https://docs.qualcomm.com/bundle/publicresource/80-70018-50SC/topics/camera.md) [Next Topic
多摄像头/多客户端用例](https://docs.qualcomm.com/bundle/publicresource/80-70018-50SC/topics/multi-camera-multi-client-use-cases.md)