FFmpeg4.0笔记:采集系统声音
Github
https://github.com/gongluck/FFmpeg4.0-study/tree/master/Cff
// 采集系统声音
void test_systemsound()
{
bool ret = false;
std::string err;
CDemux demux;
CDecode decode;
ret = demux.device_register_all(err);
TESTCHECKRET(ret);
ret = demux.set_input_format("dshow", err); //采集声卡
TESTCHECKRET(ret);
ret = demux.set_dic_opt("framerate", "15", err);
TESTCHECKRET(ret);
ret = demux.set_demux_callback(DemuxSystemSoundCB, &decode, err);
TESTCHECKRET(ret);
ret = demux.set_demux_status_callback(DemuxStatusCB, &demux, err);
TESTCHECKRET(ret);
ret = demux.set_input("audio=virtual-audio-capturer", err);
TESTCHECKRET(ret);
ret = demux.openinput(err);
TESTCHECKRET(ret);
g_vindex = demux.get_steam_index(AVMEDIA_TYPE_VIDEO, err);
std::cout << err << std::endl;
g_aindex = demux.get_steam_index(AVMEDIA_TYPE_AUDIO, err);
std::cout << err << std::endl;
ret = decode.set_dec_callback(DecAudioFrameCB, &decode, err);
TESTCHECKRET(ret);
ret = decode.copy_param(demux.get_steam_par(g_aindex, err), err);
TESTCHECKRET(ret);
ret = decode.codec_open(err);
TESTCHECKRET(ret);
ret = demux.begindemux(err);
TESTCHECKRET(ret);
std::cout << "input to stop demuxing." << std::endl;
std::cin.get();
ret = demux.stopdemux(err);
TESTCHECKRET(ret);
}
FFmpeg4.0笔记:采集系统声音的更多相关文章
- FFmpeg4.0笔记:rtsp2rtmp
Github https://github.com/gongluck/FFmpeg4.0-study.git #include <iostream> using namespace std ...
- FFmpeg4.0笔记:file2rtmp
Github: https://github.com/gongluck/FFmpeg4.0-study.git #include <iostream> using namespace st ...
- FFmpeg4.0笔记:封装ffmpeg的解封装功能类CDemux
Github https://github.com/gongluck/FFmpeg4.0-study/tree/master/Cff CDemux.h /*********************** ...
- FFmpeg4.0笔记:封装ffmpeg的视频帧转换功能类CSws
Github https://github.com/gongluck/FFmpeg4.0-study/tree/master/Cff CSws.h /************************* ...
- FFmpeg4.0笔记:封装ffmpeg的音频重采样功能类CSwr
Github https://github.com/gongluck/FFmpeg4.0-study/tree/master/Cff CSwr.h /************************* ...
- FFmpeg4.0笔记:封装ffmpeg的解码功能类CDecode
Github https://github.com/gongluck/FFmpeg4.0-study/tree/master/Cff CDecode.h /********************** ...
- FFmpeg4.0笔记:本地媒体文件解码、帧格式转换、重采样、编码、封装、转封装、avio、硬解码等例子
Github https://github.com/gongluck/FFmpeg4.0-study/blob/master/official%20example/my_example.cpp #in ...
- FFmpeg4.0笔记:采集桌面
Github https://github.com/gongluck/FFmpeg4.0-study/tree/master/Cff // 采集桌面 void test_desktop() { boo ...
- FFmpeg4.0笔记:VS2019编译FFmpeg4.0源码
0.下载TDM.msys和yasm 1.安装TDM-GCC-64 2.安装msys到TDM-GCC的安装目录中 3.将call "C:\Program Files (x86)\Microso ...
随机推荐
- AcWing:173. 矩阵距离(bfs)
给定一个N行M列的01矩阵A,A[i][j] 与 A[k][l] 之间的曼哈顿距离定义为: dist(A[i][j],A[k][l])=|i−k|+|j−l|dist(A[i][j],A[k][l]) ...
- 使用yum安装nginx
在CentOS 7中安装Nginx. 当使用以下命令安装Nginx时,发现无法安装成功. 1 yum install -y nginx 需要做一点处理. 安装Nginx源 执行以下命令: 1 rpm ...
- Javascript引擎的单线程机制和setTimeout执行原理阐述
工作中使用setTimeout解决了一个问题,于是对setTimeout的相关资料整理了下,以及对js引擎执行的原理一并整理了下,希望能给码农们一些帮助.若发现有错的地方大家及时指出,共同学习进步. ...
- (三)C语言之变量
- 2.1 MATLAB的数据类型
2.1 MATLAB的数据类型 每种数据类型都是以矩阵的形式存在的 数据类型:数值型.字符型.元胞型.结构体.函数句柄 数值型包含:双精度类型.单精度类型.整型 支持不同数据的转换 2.1.1 变量与 ...
- JSP——JavaServer Page中的隐式对象(implicit object)、指令(directive)、脚本元素(scripting element)、动作(action)、EL表达式
目录 1.JSP概述 2.注释(comment) 2.1.JSP注释 2.2.HTML注释 3.隐式对象(implicit object) 3.1.隐式对象清单 3.2.request对象 3.3.o ...
- python正则表达式解析(re)
正则表达式的使用方法主要有4种: re.search(进行正则匹配), re.match(从头开始匹配) re.findall(找出所有符合条件的字符列表) re.split(根据条件进行切分) ...
- openerp学习笔记 计划动作、计划执行(维护计划)
示例代码: data/scheduler.xml <?xml version="1.0" encoding="utf-8"?><openerp ...
- maven 打包异常
异常信息: [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.1.6.RELEASE ...
- Log4J日志组件
Log4j, log for java, 开源的日志组件! 使用步骤: 1. 下载组件,引入jar文件; log4j-1.2.11.jar 2. 配置 : src/log4j.properties ...