SDK 增加视频压缩、截图和 MP4 文件功能

Magewell SDK 最近增加了几个比较重要的功能支持:H.264 视频压缩、MP4 文件格式输出和视频截图,本文对这些功能接口的使用进行简要介绍。

1、H.264 视频压缩函数调用的基本流程

  1. 首先检测本地环境是否支持使用 H.264 视频压缩,XIS_IsSupportH264;
  2. 然后启动视频采集,XIS_StartVideoCapture;
  3. 创建 H.264 编码器,XIS_CreateH264Encoder;
  4. 设置 H.264 视频压缩数据回调函数,XIS_SetH264EncoderCallback;
  5. 连接视频采集设备和 H.264 编码器,XIS_SetVideoCaptureEncoderOutput;
  6. 连接一旦建立,即开始进行 H.264 编码操作;
  7. 如果需要中止编码器的运行,需要在 XIS_SetVideoCaptureEncoderOutput 上将编码器指针设为空值,即可断开视频采集设备和 H.264 编码器的连接;
  8. 然后销毁 H.264 编码器,XIS_DestroyH264Encoder;
  9. 最后停止视频采集,XIS_StopVideoCapture。

2、H.264 编码器的硬件加速特性

在本地硬件环境允许的情况下,H.264 编码器会启用硬件加速特性,可以大大降低编码时对 CPU 的占用,可以使用 XIS_IsSupportH264HD 检查本地硬件环境是否支持硬件编码。 同时满足以下条件的硬件环境都可以支持硬件加速特性:

如果本地硬件环境不支持硬件编码,但 XIS_IsSupportH264 返回 TRUE,此时调用XIS_CreateH264Encoder 会创建 H.264 软件编码器。

点击下载本地硬件环境检测工具

3、H.264 编码器图像格式和位率控制

目前的 H.264 编码器只支持 NV12 和 I420 两种格式,设置为其它的图像格式,XIS_CreateH264Encoder函数都将返回错误。 H.264 编码器支持以下4个级别的画面质量:

4、MP4 格式的视频文件相关函数调用流程

  1. 首先需要创建 H.264 编码器;
  2. 创建 MP4 文件复合器,XIS_CreateMP4Muxer;
  3. 添加压缩视频流,XIS_MP4MuxerAddVideoStream;
  4. 然后就可以在 H.264 编码器的回调函数中向 MP4复合器写入视频数据,XIS_MP4MuxerPutFrame;
  5. 停止时直接销毁 MP4 复合器,XIS_DestroyMP4Muxer;

5、视频截图

在启动视频采集后,可以调用 XIS_VideoCaptureCreateSnapShot 生成指定路径的 jpg 图片文件,文件存放的目录需要提前创建好,如果已经存在同名文件,则该文件会被重写。

支持上述功能的 SDK 为 2013.01.04 (Build 5971) 及其以后的版本。

参考网站:
  1. http://www.ffmpeg.org
  2. http://www.videolan.org/developers/x264.html
  3. http://www.cnblogs.com/chuncn/archive/2011/02/25/1964548.html
  4. http://blog.sina.com.cn/s/blog_51396f890100pymn.html