AidStream PLUGINS
插件简介
qtivcomposer 插件
qtivcomposer 插件借助 GPU 硬件,将多路输入视频流合并 / 混合为一路输出流。 Pad 属性决定了(每路流的)输入缓冲区在输出缓冲区中的合成方式。
| 属性名 | 用途说明 |
|---|---|
| Position(位置) | 设置每路输入帧在输出画面中的 X 轴与 Y 轴摆放位置 |
| Crops(裁剪) | 对源画面进行可选的裁剪处理 |
| Dimensions(尺寸) | 对帧画面进行放大 / 缩小(分辨率调整) |
| Rotate(旋转) | 设置每路输入画面的透明度 |
| • Flip-horizontal(水平翻转) • Flip-vertical(垂直翻转) | 设置每路输入画面在输出画面中的合成方式 |
| Alpha(透明度) | 为帧画面添加 Alpha 混合(透明度叠加)数值 |
| Z order(层级顺序) | 调整各帧画面的叠加层级。默认情况下,帧的层级顺序与接收端 Pad(sink pad)的创建顺序一致,例如 sink_0、sink_1 的顺序 |
| 属性名 | 描述说明 |
|---|---|
| name(名称) | 对象的名称。 • 标识:可读、可写 • 类型:字符串。默认值:"video_composer0" |
| parent(父对象) | 对象的父对象。 • 标识:可读、可写 • 类型:"GstObject" 类型的对象 |
| engine(引擎) | 用于转换操作的后端引擎。 • 标识:可读、可写 • 枚举类型:"GstVideoConverterBackend"。默认值:1,"gles" ◦ (1): gles - 使用基于 OpenGLES 的视频转换器 ◦ (2): fcv - 使用基于 FastCV 的视频转换器 💡 说明:高通计算机视觉 SDK(fcv)引擎目前暂不支持 |
| latency(延迟) | 直播模式下的额外延迟,允许上游为当前位置生成缓冲区的时间更长(单位:纳秒)。 • 标识:可读、可写 • 类型:无符号 64 位整数 • 范围:0 - 18446744073709551615 • 默认值:0 |
| start-time-selection(启动时间选择) | 决定输出的启动时间。 • 标识:可读、可写 • 枚举类型:"GstAggregatorStartTimeSelection"。默认值:0,"zero" ◦ (0): zero - 从运行时间 0 开始(默认) ◦ (1): first - 从首次观测到的输入运行时间开始 ◦ (2): set - 使用 start-time 属性设置启动时间 |
| start-time(启动时间) | 当 start-time-selection 设为 set 时使用的启动时间。 • 标识:可读、可写 • 类型:无符号 64 位整数。范围:0 - 18446744073709551615 • 默认值:18446744073709551615 |
| background(背景) | 背景颜色。 • 标识:可读、可写,且在 NULL、READY、PAUSED、PLAYING 状态下可修改 • 类型:无符号整数。范围:0 - 4294967295 • 默认值:4286611584 |
Waylandsink 插件
waylandsink 插件基于 GStreamer 的 GstVideoSink 类实现,它依托 Wayland Weston 合成器工作 —— 会自行创建窗口,并将输入的视频帧渲染到该窗口中。 该插件会将 Weston 客户端的 API 与状态,映射为对应的 GStreamer API 与状态。高通对 waylandsink 的实现进行了扩展,新增了窗口定位功能的支持,同时添加了基于 GBM 的专属缓冲区后端(用于实现零拷贝),以及 XDG shell 后端。
💡 说明
在当前版本中,不支持x、y、width和height属性。| 属性名 | 描述说明 |
|---|---|
| name(名称) | 对象的名称。 • 标识:可读、可写 • 类型:字符串。默认值:"waylandsink0" |
| parent(父对象) | 对象的父对象。 • 标识:可读、可写 • 类型:"GstObject" 类型的对象 |
| sync(时钟同步) | 基于时钟进行同步。 • 标识:可读、可写 • 类型:布尔值。默认值:true |
| max-lateness(最大延迟) | 缓冲区被丢弃前允许的最大延迟时间(单位:纳秒,-1 表示无限制)。 • 标识:可读、可写 • 类型:64位整数。范围:-1 至 9223372036854775807,默认值:20000000 |
| qos(服务质量) | 向上游生成服务质量事件。 • 标识:可读、可写 • 类型:布尔值。默认值:true |
| async(异步) | 异步切换至PAUSED状态。 • 标识:可读、可写 • 类型:布尔值。默认值:true |
| ts-offset(时间戳偏移) | 时间戳偏移量(单位:纳秒)。 • 标识:可读、可写 • 类型:64位整数。范围:-9223372036854775808 至 9223372036854775807,默认值:0 |
| enable-last-sample(启用最后一帧) | 启用last-sample属性。 • 标识:可读、可写 • 类型:布尔值。默认值:true |
| last-sample(最后一帧) | 接收端接收到的最后一帧数据。 • 标识:可读 • 类型:"GstSample" 类型的装箱指针 |
| blocksize(块大小) | 每次拉取缓冲区的字节大小(0 表示默认)。 • 标识:可读、可写 • 类型:无符号整数。范围:0 - 4294967295,默认值:4096 |
| render-delay(渲染延迟) | 接收端的额外渲染延迟(单位:纳秒)。 • 标识:可读、可写 • 类型:无符号64位整数。范围:0 - 18446744073709551615,默认值:0 |
| throttle-time(节流时间) | 渲染缓冲区之间的间隔时间(0 表示禁用)。 • 标识:可读、可写 • 类型:无符号64位整数。范围:0 - 18446744073709551615,默认值:0 |
| max-bitrate(最大比特率) | 渲染的最大每秒比特数(0 表示禁用)。 • 标识:可读、可写 • 类型:无符号64位整数。范围:0 - 18446744073709551615,默认值:0 |
| show-preroll-frame(显示预滚帧) | 预滚阶段是否渲染视频帧。 • 标识:可读、可写 • 类型:布尔值。默认值:true |
| display(显示名称) | 用于建立连接的Wayland显示名称(若未通过GstContext提供)。 • 标识:可读、可写 • 类型:字符串。默认值:null |
| xdg-shell(XDG外壳) | 为显示使用XDG外壳协议。 • 标识:可读、可写 • 类型:布尔值。默认值:true |
| fullscreen(全屏) | 决定界面是否全屏显示。 • 标识:可读、可写,且在NULL、READY、PAUSED、PLAYING状态下可修改 • 类型:布尔值。默认值:false |
qtivsplit 插件
qtivsplit插件借助GPU硬件,将一路输入视频流拆分为多路输出流。流的数量是用户自定义的变量,且与源Pad的数量相等。 每个源Pad的“mode”属性,决定了对输入流的拆分方式。
| 运行模式 | 描述说明 |
|---|---|
| none | • 接收端Pad上的输入视频帧,会被复制到每个源Pad上。 • 会基于该Pad协商后的GstCaps,执行更多颜色转换与放大/缩小操作。 |
| single-roi-meta | • 会检查输入视频缓冲区中是否存在GstVideoRegionOfInterestMeta(感兴趣区域元数据)。 • 需确保源Pad创建时的数量,与单个GstBuffer中预期的GstVideoRegionOfInterestMeta最大数量相等。 • 若源Pad数量不足,没有对应Pad的ROI元数据会被忽略。 |
| batch-roi-meta | 对附加在缓冲区上的GstVideoRegionOfInterestMeta条目进行操作;与single-roi-meta不同的是,该模式下会将所有元数据条目以独立缓冲区的形式发送到Pad上。 |
| 属性名 | 描述说明 |
|---|---|
| name(名称) | 对象的名称。 • 标识:可读、可写 • 类型:字符串。默认值:"videosplit0" |
| parent(父对象) | 对象的父对象。 • 标识:可读、可写 • 类型:"GstObject" 类型的对象 |
| engine(引擎) | 用于转换操作的后端引擎。 • 标识:可读、可写 • 枚举类型:"GstVideoConverterBackend"。默认值:1,"gles" ◦ (1): gles - 使用基于 OpenGLES 的视频转换器 ◦ (2): fcv - 使用基于高通计算机视觉 SDK 的视频转换器 💡 说明:高通计算机视觉 SDK(fcv)引擎目前暂不支持 |
qtivtransform 插件
qtivtransform插件借助GPU硬件,根据元素属性对输入的YUV或RGB视频帧执行放大/缩小、翻转、旋转、裁剪及颜色转换操作。
| 属性名 | 用途说明 |
|---|---|
| Destination(目标位置) | 设置每路输入帧在输出画面中的X轴、Y轴摆放位置,同时指定放大/缩小的尺寸。 |
| Crop(裁剪) | 对源画面进行可选的裁剪处理。 |
| Rotate(旋转) | 将帧画面按直角角度旋转。 |
| • Flip-horizontal(水平翻转) • Flip-vertical(垂直翻转) | 分别对帧画面进行水平翻转和垂直翻转处理。 |
若未指定GstCaps源Pad的变换属性,插件会协商出与输入一致的能力。这种情况下,插件会以直通模式运行,直到参数发生变更。
该插件使用高通Adreno™ GPU提供的Qualcomm IB2C库来执行所有变换操作。该库被封装在自定义的GstC2dVideoConverter抽象层中,通过API来创建、配置并处理输入和输出缓冲区。
自定义缓冲区池类GstImageBufferPool可分配GBM或ION输出缓冲区,具体取决于GstImageBufferPool与下游插件之间协商的能力:
- GBM分配通过高通libgbm库完成。
- ION分配通过向内核发送IOCTL命令完成。
| 属性名 | 描述说明 |
|---|---|
| name(名称) | 对象的名称。 • 标识:可读、可写 • 类型:字符串。默认值:"videotransform0" |
| parent(父对象) | 对象的父对象。 • 标识:可读、可写 • 类型:"GstObject" 类型的对象 |
| engine(引擎) | 用于转换操作的后端引擎。 • 标识:可读、可写 • 枚举类型:"GstVideoConverterBackend"。默认值:1,"gles" ◦ (1): gles - 使用基于 OpenGLES 的视频转换器 ◦ (2): fcv - 使用基于高通计算机视觉 SDK 的视频转换器 💡 说明:高通计算机视觉 SDK(fcv)引擎目前暂不支持 |
| flip-horizontal(水平翻转) | 水平翻转视频画面。 • 标识:可读、可写,且在NULL、READY、PAUSED、PLAYING状态下可修改 • 类型:布尔值。默认值:false |
| flip-vertical(垂直翻转) | 垂直翻转视频画面。 • 标识:可读、可写,且在NULL、READY、PAUSED、PLAYING状态下可修改 • 类型:布尔值。默认值:false |
| rotate(旋转) | 旋转视频画面。 • 标识:可读、可写,且在NULL、READY、PAUSED、PLAYING状态下可修改 • 枚举类型:"GstVideoTransformRotate"。默认值:0,"none" ◦ (0): none - 不旋转 ◦ (1): 90CW - 顺时针旋转90度 ◦ (2): 90CCW - 逆时针旋转90度 ◦ (3): 180 - 旋转180度 |
| crop(裁剪) | 输入画面内的裁剪矩形(格式:<X, Y, WIDTH, HEIGHT>)。 💡 说明:该属性不支持时间同步。 • 标识:可读、可写,且在NULL、READY、PAUSED、PLAYING状态下可修改 • 类型:gint类型的GstValue数组 |
| destination(目标区域) | 输出画面内的目标矩形(格式:<X, Y, WIDTH, HEIGHT>)。 • 标识:可读、可写,且在NULL、READY、PAUSED、PLAYING状态下可修改 • 类型:gint类型的GstValue数组 |
| background(背景) | 背景颜色。 • 标识:可读、可写,且在NULL、READY、PAUSED、PLAYING状态下可修改 • 类型:无符号整数。范围:0 - 4294967295 • 默认值:4286611584 |
qtisocketsink 插件
qtisocketsink插件通过UNIX套接字,将基于文件描述符(FD)的GstBuffer传输到其他进程,而qtisocketsrc是对应的接收入口。 qtisocketsink插件需要一个UNIX域套接字文件(需以.sock为后缀),并将其作为socket属性传入,以此实现FD的传输。 从其他进程传递到该插件的缓冲区会通过引用计数器进行跟踪:当缓冲区通过套接字发送或返回时,引用计数器会相应地递增或递减。 以下是可通过qtisocketsink进行的部分配置:
| 属性名 | 配置说明 |
|---|---|
| async | 设为false时,套接字会异步切换至PAUSED状态。 |
| max-lateness | 调整缓冲区被丢弃前允许的最大延迟时间(单位:纳秒)。 |
| max-bitrate | 设置渲染的最大每秒比特数。 |
| 属性名 | 描述说明 |
|---|---|
| name(名称) | 对象的名称。 • 标识:可读、可写 • 类型:字符串。默认值:"fdsocketsink0" |
| parent(父对象) | 对象的父对象。 • 标识:可读、可写 • 类型:"GstObject" 类型的对象 |
| sync(时钟同步) | 基于时钟进行同步。 • 标识:可读、可写 • 类型:布尔值。默认值:true |
| max-lateness(最大延迟) | 缓冲区被丢弃前允许的最大延迟时间(单位:纳秒,-1 表示无限制)。 • 标识:可读、可写 • 类型:64位整数。范围:-1 至 9223372036854775807,默认值:-1 |
| qos(服务质量) | 向上游生成服务质量事件。 • 标识:可读、可写 • 类型:布尔值。默认值:false |
| async(异步) | 异步切换至PAUSED状态。 • 标识:可读、可写 • 类型:布尔值。默认值:true |
| ts-offset(时间戳偏移) | 时间戳偏移量(单位:纳秒)。 • 标识:可读、可写 |
| enable-last-sample(启用最后一帧) | 启用last-sample属性。 • 标识:可读、可写 • 类型:布尔值。默认值:true |
| last-sample(最后一帧) | 接收端接收到的最后一帧数据。 • 标识:可读 • 类型:"GstSample" 类型的装箱指针 |
| blocksize(块大小) | 每次拉取缓冲区的字节大小(0 表示默认)。 • 标识:可读、可写 • 类型:无符号整数。范围:0 - 4294967295,默认值:4096 |
| render-delay(渲染延迟) | 接收端的额外渲染延迟(单位:纳秒)。 • 标识:可读、可写 • 类型:无符号64位整数。范围:0 - 18446744073709551615,默认值:0 |
| throttle-time(节流时间) | 渲染缓冲区之间的间隔时间(0 表示禁用)。 • 标识:可读、可写 • 类型:无符号64位整数。范围:0 - 18446744073709551615,默认值:0 |
| max-bitrate(最大比特率) | 渲染的最大每秒比特数(0 表示禁用)。 • 标识:可读、可写 • 类型:无符号64位整数。范围:0 - 18446744073709551615,默认值:0 |
| socket(套接字) | UNIX域套接字的路径。 • 标识:可读、可写,仅在NULL或READY状态下可修改 • 类型:字符串。默认值:null |
qtisocketsrc 插件
qtisocketsrc插件通过UNIX套接字,接收来自以qtisocketsink为出口的其他进程所传输的、基于文件描述符(FD)的GstBuffer。 qtisocketsrc插件需要一个套接字文件(需以.sock为后缀),并将其作为socket属性传入,以此接收文件描述符。 在连接到套接字后,插件会轮询或等待接收GstBuffer,并用该缓冲区创建数据块,以容纳接收到的帧数据。 可对缓冲区进行如下自定义配置:
- 块大小(Block size):读取缓冲区的字节大小。
- 缓冲区数量(num-buffers):在发送EOF信号前,发送到输出端的缓冲区数量。
| 属性名 | 描述说明 |
|---|---|
| name(名称) | 对象的名称。 • 标识:可读、可写 • 类型:字符串。默认值:"fdsocketsrc0" |
| parent(父对象) | 对象的父对象。 • 标识:可读、可写 • 类型:"GstObject" 类型的对象 |
| blocksize(块大小) | 每次读取缓冲区的字节大小(-1 表示默认)。 • 标识:可读、可写 • 类型:无符号整数。范围:0 - 4294967295,默认值:4096 |
| num-buffers(缓冲区数量) | 发送EOS信号前输出的缓冲区数量(-1 表示无限制)。 • 标识:可读、可写 • 类型:整数。范围:-1 - 2147483647,默认值:-1 |
| typefind(类型检测) | 协商前执行类型检测(已弃用,无功能)。 • 标识:可读、可写、已弃用 • 类型:布尔值。默认值:false |
| do-timestamp(添加时间戳) | 将当前流时间应用到缓冲区。 • 标识:可读、可写 • 类型:布尔值。默认值:false |
| socket(套接字) | UNIX域套接字的路径。 • 标识:可读、可写,仅在NULL或READY状态下可修改 • 类型:字符串。默认值:null |
| timeout(超时时间) | 套接字连接超时时间。 • 标识:可读、可写,仅在NULL或READY状态下可修改 • 类型:无符号64位整数。范围:0 - 18446744073709551615,默认值:0 |
v4l2h264dec 插件
v4l2h264dec 插件使用 V4L2 API 对视频流进行解码,核心特点包括: 在支持的平台上,该插件借助 H.264 视频解码器,提供硬件加速的 H.264解码能力;
💡 提示:在当前版本中,读写属性仅支持`capture-io-mode`和`output-io-mode`,且这两个属性仅能与(5)`drmabuf-import - GST_V4L2_IO_DMABUF_IMPORT`属性配合使用。| 属性名 | 描述说明 |
|---|---|
| automatic-request-sync-point-flags(自动请求同步点标志) | 自动请求同步点时使用的标志。 • 标识:可读、可写 • 标志类型:"GstVideoDecoderRequestSyncPointFlags"。默认值:0x00000003,"corrupt-output+discard-input" ◦ (0x00000001): discard-input - GST_VIDEO_DECODER_REQUEST_SYNC_POINT_DISCARD_INPUT ◦ (0x00000002): corrupt-output - GST_VIDEO_DECODER_REQUEST_SYNC_POINT_CORRUPT_OUTPUT |
| automatic-request-sync-points(自动请求同步点) | 按需自动请求同步点。 • 标识:可读、可写 • 类型:布尔值。默认值:false |
| capture-io-mode(捕获I/O模式) | 捕获端I/O模式(与源Pad匹配)。 • 标识:可读、可写 • 枚举类型:"GstV4l2IOMode"。默认值:0,"auto" ◦ (0): auto - GST_V4L2_IO_AUTO ◦ (1): rw - GST_V4L2_IO_RW ◦ (2): mmap - GST_V4L2_IO_MMAP ◦ (3): userptr - GST_V4L2_IO_USERPTR ◦ (4): dmabuf - GST_V4L2_IO_DMABUF ◦ (5): dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT |
| device(设备路径) | 设备的路径。 • 标识:可读 • 类型:字符串。默认值:"/dev/video0" |
| device-fd(设备文件描述符) | 设备的文件描述符。 • 标识:可读 • 类型:整数。范围:-1 至 2147483647,默认值:-1 |
| device-name(设备名称) | 设备的名称。 • 标识:可读 • 类型:字符串。默认值:null |
| discard-corrupted-frames(丢弃损坏帧) | 丢弃标记为损坏的帧,而非将其作为输出处理。 • 标识:可读、可写 • 类型:布尔值。默认值:false |
| extra-controls(额外控制) | 设备的额外v4l2控制(CID)。 • 标识:可读、可写 • 类型:"GstStructure"类型的装箱指针 |
| max-errors(最大错误数) | 返回流错误前允许的连续解码器错误最大数量。 • 标识:可读、可写 • 类型:整数。范围:-1 至 2147483647,默认值:10 |
| min-force-key-unit-interval(强制关键单元最小间隔) | 强制关键单元请求之间的最小间隔(单位:纳秒)。 • 标识:可读、可写 • 类型:无符号64位整数。范围:0 - 18446744073709551615,默认值:0 |
| name(名称) | 对象的名称。 • 标识:可读、可写,0x2000 • 类型:字符串。默认值:"v4l2h264dec0" |
| output-io-mode(输出I/O模式) | 输出端I/O模式(与接收Pad匹配)。 • 标识:可读、可写 • 枚举类型:"GstV4l2IOMode"。默认值:0,"auto" ◦ (0): auto - GST_V4L2_IO_AUTO ◦ (1): rw - GST_V4L2_IO_RW ◦ (2): mmap - GST_V4L2_IO_MMAP ◦ (3): userptr - GST_V4L2_IO_USERPTR ◦ (4): dmabuf - GST_V4L2_IO_DMABUF ◦ (5): dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT |
| parent(父对象) | 对象的父对象。 • 标识:可读、可写,0x2000 • 类型:"GstObject"类型的对象 |
| qos(服务质量) | 处理来自下游的服务质量事件。 • 标识:可读、可写 • 类型:布尔值。默认值:true |
v4l2h265dec 插件
v4l2h265dec插件通过V4L2 API对视频流进行解码,核心特点如下: 在支持的平台上,该插件借助H.265视频解码器,提供硬件加速的H.265解码能力;
- V4L2:Linux系统中视频设备的标准接口,负责视频数据的捕获、编解码等操作;
- H.265:相比H.264压缩效率更高的视频编码格式,硬件加速解码可降低系统资源占用;
- GstVideoDecoder:GStreamer框架的视频解码器基类,确保插件兼容GStreamer的解码流程,便于与其他插件协同工作。
💡 提示:在当前版本中,读写属性仅支持`capture-io-mode`和`output-io-mode`,且这两个属性仅能与(5)`dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT`属性配合使用。| 属性名 | 描述说明 |
|---|---|
| automatic-request-sync-point-flags(自动请求同步点标志) | 自动请求同步点时使用的标志。 • 标识:可读、可写 • 标志类型:"GstVideoDecoderRequestSyncPointFlags"。默认值:0x00000003,"corrupt-output+discard-input" ◦ (0x00000001): discard-input - GST_VIDEO_DECODER_REQUEST_SYNC_POINT_DISCARD_INPUT ◦ (0x00000002): corrupt-output - GST_VIDEO_DECODER_REQUEST_SYNC_POINT_CORRUPT_OUTPUT |
| automatic-request-sync-points(自动请求同步点) | 按需自动请求同步点。 • 标识:可读、可写 • 类型:布尔值。默认值:false |
| capture-io-mode(捕获I/O模式) | 捕获端I/O模式(与源Pad匹配)。 • 标识:可读、可写 • 枚举类型:"GstV4l2IOMode"。默认值:0,"auto" ◦ (0): auto - GST_V4L2_IO_AUTO ◦ (1): rw - GST_V4L2_IO_RW ◦ (2): mmap - GST_V4L2_IO_MMAP ◦ (3): userptr - GST_V4L2_IO_USERPTR ◦ (4): dmabuf - GST_V4L2_IO_DMABUF ◦ (5): dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT |
| device(设备路径) | 设备的路径。 • 标识:可读 • 类型:字符串。默认值:"/dev/video0" |
| device-fd(设备文件描述符) | 设备的文件描述符。 • 标识:可读 • 类型:整数。范围:-1 至 2147483647,默认值:-1 |
| device-name(设备名称) | 设备的名称。 • 标识:可读 • 类型:字符串。默认值:null |
| discard-corrupted-frames(丢弃损坏帧) | 丢弃标记为损坏的帧,而非将其作为输出处理。 • 标识:可读、可写 • 类型:布尔值。默认值:false |
| extra-controls(额外控制) | 设备的额外v4l2控制(CID)。 • 标识:可读、可写 • 类型:"GstStructure"类型的装箱指针 |
| max-errors(最大错误数) | 返回流错误前允许的连续解码器错误最大数量。 • 标识:可读、可写 • 类型:整数。范围:-1 至 2147483647,默认值:10 |
| min-force-key-unit-interval(强制关键单元最小间隔) | 强制关键单元请求之间的最小间隔(单位:纳秒)。 • 标识:可读、可写 • 类型:无符号64位整数。范围:0 - 18446744073709551615,默认值:0 |
| name(名称) | 对象的名称。 • 标识:可读、可写,0x2000 • 类型:字符串。默认值:"v4l2h265dec0" |
| output-io-mode(输出I/O模式) | 输出端I/O模式(与接收Pad匹配)。 • 标识:可读、可写 • 枚举类型:"GstV4l2IOMode"。默认值:0,"auto" ◦ (0): auto - GST_V4L2_IO_AUTO ◦ (1): rw - GST_V4L2_IO_RW ◦ (2): mmap - GST_V4L2_IO_MMAP ◦ (3): userptr - GST_V4L2_IO_USERPTR ◦ (4): dmabuf - GST_V4L2_IO_DMABUF ◦ (5): dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT |
| parent(父对象) | 对象的父对象。 • 标识:可读、可写,0x2000 • 类型:"GstObject"类型的对象 |
| qos(服务质量) | 处理来自下游的服务质量事件。 • 标识:可读、可写 • 类型:布尔值。默认值:true |
v4l2h264enc 插件
v4l2h264enc插件通过V4L2 API对视频流进行编码,核心特点如下:
在支持的平台上,该插件借助H.264视频编码器,提供硬件加速的H.264编码能力;。
- V4L2:Linux系统中视频设备的标准接口,负责视频数据的编码、捕获等操作;
- H.264硬件加速编码:相比软件编码,可利用硬件(如GPU)专用模块提升编码效率,同时降低CPU资源占用;
- GstVideoEncoder:GStreamer框架的视频编码器基类,确保插件兼容GStreamer的编码流程,便于与其他插件(如采集、封装插件)协同工作。
| 属性名 | 描述说明 |
|---|---|
| capture-io-mode(捕获I/O模式) | 捕获端I/O模式(与源Pad匹配)。 • 标识:可读、可写 • 枚举类型:"GstV4l2IOMode"。默认值:0,"auto" ◦ (0): auto - GST_V4L2_IO_AUTO ◦ (1): rw - GST_V4L2_IO_RW ◦ (2): mmap - GST_V4L2_IO_MMAP ◦ (3): userptr - GST_V4L2_IO_USERPTR ◦ (4): dmabuf - GST_V4L2_IO_DMABUF ◦ (5): dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT |
| device(设备路径) | 设备的路径。 • 标识:可读 • 类型:字符串。默认值:"/dev/video1" |
| device-fd(设备文件描述符) | 设备的文件描述符。 • 标识:可读 • 类型:整数。范围:-1 至 2147483647,默认值:-1 |
| device-name(设备名称) | 设备的名称。 • 标识:可读 • 类型:字符串。默认值:null |
| extra-controls(额外控制) | 设备的额外v4l2控制ID(CID)。 • 标识:可读、可写 • 类型:"GstStructure"类型的装箱指针 |
| min-force-key-unit-interval(强制关键单元最小间隔) | 强制关键单元请求之间的最小间隔(单位:纳秒)。 • 标识:可读、可写 • 类型:无符号64位整数 • 范围:0 - 18446744073709551615,默认值:0 |
| name(名称) | 对象的名称。 • 标识:可读、可写,0x2000 • 类型:字符串。默认值:"v4l2h264enc0" |
| output-io-mode(输出I/O模式) | 输出端I/O模式(与接收Pad匹配)。 • 标识:可读、可写 • 枚举类型:"GstV4l2IOMode"。默认值:0,"auto" ◦ (0): auto - GST_V4L2_IO_AUTO ◦ (1): rw - GST_V4L2_IO_RW ◦ (2): mmap - GST_V4L2_IO_MMAP ◦ (3): userptr - GST_V4L2_IO_USERPTR ◦ (4): dmabuf - GST_V4L2_IO_DMABUF ◦ (5): dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT |
| parent(父对象) | 对象的父对象。 • 标识:可读、可写,0x2000 • 类型:"GstObject"类型的对象 |
| qos(服务质量) | 处理来自下游的服务质量事件。 • 标识:可读、可写 • 类型:布尔值。默认值:true |
| 控制名称 | 控制类型 | 参数说明 |
|---|---|---|
| horizontal_flip(水平翻转) | 布尔型 | • value=0:默认值 • flags=execute-on-write(写入时执行) |
| vertical_flip(垂直翻转) | 布尔型 | • value=0:默认值 • flags=execute-on-write(写入时执行) |
| rotate(旋转) | 整型 | • min=0(最小值) • max=270(最大值) • step=90(步长) • value=0:默认值 • flags=execute-on-write and modify-layout(写入时执行且修改布局) |
v4l2h265enc 插件
v4l2h265enc插件通过V4L2 API对视频流进行编码,核心特点如下: 在支持的平台上,该插件借助H.265视频编码器,提供硬件加速的H.265(MPEG-H第2部分)编码能力;
- V4L2:Linux系统中视频设备的标准接口,负责视频数据的编码、捕获等操作;
- H.265硬件加速编码:相比H.264,H.265压缩效率更高,硬件加速编码可利用专用硬件模块降低CPU占用,同时提升编码速度;
- GstVideoEncoder:GStreamer框架的视频编码器基类,确保插件兼容GStreamer的编码流程,便于与采集、封装等插件协同工作。
| 属性名 | 描述说明 |
|---|---|
| capture-io-mode(捕获I/O模式) | 捕获端I/O模式(与源Pad匹配)。 • 标识:可读、可写 • 枚举类型:"GstV4l2IOMode"。默认值:0,"auto" ◦ (0): auto - GST_V4L2_IO_AUTO ◦ (1): rw - GST_V4L2_IO_RW ◦ (2): mmap - GST_V4L2_IO_MMAP ◦ (3): userptr - GST_V4L2_IO_USERPTR ◦ (4): dmabuf - GST_V4L2_IO_DMABUF ◦ (5): dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT |
| device(设备路径) | 设备的路径。 • 标识:可读 • 类型:字符串。默认值:"/dev/video1" |
| device-fd(设备文件描述符) | 设备的文件描述符。 • 标识:可读 • 类型:整数。范围:-1 至 2147483647,默认值:-1 |
| device-name(设备名称) | 设备的名称。 • 标识:可读 • 类型:字符串。默认值:null |
| extra-controls(额外控制) | 设备的额外v4l2控制(CID)。 • 标识:可读、可写 • 类型:"GstStructure"类型的装箱指针 |
| min-force-key-unit-interval(强制关键单元最小间隔) | 强制关键单元请求之间的最小间隔(单位:纳秒)。 • 标识:可读、可写 • 类型:无符号64位整数。范围:0 - 18446744073709551615,默认值:0 |
| name(名称) | 对象的名称。 • 标识:可读、可写,0x2000 • 类型:字符串。默认值:"v4l2h265enc0" |
| output-io-mode(输出I/O模式) | 输出端I/O模式(与接收Pad匹配)。 • 标识:可读、可写 • 枚举类型:"GstV4l2IOMode"。默认值:0,"auto" ◦ (0): auto - GST_V4L2_IO_AUTO ◦ (1): rw - GST_V4L2_IO_RW ◦ (2): mmap - GST_V4L2_IO_MMAP ◦ (3): userptr - GST_V4L2_IO_USERPTR ◦ (4): dmabuf - GST_V4L2_IO_DMABUF ◦ (5): dmabuf-import - GST_V4L2_IO_DMABUF_IMPORT |
| parent(父对象) | 对象的父对象。 • 标识:可读、可写,0x2000 • 类型:"GstObject"类型的对象 |
| qos(服务质量) | 处理来自下游的服务质量事件。 • 标识:可读、可写 • 类型:布尔值。默认值:true |