ffmpeg
很菜但努力
C++爱好者,技术控~~~
展开
-
菜鸟学ffmpeg音视频技术之5 使用GDI抓取图像
本文介绍如何使用windows GDI抓取图像并将图像转化为RGB,这样可以传递给FFMPEG进行编解码。步骤如下:1.获取屏幕或者窗口句柄首先通过FindWindow找到对应窗口的HWND,桌面HWND 为NULL。录制分为屏幕录制和窗口录制,对于使用GDI抓图来讲就是获取对应对象的句柄使用GetWindowDC来获取对应的设备描述符;hdc_screen = GetWindowDC(hwnd)2.创建内存hdchdc_mem = CreateCompatibleDC(hdc原创 2020-12-18 14:01:37 · 777 阅读 · 2 评论 -
菜鸟学ffmpeg音视频技术之4 使用d3d 抓屏幕图像
本篇介绍如何使用d3d 9抓取屏幕图像,并将图像转化为RGB数据,转化后的数据可直接传递给FFmpeg进行编解码。获取桌面数据容易,转为RGB网上的例子就少了,大多只会使用D3D api保存为一个图片,本文解决了这个难题,如果你想使用D3D抓图然后使用FFMPEG进行录制会对你有所帮助。1.创建D3D对象_d3d = Direct3DCreate9(D3D_SDK_VERSION);2.获取display配置 memset(&_d3d_displaymode...原创 2020-12-11 15:43:47 · 508 阅读 · 0 评论 -
菜鸟学ffmpeg音视频技术之三实现命令录制(细节相关)
前面我使用video=screen-capture-recorder实现了录制的相关功能,这一节来讨论下我踩的坑。1.screen-capture-recorder只能录制主屏幕,如果电脑连接了扩展屏,想要录制扩展屏只能让扩展屏设置成主屏才能2.screen-capture-recorder无法设置录制的起始位置和大小,只能录制整个屏幕,想要录制某个区域只能先录制整个屏幕在使用ffmpeg命令来裁剪,这个跟组合录制一样。启动一个进程来完成即可。3.注意设备的类型,如果是dshow一定要设置d原创 2020-11-20 14:32:52 · 742 阅读 · 1 评论 -
菜鸟学ffmpeg音视频技术之二实现命令录制(暂停,组合)
前一节已经实现了录制,只能录制一段视频,实际运用中我们可能会暂停,然后接着录制最终生成一条完整的视频。我们在使用命令行操作ffmpeg时组合各段视频的命令如下:ffmpeg -f conccat -safe 0 -iconccatfile -c copy dirfile所以我的方法是暂停录制后生成一条临时视频,并把临时视频的文件名保存在conccatfile里面。重新开始录制又重新录制一条临时视频,这样如果一直反复暂停录制开始录制,会生成多个临时文件。停止录制时将这些视频组合成一条视频,从而完.原创 2020-11-20 14:13:01 · 1439 阅读 · 0 评论 -
菜鸟学ffmpeg音视频技术之一实现命令录制
ffmpeg就不解释了,太多资料了,著名的开源做音视频的库学些录制的动力是目前所在公司使用OBS录屏存在一些问题,录制窗口有些显卡会黑屏,录制屏幕会把电脑的其他软件也会录制进去,理想的录制方式是组合录制方式,把想录制的录制进去,不像录制的去掉。比如一个软件中有多个窗口,只想录制其中一些。希望后续能成功立一个flag。ffmpeg使用的方式有两种,一种是命令模式,一种是api模式,要实现我想要录制应该是api模式能实现,这里我先使用api实现录制,了解一下录制原理。为了方便依旧使用qt来实现。.原创 2020-11-16 18:17:58 · 794 阅读 · 0 评论