# 视频编码

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

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

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

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

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

该 pipeline 显示一个从摄像头获取并发送到编码器的 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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 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> &gt; </abbr>Open Network Stream，或按 CTRL +
                    N。
3. 输入 rtsp://&lt;IP\_address of the device&gt;:8900/live。
4. 点击 Play。

## 两种流 — 来自实时源的 4K AVC 和 1080p AVC

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

pipeline 显示了从摄像头获取一个 4k 视频流和一个 1080p 视频流并发送到编码器。每个编码的数据流都多路复用到不同的文件中。

运行用例：

    gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=3840,height=2160,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux1.mp4" camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=640,height=480,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 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,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)

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

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

Pipeline 显示从摄像头拍摄并发送到编码器的三个 1080p 流。每个编码的数据流都多路复用到不同的文件中。

运行 pipeline：

    gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux1.mp4" camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux2.mp4" camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux3.mp4"Copy to clipboard

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

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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)

## 三个数据流 - 来自实时源的 1080p AVC、1080p HEVC 和 1080p YUV

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

pipeline 显示了从摄像头获取的三个 1080p 数据流。将两个数据流发送到编码器，一个数据流编码为 H.264，另一个数据流编码为 HEVC。这些数据流被多路复用到不同的文件中。第三个数据流被发送到显示屏。

运行 pipeline：

    gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux1.mp4" camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=5 output-io-mode=5 ! queue ! h265parse ! mp4mux ! queue ! filesink location="/opt/mux_hevc.mp4" camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! waylandsink sync=false fullscreen=true enable-last-sample=falseCopy 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 : 用于编码 1080p AVC、1080p HEVC 和 1080p YUV 摄像头流的 pipeline
            
            ![](data:image/png;base64,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)

## 三个数据流 - 来自实时源的 1080p AVC MP4、1080p AVC MPEGTS 和 1080p AVC MP4

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

Pipeline 显示从摄像头拍摄并发送到编码器的三个 1080p 流。每个数据流都编码为 H.264 并多路复用 - 两个数据流为 MP4，一个为 MPEGTS 多路复用到不同的文件中。

运行 pipeline：

    gst-launch-1.0 -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux1.mp4" camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! queue ! h264parse ! mpegtsmux name=muxer ! queue ! filesink location="/opt/mux_mpegts.mp4" camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=5 output-io-mode=5 ! queue ! h265parse ! mp4mux ! queue ! filesink location="/opt/mux3.mp4"Copy to clipboard

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

    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 : 用于编码 1080p AVC MP4、1080p AVC MPEGTS 和 1080p 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-70017-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50SC/topic/camera-and-video-encode.html)

Pipeline 显示了从摄像头获取的三个 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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! queue ! h264parse ! mp4mux ! queue ! filesink location="/opt/mux.mp4" camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! queue ! h264parse config-interval=-1 ! rtph264pay pt=96 ! udpsink host=<ip_address> port=8554 camsrc. ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! waylandsink fullscreen=true async=true sync=falseCopy to clipboard

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

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

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

下图显示了 pipeline 执行流程：

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

**相关信息**  

- [在主机上查看 RTSP 流](https://docs.qualcomm.com/doc/80-70017-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-70017-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50SC/topic/camera-and-video-encode.html)

pipeline 显示了从摄像头中获取的三个数据流。第一个数据流是 JPEG 快照的 4k 数据流。第二个流的分辨率为1080p，其被编码为H.264，然后进行复用。第三个 1080p 流被发送到显示器。

运行 pipeline：

    gst-pipeline-app -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! waylandsink fullscreen=true async=true sync=falseCopy to clipboard

在 `cmd`线路终端上显示菜单。
1. 选择 Playing 模式，pipeline 开始流传输。
2. 按 Enter。
3. 选择 Plugin 模式并选择 `camsrc`。
4. 选择 Capture image signal
5. 选择 video 或 still
                        capture。
6. 输入您要采集的快照数量。

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

可以播放 MP4 文件和快照。显示来自摄像头的数据流。

从设备中提取录制的内容并在主机 PC 上播放内容。

    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 到编码、1080 到显示
            
            ![](data:image/png;base64,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)

## 双流 – 1080p MJPEG 编码器

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

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

注释： 对于 QCS9075，目前不支持 MJPEG 视频编码。

以下是该编码器的各种用例：

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

        gst-pipeline-app -e qtiqmmfsrc name=camsrc video_0::type=preview ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=5 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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 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-70017-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50SC/topic/camera-and-video-encode.html)

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

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

以下命令使用户能够在摄像头流上实现基于切片的编码。

### H.264

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

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 output-io-mode=5 extra-controls="controls,slice_partitioning_method=1;" ! filesink location="/opt/encoded.h264"Copy to clipboard
- 1280 x 720，每帧切片数 = 8：

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 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 x 1080，每帧切片数 = 3：

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h264enc capture-io-mode=5 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 x 720，最大字节模式：

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

### H.265

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

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

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=5 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
- 1920x1080，每帧切片数 = 3：

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=5 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 x 720，最大字节模式：

        gst-launch-1.0 -e qtiqmmfsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1280,height=720,framerate=30/1,compression=ubwc,interlace-mode=progressive,colorimetry=bt601 ! queue ! v4l2h265enc capture-io-mode=5 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-70017-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50SC/topic/camera-and-video-encode.html)

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

