需要對軟體的客戶區進行錄屏,但是找了半天資料發現並不好整合到我的軟體當中,最後發現利用cmd命令呼叫ffmpeg.exe可以實現錄屏功能,實現錄屏以及錄屏格式轉換,相當有趣。
ffmpeg有乙個專用於windows下螢幕錄製的裝置:gdigrab。gdigrab是基於gdi的抓屏裝置,可以抓取螢幕的特定區域。支援兩種方式的螢幕抓取:
(1)「desktop」:抓取整張桌面。或者抓取桌面中的乙個特定的區域。
(2)「title=」:抓取螢幕中特定的乙個視窗。(但是中文的視窗是不行的,會出現亂碼!)
從螢幕的(10,20)點處開始,抓取640x480的螢幕,設定幀率為5(幀率越大越流暢的,但是太大就沒什麼用了,浪費資源)。
ffmpeg -f gdigrab -framerate 5 -offset_x 10 -offset_y 20 -video_size 640x480 -i desktop out.mpg
請見我的另一篇文章。
string ifoutput = "..bin\\output.mpg";
fstream _file;
_file.open(ifoutput, ios::in);//判斷檔案是否存在
if (!_file)
else
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;//獲取的左上角x
exe += " -offset_y ";
exe += yy;//獲取的左上角y
exe += " -video_size ";
exe += ww;
exe += "x";
exe += hh;
exe += " -i desktop ";
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 = ;
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);//等待程序完成
如何免費錄屏?嗨格式錄屏大師更穩定
如何免費錄屏?追劇或看 電影時,想把精彩的畫面錄製下來 玩遊戲或者看直播時,想把精彩的操程式設計客棧作集錦錄製下來。上課或者 教程時,想要把實用的講解錄製下來。那麼我們如何才能免費的錄製這些 呢?跟著小編一起來看下吧。圖 如何免費錄屏 今天就給大家推薦兩中免費錄製 的方法,只要你有一台電腦,不僅可以...
什麼錄屏軟體好用?PC錄屏工具分享
什麼錄屏軟體好用?對於很多需要電腦錄屏的小夥伴來說,能夠找到乙個好用的錄屏軟體很重要。現在網上錄屏的方法有很多,不同的錄屏方法使用感之間有些差異。如果你也有電腦錄屏的需求,那下面分享的方法你需要知道!分享一 專業電腦錄屏軟體 如果需要錄製一些高質量的 建議使用 嗨格式錄屏大師 是一款適用於windo...
怎麼錄屏蘋果?錄屏蘋果電腦的方法
怎麼錄屏蘋果?目前有很多辦公族為了保證辦公的安全性和穩定性,都會選擇蘋果電腦作為辦公的裝置。但是在使用蘋果電腦的過程當中,也會遇到一些比較惱人的問題,那就是怎麼錄屏蘋果?那麼,怎麼才能實現更好的錄屏蘋果呢?其實您無需擔心,以下將為大家分享兩種錄屏蘋果電腦的方法,一起來看下吧。方法一 原始錄屏蘋果的方...