视频编码参数与视频采集参数匹配策略
来源:互联网 发布:vim python 开发环境 编辑:程序博客网 时间:2024/06/07 00:16
在voip系统中,音视频客户端往往需要配置视频编码的分辨率,码率和帧率,其中分辨率和帧率是与采集息息相关的。一般的如果直接使用的是usb摄像头,对于不同厂家,不同规格的摄像头所支持的分辨率,图像格式和帧率是有很大不同的,以下是windows下获取摄像头支持格式属性的方法:
//hwnd为显示窗口的句柄 int CCamera::ShowCapturePropertyPage(HWND hWnd){if(!m_bInit)return -1;ISpecifyPropertyPages *pSpec;CAUUID cauuid;HRESULT hr = m_captureConfig->QueryInterface(IID_ISpecifyPropertyPages,(void**)&pSpec);if(hr == S_OK){hr = pSpec->GetPages(&cauuid);//获取指定摄像头的能力hr = OleCreatePropertyFrame(hWnd,200,200,NULL,1,(IUnknown **)&m_captureConfig,cauuid.cElems,(GUID*)cauuid.pElems,0,0,NULL);CoTaskMemFree(cauuid.pElems);pSpec->Release();}return 0;}
会产生如下对话框
如红框所示,依次为帧率,格式和分辨率,这几项的意思为在采集格式为YUY2时能够满足的最大的帧率为5帧,分辨率为1080P。有些摄像头往往支持的最大分辨率只能支持到VGA(640x480) 。在windows和linux下,摄像头的支持是有不同处理的:
在windows下通过directshow采集,其实不用关心采集的格式和帧率,通常都是将采集格式设置为rgb24直接进行采集,不管摄像头是否支持都可以采集出rgb的数据。通常关心的都是分辨率。
在linux下通过v4l2去采集,格式通常YUY2的,并且帧率是与摄像头实际帧率是相符合的,如上图,在YUY2模式下,最大的采集帧率只有5帧。
音视频客户端往往会将视频编码配置参数开放给用户设置,其中视频编码参数就包括视频的分辨率,帧率,码率。而分辨率需要摄像头去支持的,因为用户配置的分辨率摄像头不一定会支持,一个通常的策略是在摄像头不支持配置分辨率情况下,去取摄像头就近最满足的分辨率,如:
- 摄像头最大支持vga,用户配置的编码参数为720p,此时取vga,那么在编码前就需要将vga放大成720p的图像。
- 摄像头支持vga和1080p,配置的编码参数为720p,此时取最近一个支持的即要么是vga,要么是1080p,不管怎么选都是需要进行缩放的。
阅读全文
0 0
- 视频编码参数与视频采集参数匹配策略
- iOS 视频采集参数定义
- 视频编码参数
- 视频编码名词参数解释
- VFW视频采集方案(Captureparms参数详细)
- Linux视频采集与编码 V4L2
- webrtc视频采集后编码与发送
- iOS 音视频采集与编码
- ffmpeg摄像头视频采集 音频采集的正确参数
- ffmpeg摄像头视频采集 音频采集的正确参数
- V4L2视频采集与视频编码学习目录及总结
- V4L2视频采集与H.264编码源码大放送:Linux视频采集与编码
- 采用H264编码视频的参数设定
- 视频编码的常见参数基本概念
- 采用H264编码视频的参数设定
- 采用H264编码视频的参数设定
- 视频编码的常见参数基本概念
- 采用H264编码视频的参数设定
- 时间图片显示制作
- Pam认证详解
- jvav的 全局变量 和 局部变量
- mysql笔记4
- 到底买不买(20)
- 视频编码参数与视频采集参数匹配策略
- 基于无埋点技术的用户行为分析
- 欢迎使用CSDN-markdown编辑器
- 共享链小程序怎么开发
- Linux系统查看各种信息
- 从程序员到半个CTO
- 51nod 1101 DP
- 移植mtd-utils工具包--使用教程
- 68.设计模式笔记-状态模式