### 具有智能比特率、智能帧率和智能 GOP 的 1080p@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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! 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\(memory:GBM\),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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! 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\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard

### 仅具有智能比特率的 1080p@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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! 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\(memory:GBM\),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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! 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\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard

### 1080p@30 HEVC 流，具有智能比特率、智能帧率和智能 GOP – 禁用降噪

- H.264

        gst-launch-1.0 -ev qtiqmmfsrc video_0::extra-buffers=20 video_0::type=preview name=camsrc ! video/x-raw\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! 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\(memory:GBM\),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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! 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\(memory:GBM\),format=NV12,width=640,height=480,framerate=15/1 ! queue ! scb.sink_ctrlCopy to clipboard

### 1080p@30 HEVC 通过 TCP 进行流传输，具有智能码率、智能帧率和智能 GOP – 启用降噪功能

- 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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! 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\(memory:GBM\),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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! 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\(memory:GBM\),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 的 1080p@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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! 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\(memory:GBM\),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=/opt/yolov8_det_quantized.tflite ! queue ! qtimlvdetection threshold=50.0 results=5 module=yolov8 labels=/opt/coco_labels.txt 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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! 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\(memory:GBM\),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=/opt/yolov8_det_quantized.tflite ! queue ! qtimlvdetection threshold=50.0 results=5 module=yolov8 labels=/opt/coco_labels.txt 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

### 并发两个 1080p@30 HEVC 流，具有智能比特率、智能帧率和智能 GOP – 启用降噪

- 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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! 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\(memory:GBM\),format=NV12,width=1920,height=1080,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\(memory:GBM\),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\(memory:GBM\),format=NV12,width=1920,height=1080,framerate=30/1,compression=ubwc ! 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\(memory:GBM\),format=NV12,width=1920,height=1080,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\(memory:GBM\),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-70017-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50SC/topic/camera-and-video-encode.html)

对于 MJPEG 编码，如果没有硬件，则需要 CPU 和 GPU 的支持。用例包括编码 16 通道 1080p 2fps 视频的能力。

注释： 对于 QCS9075，目前不支持 MJPEG 视频编码。

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

    export XDG_RUNTIME_DIR=/dev/socket/westonCopy to clipboard

    export WAYLAND_DISPLAY=wayland-1Copy to clipboard

### YUV 文件 1920x1080@30 → 16 x jpegenc → 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 文件 1920x1080@30 → 12 x jpegenc → AVI 文件和 1920x1080@30 AVI → 12 x jpegdec &gt; JPEG

    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg1_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg2_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg3_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg4_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg5_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg6_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg7_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg8_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg9_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg10_%d.jpeg max-files=1 &
    gst-launch-1.0 -v filesrc location=/opt/mjpeg.avi ! avidemux !  queue ! jpegdec ! multifilesink location=/opt/mjpeg11_%d.jpeg max-files=1 &
    gst-launch-1.0 -v 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-70017-50SC/topic/camera-and-video-encode.html](https://docs.qualcomm.com/doc/80-70017-50SC/topic/camera-and-video-encode.html)

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

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

    ulimit -n 4096 && gst-launch-1.0 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=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! mix.Copy to clipboard

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

    ulimit -n 4096 && gst-launch-1.0 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=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/FlyingBirdFlock_1920x1080_30fps_HEVC_7862Kbps_withAudio.mp4 ! qtdemux ! h265parse ! v4l2h265dec capture-io-mode=5 output-io-mode=5 ! mix.Copy to clipboard

### AV1 – 24 会话解码

    ulimit -n 4096 && gst-launch-1.0 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=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix. \
    filesrc location=/opt/sjxbqm_1080p30fps_25_4882Kbps.mp4 ! qtdemux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! mix.Copy to clipboard

### H.264-12 个会话解码和编码

    ulimit -n 4096 && gst-launch-1.0  filesrc location=/opt/1920_1080_h264_30fps_1min.mp4 ! qtdemux ! h264parse ! v4l2h264dec capture-io-mode=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 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=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 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=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 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=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 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=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 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=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 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=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 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=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 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=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 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=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 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=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 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=5 output-io-mode=5 ! v4l2h264enc capture-io-mode=5 output-io-mode=5 ! h264parse ! mp4mux ! filesink location=/opt/enc_12.mp4Copy to clipboard

### H264 – 24 会话编码

    gst-launch-1.0 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 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=5 output-io-mode=5 ! filesink location=/opt/enc_23.h264Copy to clipboard

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

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

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

### AV1 用例

- 3840×2160

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

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

        gst-launch-1.0 filesrc location=/opt/SeaOtters_AV1_1280x720_30_29.68Mbps_Main_AAC_60.008.mkv ! matroskademux ! av1parse ! v4l2av1dec capture-io-mode=5 output-io-mode=5 ! fpsdisplaysink video-sink="waylandsink fullscreen=true" -vCopy to clipboard

### VP9 用例

3840×2160，240 fps

    gst-launch-1.0 filesrc location=/opt/test_UHD_240FPS.ivf ! ivfparse ! queue ! v4l2vp9dec capture-io-mode=5 output-io-mode=5 ! queue ! fpsdisplaysink text-overlay=false video-sink="fakesink" -vCopy to clipboard

Last Published: Nov 11, 2025

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