OBS的录制流程

软件的录屏使用

  1. 界面介绍
    OBS的录制流程_第1张图片
  2. 录屏–首先添加显示器的源,(可选)配置下载路径以及参数配置,点击开始录制。默认下载在c盘用户名下的video文件夹下
    OBS的录制流程_第2张图片
    OBS的录制流程_第3张图片

调试obs项目,分析

  1. obs-studio\UI\forms找到主界面ui文件,找到对应的按钮名字,全局搜索
    OBS的录制流程_第4张图片
  2. 录制按钮—触发click事件 on_recordButton_clicked()
  3. 其中核心是StartRecording函数- - 开始录制
    OBS的录制流程_第5张图片
  4. 对于录制的设置有两种模式。一、简单 二、高级 SimpleOutput AdvancedOutput 对应的类
    以SimpleOutput 类为例子
    其构造函数当中创建对应的编码器,主要函数 LoadStreamingPreset_h264
    OBS的录制流程_第6张图片
  5. 回归上文 – 录制跳转到SimpleOutput 的StartRecording函数当中。
    主要作用:更新编码器以及调用obs接口录制文件
    OBS的录制流程_第7张图片
  6. 主要使用到这一步,其实就可以了。
  7. 补充说明
    obs的源是有很多种的
    OBS的录制流程_第8张图片

obs不仅可以支持软编,也可以支持硬编。判断下自己电脑支持哪种硬件编码?

//obs源码
bool EncoderAvailable(const char *encoder)
{
	const char *val;
	int i = 0;

	while (obs_enum_encoder_types(i++, &val))
		if (strcmp(val, encoder) == 0)
			return true;

	return false;
}

//自己改写的函数
void OBSImp::FillSimpleRecordingValues()
{
    //默认是x264
    if (EncoderAvailable("obs_qsv11"))
        bool m_bEncodeObs_qsv11 = true;
    if (EncoderAvailable("ffmpeg_nvenc"))
        bool m_bEncodeFfmpeg_nvenc = true;
    if (EncoderAvailable("amd_amf_h264"))
        bool m_bEncodeAmd_amf_h264 = true;
}

你可能感兴趣的:(obs录屏,ffmpeg,obs,录屏)