直播的模式火了之后很多软件都会集成音视频相关需求,下边我们先来讲一下摄像头视频采集:
视频模块
相关技术:OpenGLPlayer+videoinput。
视频信息采集到之后通过OpenGLPlayer(继承自QOpenGLWidget)进行绘制渲染。
Videoinput:视频信息采集库(感兴趣实现原理的可以看一下源码,C++实现)

封装一个线程类,在线程中启动videoInput对象,实现视频的采集,具体实现如下:
void run()
{
    videoInput VI;
    int devideNumber = m_deviceName.toInt();

VI.setIdealFramerate(devideNumber, 24);
    VI.setRequestedMediaSubType(m_pixelFormat);

bool res = VI.setupDevice(devideNumber, m_w, m_h);
    if (!res) {
        xs_log_error("setup camera error.");
        return;
    }

VI.setAutoReconnectOnFreeze(devideNumber, true, 240);

int width     = VI.getWidth(devideNumber);
    int height     = VI.getHeight(devideNumber);
    int size    = VI.getSize(devideNumber);
    unsigned char * bgr = new unsigned char[size];
    QImage img(width, height, QImage::Format_RGB888);

while (!m_stop) {
        //to get the data from the device first check if the data is new
        if(VI.isFrameNew(devideNumber)){
            VI.getPixels(devideNumber, bgr, true, false);    //fills pixels as a BGR (for openCV) unsigned char array - no flipping
            memcpy(img.bits(), bgr, size);
            //to do 每一帧视频数据绘制等
        }

msleep(30);
    }

VI.stopDevice(devideNumber);
}

音视频采集-摄像头视频采集(原理与实现)相关推荐

  1. Android 手机采集摄像头视频 socket 视频传输实时传播

    这里搜集了两种实现Android 手机采集摄像头视频 socket 视频传输实时传播的方法,两种都可以使用. 第一种如下: 1.通过客户端socket请求,服务端接受到请求后,获取socket的输出流 ...

  2. android 手机采集摄像头视频 socket 视频传输 实时传播

    一.具体流程: 1.通过客户端socket请求,服务端接受到请求后,获取socket的输出流对象outs. 2.服务端通过Camera的setPreviewCallback方法回调采集摄像头视频数据, ...

  3. 4.通过Opencv采集摄像头视频数据

    VideoCapture() 虚拟采集器,一般设备号从0开始 cap.read() 读取视频帧 返回值有两个,第一个为状态值,读到帧为true 第二个值为视频帧 cap.release() 释放资源 ...

  4. 【2012年终总结】之一 opencv + ds采集摄像头视频 MFC点点滴滴

    1.MFC单文档多文档程序 不让MFC来更新菜单 1 在CMainFrame::CMainFrame中添加 2 3 m_bAutoMenuEnable = FALSE; 标题栏图标的更改 1 //cu ...

  5. Android不显示Camera视频获取摄像头视频帧数据

    1.在Activity界面代码中: private var mCamera: Camera? = null private val mWidth = GwApplication.DEFAULT_REM ...

  6. opencv VideoWriter保存摄像头视频、本地视频等

    打开视频文件或摄像头视频需要使用Opencv中的VideoCapture类,保存视频或摄像头视频到本地磁盘,需要使用Opencv中的VideoWriter类. VideoWriter类的一个常用构造方 ...

  7. 摄像头视频采集压缩及传输

    摄像头视频采集压缩及传输 引言: 摄像头基本的功能还是视频传输,那么它是依靠怎样的原理来实现的呢?所谓视频传输: 就是将图片一张张传到屏幕,由于传输速度很快,所以可以让大家看到连续动态的画面,就像放电 ...

  8. 摄像头视频采集压缩及传输 1

    引言 : 摄像头基本的功能还是视频传输,那么它是依靠怎样的原理来实现的呢?所谓视频传输: 就是将图片一张张传到屏幕,由于传输速度很快,所以可以让大家看到连续动态的画面,就像放电影一样.一般当画面的传输 ...

  9. FFMPEG采集摄像头图像SDL渲染+MP4格式视频编码

    FFMPEG采集摄像头图像SDL渲染+MP4格式视频编码 FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音 ...

  10. 【Android音视频开发】- 实时采集视频

    前言 通过我的上一篇文章,可以知道直播大致有几个步骤:音视频采集 -> 美颜/滤镜/特效处理 -> 编码 -> 封包 -> 推流 -> 分发 -> 解码/渲染/播放 ...

最新文章

  1. nedata实时监控服务器运行情况
  2. 01. elastcsearch-monitor (es 监控)
  3. C++编译预处理:宏定义指令、文件包含指令和条件编译指令
  4. 【C++深度剖析教程1】C++中的经典问题解析-c++中的对象的构造顺序与析构顺序
  5. python 内置数据类型之数字
  6. opencv之绘制多边形----cv2.polylines, cv2.fillPoly
  7. 键盘上各种特殊符号的英文读法
  8. 操作系统课程设计 Kernel编译和WinDbg启动 批处理文件
  9. STM32串口通信(使用C8T6)
  10. 硅谷钢铁侠的的传奇人生
  11. 俺的web课设大作业
  12. 添加网络位置(共享目录)
  13. java三角形边长_java三角形怎么求边?
  14. linux,debian系统安装录制视频软件simplescreenRecorder
  15. meo学习笔记4:C++中对象占用内存情况
  16. android app 目标版本,android – 在gradle中使用目标sdk版本23时,ZBA...
  17. python简单抽奖系统_python实现的简单抽奖系统实例
  18. 2019-2020南邮《信息安全数学基础》期末考试回忆
  19. linux启动tomcat权限不足
  20. hdu3491 最小点割集(无向图求最小点割集通用方法)

热门文章

  1. html三角形下拉列表,select自定义小三角样式代码(实用总结)
  2. [Python]代码重复率查找工具Clone Digger
  3. 论文重复率一般要求是多少?
  4. Shiro安全框架的原理及实现步骤
  5. 通过R访问世界银行数据(World Bank Data)分析经济
  6. NAS(Network Attached Storage)协议
  7. 修复ipad提示无法连接到服务器,修复无法连接到iPad的App Store
  8. 婚纱摄影、影楼、照相馆流量制造工具预约系统之种草社区
  9. 弹幕视频社交时代:如何玩转弹幕文化
  10. 【黑马程序员】-c函数