c++录屏、FFmpeg录屏、录屏格式转换
需求分析:
需要对软件的客户区进行录屏,但是找了半天资料发现并不好集成到我的软件当中,最后发现利用cmd命令调用ffmpeg.exe可以实现录屏功能,实现录屏以及录屏格式转换,相当有趣。
知识点:
1.FFmpeg是什么
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行。首先下载ffmpeg.exe放到新建bin文件夹中。
(1)“desktop”:抓取整张桌面。或者抓取桌面中的一个特定的区域。
(2)“title={窗口名称}”:抓取屏幕中特定的一个窗口。(但是中文的窗口是不行的,会出现乱码!)
ffmpeg -f gdigrab -framerate 5 -offset_x 10 -offset_y 20 -video_size 640x480 -i desktop out.mpg
2.如何执行cmd指令,并且隐藏进程,结束进程
请见我的另一篇文章。
功能实现:
string ifoutput = "..bin\\output.mpg";fstream _file;_file.open(ifoutput, ios::in);//判断文件是否存在if (!_file){_file.close();}else{_file.close();DeleteFile(L"..bin\\output.mpg");//删除文件DeleteFile(L"..bin\\output.mp4");}POINT lpPoint, lpPoint1;int w = lpPoint1.x - lpPoint.x;char ww[10]; itoa(w, ww , 10);int h = lpPoint1.y - lpPoint.y;char hh[10];itoa(h, hh, 10);...
//由于我的软件名字为中文,所以我获取的是软件在桌面的坐标char xx[10];itoa(lpPoint.x, xx, 10);char yy[10];itoa(lpPoint.y, yy, 10);
string exe = "..\\bin\\ffmpeg.exe -f gdigrab -framerate 50 -offset_x ";exe += xx;//获取的左上角xexe += " -offset_y ";exe += yy;//获取的左上角y
exe += " -video_size ";exe += ww;exe += "x";exe += hh;exe += " -i desktop ";string output = "..\\bin\\output.mpg";//生成的是mpg格式视频exe += output;system(exe.c_str());//会出现控制台
转换为mp4格式:
TCHAR szCommandLine[] = TEXT("..bin\\ffmpeg.exe -i ..bin\\output.mpg -vcodec libx264 -acodec aac ..bin\\output.mp4");STARTUPINFO si = { sizeof(si) };PROCESS_INFORMATION pi; si.wShowWindow = FALSE;si.dwFlags = STARTF_USESHOWWINDOW;BOOL ret = ::CreateProcess(NULL, szCommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);WaitForSingleObject(pi.hProcess, INFINITE);//等待进程完成
c++录屏、FFmpeg录屏、录屏格式转换相关推荐
- FFmpeg学习4:音频格式转换
前段时间,在学习试用FFmpeg播放音频的时候总是有杂音,网上的很多教程是基于之前版本的FFmpeg的,而新的FFmepg3中audio增加了平面(planar)格式,而SDL播放音频是不支持平面格式 ...
- 史林枫:C#.NET利用ffmpeg操作视频实战(格式转换,加水印 一步到位)
ffmpeg.exe是大名鼎鼎的视频处理软件,以命令行参数形式运行.网上也有很多关于ffmpeg的资料介绍.但是在用C#做实际开发时,却遇到了几个问题及注意事项,比如如何无损处理视频?如何在转换格式的 ...
- Java借助ffmpeg进行音视频的格式转换(如m4a转mp3)
FFmpeg 是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用 LGPL 或GPL 许可证(依据你选择的组件) FFmpeg 官网: FFMPEG分为3个版本:Static,Shared,D ...
- 利用ffmpeg将.m4s的视频格式转换成.mp4
下载ffmpeg 下载地址:https://www.gyan.dev/ffmpeg/builds/ 点击红色链接就可以下载,一般下载.zip格式就好,当然也可以选择.7z 题外话:什么是ffmpeg ...
- C# 使用IMAPI2行光盘刻录 支持多段封口及VCD/DVD刻录 集成FFMPEG
使用IMAPI2 进行光盘多段/封口刻录 擦除 支持XP 03. 集成视频格式转换 获取驱动 读取光盘信息 读取媒体支持信息 读取速度值 初始化.NET FFMPEG 组件 刻录 格式化媒体>创 ...
- windows安装ffmpeg_免费实用的录屏工具!支持全屏、特定窗口、选定区域录制,支持添加水印、嵌入摄像头(附ffmpeg安装)...
哈喽大家好,我是菌菌~ 在线授课.游戏录制.视频编辑.网上会议--现如今,视频录制非常火爆,一款好用的视频录制工具自然必不可少. 今天,菌菌就给大家分享3款免费又好用的电脑录屏工具,一起来看看吧! w ...
- 利用FFmpeg实现录屏、直播推流、音频视频格式转换、剪裁等功能
一.FFmpeg简介. 二.FFmpeg常用参数及命令. 三.FFmpeg在Unity 3D中的使用. 1.FFmpeg 录屏. 2.FFmpeg 推流. 3.FFmpeg 其他功能简述. 一.FFm ...
- Mac录屏减少文件体积和格式转换
有Mac录屏的需求,Mac自带的录屏软件挺好用的.就是默认帧率高达 60fps,文件体积比较大.文件是 .mov 格式不通用. 我平时录屏的内容就是演示一些软件的基本操作发送给客户,通常是临时录制(非 ...
- 桌面录屏录音技术,录屏软件原理
要实现MP4录屏功能,有很多种方法. 方法一: 可以借助于ffmpeg工具.基于以下命令: 录制视频 ffmpeg -f dshow -i video="screen-capture-rec ...
最新文章
- 2016多校赛2 A 数学推公式 E 极角排序,组合数(待补) L dp+bitset优化
- Java项目:人事管理系统(java+javaweb+jdbc)
- RDKit | 分子坐标的测量和绘图
- es6学习---.babelrc文件
- 助力健康中国,国内首个中文医疗信息处理挑战榜正式发布
- python最流行的框架_2020年最流行Python web开发框架(下)
- flume spooldir bug修复
- pipeline代码自动生成
- 腾讯朋友、钉钉等被微信违规公示点名;谷歌更新安卓修复数百万台芯片漏洞;微软终止支持.NET Core 3.0 | 极客头条...
- B6-简析响应者链条
- 807. 保持城市天际线
- 解决方案: NIS+NFS+AUTOFS
- cygwin中如何使用gcc
- nvidia控制面板只有3d设置?
- 第一行代码 Hello world
- 如何将硬盘数据迁移包括系统一起迁移到另一个硬盘?
- python验证考拉兹猜想_Python考拉兹猜想输出序列代码实践
- 如何建立企业级数据分析能力?
- 我学历低,学软件测试能找到工作吗?
- 小红书商品详情API接口(商品详情页面数据接口)