OBS视频采集流程分析
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视频采集流程分析相关推荐
- WebRTC视频数据流程分析
本文来自<WebRTC Native开发实战>书籍作者许建林在LiveVideoStack线上分享中的内容,详细分析总结 WebRTC 的视频数据流程,并对大型项目如何快速上手:分析方法, ...
- WeBRTC IOS视频采集流程
因CSDN MardDown语法问题,流程图部分不兼容有道云笔记,所以流程图部分请拷贝到有道云笔记生成查看. iOS视频录制: 同拍照一样视频录制功能有两种实现方式 UIImagePickerView ...
- Android端WebRTC本地音视频采集流程源码分析
WebRTC源码版本为:org.webrtc:google-webrtc:1.0.32006 本文仅分析Java层源码,在分析之前,先说明一下一些重要类的基本概念. MediaSource:WebRT ...
- WebRTC手记之本地视频采集
转载请注明出处:http://www.cnblogs.com/fangkm/p/4374610.html 前面两篇文章介绍WebRTC的运行流程和使用框架接口,接下来就开始分析本地音视频的采集流程.由 ...
- Metal之实现视频采集与实时渲染
一.视频渲染实现思路 ① 思路说明 通过AVFoundation进行视频数据的采集,并将采集到的原始数据存储到CMSampleBufferRef中,即视频帧数据(视频帧其实本质也是一张图片). 通过C ...
- windows下directShow音视频采集
目录 前言 一.DirectShow简介 二.DirectShow视频采集主要流程介绍 1.DirectShow视频采集主要API介绍 三.视频采集软件设计框图 四.音频采集软件设计框图 <wi ...
- v4l2视频采集驱动框架(vfe, camera i2c driver,v4l2_subdev等之间的联系)
2014年的博文就从这篇文章开始吧,又一次回到linux,过去的一年从dm3730再到dm6437,这次来到了全志的A31 4核处理器,每一次都是全新的事物,但是偶然间还是可以感受到对新事物的消化能力 ...
- OBS源码分析--视频采集显示
OBS如何进行初始化视频采集的: 首先,在OBS的初始化程序中,会调用ResetVideo==>AttemptToResetVideo==>obs_reset_video==>obs ...
- webrtc源码分析之-从视频采集到编码流程
peer_connection中从视频采集到编码的流程 摘要:本篇文章主要讲述当我们通过peer_connection完成推流时,视频从采集到编码是如何衔接的. 既,视频采集后如何传送到编码器.重点分 ...
- 安卓 camera 调用流程_音视频开发之旅(四)Camera视频采集
目录 Camera基础知识 视频采集的流程 遇到的问题和常见的坑(重点) 收获 一. Camera基础知识 Camera 有几个重要的基础概念. facing相机的方向,一般后置摄像头和前置摄像头. ...
最新文章
- 论文: Data-Driven Evolutionary Optimization : An Overview and Case Studies(3) 总结部分以及自己的想法
- Open vSwitch(OVS)版本与Linux内核的关系
- 【错误记录】布局组件加载错误 ( Attempt to invoke virtual method ‘xxx$Callback android.view.Window.getCallback()‘ )
- linux popd 命令,在Linux系统中的Pushd命令与Popd命令,教你这两个命令的基本用法...
- Docker镜像与容器命令 专题
- U25%(1,16) and U25%(1,168)on《C4.5:programs for machine learning》
- 【蔡勒公式 】根据给定的年月日求出对应星期几
- 22468!Windows 11新预览版发布:旧版系统支持十月终止请速升
- Hadoop源代码分析(MapReduce概论)
- 网站主机 技术+类型
- Ubuntu 发布迁移手册,拉拢 Windows 7 用户
- android studio 更新 Gradle错误解决方法
- Mondrian xml服务mysql_mondrian与java工程的集成
- python伪装浏览器https_Python3 伪装浏览器的方法示例
- Docker:设置容器自动启动
- 报表工具Style Report报表打印功能
- Python下安装Opencv
- 机器学习算法工程师面试考点汇总
- EMI测试——CE(传导干扰)测试
- 这些联盟可以去注册试一下