![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mac
很菜但努力
C++爱好者,技术控~~~
展开
-
Mac/OSX 系统如何采集扬声器(代码实现 附源码)
总所周知由于版权问题,mac系统是无法通过api采集扬声器的音量的,一些录屏软件大多采用soundflower,lookloop等插件来实现扬声器的采集。soundflower这种免费的插件已经没人维护了,最新的M1 已经无法使用了。这里推荐一个免费的支持M1架构的插件blackhole,操作与soundflower类似,创建一个多输出设备,将录制的扬声器设置为该多输出设备,看起来像这样:在我们使用obs,系统自带的录屏软件时就可以选择该输出设备作为扬声器采集从而实现扬声器音量采集。.原创 2021-09-15 19:16:44 · 1230 阅读 · 3 评论 -
qt mac窗体无边框后问题解决方案
文件后后缀名改为.mm设置无边框不使用qt自带的方式:void setWindowFrameless(QWidget *widget, bool bRound){ NSView* view = (NSView*)widget->winId(); NSWindow* wndd = [view window]; if(bRound) { wndd.titlebarAppearsTransparent = YES; wndd.tit...原创 2021-02-22 14:10:15 · 1171 阅读 · 4 评论 -
Qt 使用opengl绘制最简单方式
qt使用opengl绘制yuv网上得例子有很多,使用opengl函数进行绘制。这里介绍一个更加简单得方式。方法:1.使用libyuv库将yuv数据转化为RGB数据 libyuv::I420ToARGB((uint8_t*)Y_data_dest, dest_stride_Y, (uint8_t*)U_data_dest, dest_stride_U, (uint8_t*)V_data_dest, dest_stride_V, _rgbBuf...原创 2021-02-22 13:57:55 · 1324 阅读 · 1 评论 -
菜鸟学ffmpeg音视频技术之11 mac采集audio
ffmpeg虽然是跨平台库,mac和windows还是有区别的,这里介绍下mac如何打开audo并采集。1.查找解码器_input_fmt = av_find_input_format("avfoundation");2.打开设备 _fmt_ctx = avformat_alloc_context(); ret = avformat_open_input(&_fmt_ctx, device_name.c_str(), _input_fmt, NUL原创 2021-01-08 15:52:17 · 591 阅读 · 1 评论 -
菜鸟学ffmpeg音视频技术之10 mac截图包含鼠标
前面介绍了mac截图和截屏,但是截出来的图片都不包含鼠标。研究发现默认跟window一样,截图都不包含鼠标,如果需要鼠标,需要自己绘制上去。下面介绍如何将鼠标绘制上去1.获取鼠标图像NSImage *overlay = [[[NSCursor arrowCursor] image] copy];2.获取鼠标位置 NSPoint mouseLoc; mouseLoc = [NSEvent mouseLocation]; //get cur int原创 2021-01-08 15:31:34 · 292 阅读 · 1 评论 -
菜鸟学ffmpeg音视频技术之9 mac截取进程图像
前面介绍了mac系统如何截取窗口和屏幕,有时我们可能想截取的是一个进程的图像。我这里采用的方法是:截取进程主窗口的图片,然后将该进程的其他独立窗口截出来,然后绘制在主窗口图片之上。这里跟windows一样,使用GDI截图只能截取直接子窗口的图片,如果子窗口是独立窗口是截不进去的需要绘制。1.获取主窗口图片//mainwindow if( 0 == _main_record_window.Handle) { std::string mainrecordname;原创 2021-01-08 14:26:46 · 214 阅读 · 0 评论 -
菜鸟学ffmpeg音视频技术之8 mac窗口截图
https://blog.csdn.net/xpg4321/article/details/112358449介绍了如何枚举mac系统的窗口。下面介绍如何截取窗口图像。1.获取窗口信息参考前一节介绍的mac枚举窗口函数获取窗口信息。 if(nullptr == _screen_caputre) break; bool b = _screen_caputre->caputreWindow(_record_wind.原创 2021-01-08 14:16:53 · 345 阅读 · 0 评论 -
菜鸟学ffmpeg音视频技术之7 mac枚举窗口
https://blog.csdn.net/xpg4321/article/details/112357480介绍了如何截屏因为录制可能需要录制窗口,这里介绍如何枚举mac屏幕的窗口。1.定义保存窗口信息的结构struct WindowPoint { int x; int y; }; struct MousePoint { WindowPoint Position; WindowPoint HotSpot; }; stru.原创 2021-01-08 14:08:34 · 377 阅读 · 0 评论 -
菜鸟学ffmpeg音视频技术之6 mac截屏
前面介绍了window 使用gdi抓取屏幕的方法,现在介绍mac系统如何进行屏幕抓取,如果您使用的qt框架,当然可以使用qt更加方便。但是qt有一个bug,mac外界扩展屏时,如果扩展屏相对位置是左上,左边,左下截图是异常的。这里介绍使用mac原生api进行截图:1.获取屏幕区域 NSScreen *screen = [[NSScreen screens] objectAtIndex:screenNumber]; CGRect mainRect; mainRect.ori原创 2021-01-08 13:55:00 · 533 阅读 · 0 评论