1.OBS的初始化程序中,

首先会调用ResetVideo,执行顺序如下:

(1).ResetVideo—>(2).AttemptToResetVideo—>(3).obs_reset_video—>(4).obs_init_video—>(5).video_output_open—>(6).if (pthread_create(&out->thread, NULL, video_thread, out) != 0)

最后创建了video_thread,我们看看video_thread线程的处理流程:

在video_thread中,一直等待update_semaphore后,这个信号是采集到视频图像后post出来的;

obs_video_thread—>output_frame—>output_video_data—>video_output_unlock_frame—>update_semaphore;

可以看到在obs_video_thread线程中,通知video_thread线程对采集的数据编码推流;

后面再分析具体分析下obs_video_thread线程,先看看win-dshow如何采集视频的:

首先在win-dshow.cpp中主要实现音视频采集功能:

通过UpdateVideoConfig中注册OnVideoData函数,UpdateVideoConfig在device.cpp中,用dshow接口会调HDevice::Receive接口将获取的音视频回调。

在device.cpp中,SetupVideoCapture,而在这个函数中会调用:

videoCapture = new CaptureFilter(info);

OBS视频采集流程分析相关推荐

  1. WebRTC视频数据流程分析

    本文来自<WebRTC Native开发实战>书籍作者许建林在LiveVideoStack线上分享中的内容,详细分析总结 WebRTC 的视频数据流程,并对大型项目如何快速上手:分析方法, ...

  2. WeBRTC IOS视频采集流程

    因CSDN MardDown语法问题,流程图部分不兼容有道云笔记,所以流程图部分请拷贝到有道云笔记生成查看. iOS视频录制: 同拍照一样视频录制功能有两种实现方式 UIImagePickerView ...

  3. Android端WebRTC本地音视频采集流程源码分析

    WebRTC源码版本为:org.webrtc:google-webrtc:1.0.32006 本文仅分析Java层源码,在分析之前,先说明一下一些重要类的基本概念. MediaSource:WebRT ...

  4. WebRTC手记之本地视频采集

    转载请注明出处:http://www.cnblogs.com/fangkm/p/4374610.html 前面两篇文章介绍WebRTC的运行流程和使用框架接口,接下来就开始分析本地音视频的采集流程.由 ...

  5. Metal之实现视频采集与实时渲染

    一.视频渲染实现思路 ① 思路说明 通过AVFoundation进行视频数据的采集,并将采集到的原始数据存储到CMSampleBufferRef中,即视频帧数据(视频帧其实本质也是一张图片). 通过C ...

  6. windows下directShow音视频采集

    目录 前言 一.DirectShow简介 二.DirectShow视频采集主要流程介绍 1.DirectShow视频采集主要API介绍 三.视频采集软件设计框图 四.音频采集软件设计框图 <wi ...

  7. v4l2视频采集驱动框架(vfe, camera i2c driver,v4l2_subdev等之间的联系)

    2014年的博文就从这篇文章开始吧,又一次回到linux,过去的一年从dm3730再到dm6437,这次来到了全志的A31 4核处理器,每一次都是全新的事物,但是偶然间还是可以感受到对新事物的消化能力 ...

  8. OBS源码分析--视频采集显示

    OBS如何进行初始化视频采集的: 首先,在OBS的初始化程序中,会调用ResetVideo==>AttemptToResetVideo==>obs_reset_video==>obs ...

  9. webrtc源码分析之-从视频采集到编码流程

    peer_connection中从视频采集到编码的流程 摘要:本篇文章主要讲述当我们通过peer_connection完成推流时,视频从采集到编码是如何衔接的. 既,视频采集后如何传送到编码器.重点分 ...

  10. 安卓 camera 调用流程_音视频开发之旅(四)Camera视频采集

    目录 Camera基础知识 视频采集的流程 遇到的问题和常见的坑(重点) 收获 一. Camera基础知识 Camera 有几个重要的基础概念. facing相机的方向,一般后置摄像头和前置摄像头. ...

最新文章

  1. 论文: Data-Driven Evolutionary Optimization : An Overview and Case Studies(3) 总结部分以及自己的想法
  2. Open vSwitch(OVS)版本与Linux内核的关系
  3. 【错误记录】布局组件加载错误 ( Attempt to invoke virtual method ‘xxx$Callback android.view.Window.getCallback()‘ )
  4. linux popd 命令,在Linux系统中的Pushd命令与Popd命令,教你这两个命令的基本用法...
  5. Docker镜像与容器命令 专题
  6. U25%(1,16) and U25%(1,168)on《C4.5:programs for machine learning》
  7. 【蔡勒公式 】根据给定的年月日求出对应星期几
  8. 22468!Windows 11新预览版发布:旧版系统支持十月终止请速升
  9. Hadoop源代码分析(MapReduce概论)
  10. 网站主机 技术+类型
  11. Ubuntu 发布迁移手册,拉拢 Windows 7 用户
  12. android studio 更新 Gradle错误解决方法
  13. Mondrian xml服务mysql_mondrian与java工程的集成
  14. python伪装浏览器https_Python3 伪装浏览器的方法示例
  15. Docker:设置容器自动启动
  16. 报表工具Style Report报表打印功能
  17. Python下安装Opencv
  18. 机器学习算法工程师面试考点汇总
  19. EMI测试——CE(传导干扰)测试
  20. 这些联盟可以去注册试一下

热门文章

  1. Windows查看开关机记录
  2. JVM参数-X和-XX的区别
  3. 喜提JDK的BUG一枚!多线程的情况下请谨慎使用这个类的stream遍历。
  4. CSS系列之 box-sizing
  5. WDI面板数据(1990-2020)
  6. word文档输入带勾的复选框
  7. 【python第三方库】playwright简要入门
  8. 华为存储iscsi配置_使用华为存储配置ISCSI存储方法和iSCSI建立连接提示目标错误...
  9. 江西省电子专题大赛考点讲解七:NE555定时器
  10. mysql-connector-java连接失败问题