24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1820  |  回复: 6
【奖励】 本帖被评价4次,作者googon增加金币 3.2

googon

木虫 (著名写手)


[资源] 用matlab打造属于自己的屏幕录像工具

现在网上的录屏软件可谓是五花八门,各有特色,收费免费的都有。可聪明的你,有没有想过用matlab打造一款属于自己的录屏工具呢?是的,没有看错,用matlab打造。网上介绍采用录制屏幕的资料很多,大部分都是录制gif动画(见:如何用matlab制作演示动画并存储)、录制无声视频等。采用今天介绍的方法将能同时录制声音和屏幕画面并保存。

下面来简单介绍一下实现原理,即在录制声音的同时录制屏幕,声音录制使用matlab内置的函数,录屏则是通过屏幕截图来实现的。将同步录制的声音和图片分别保存成音频和视频文件,在使用micah richert编写的mmread函数读取音频和视频,mmwrite函数来合并音频视频文件,最终完成屏幕录制。

闲话少说,直接上源代码
CODE:
clc;clear; % 创建用于录制音频的对象r r = audiorecorder(22050,16,1); % 定义录制长度,注意这里不是录制时长,是截屏的张数 len = 1000; vd = cell(len,1); tic; % 开始声音录制 record(r); for k = 1:len % screensnap采用c语言编写,需要vc编译  imwrite(screensnap(0),[num2str(k),'.jpg']); end % 截屏结束时停止声音录制 stop(r); disp('录制完成'); fr = toc; signal = getaudiodata(r); % 保存音频 audiowrite('myspeech.wav',signal,22050,'bitspersample',16); ved = videowriter('myspeech.avi'); ved.framerate = floor(len/fr); open(ved); % 截图生成视频文件 for k = 1:len writevideo(ved,imread([num2str(k),'.jpg'])); end close(ved); % 音视频合并需要用到micah richert编写mmread和mmwrite函数  [~, audio] = mmread('myspeech.wav'); [video, ~] = mmread('myspeech.avi'); mmwrite('myspeech.wmv',audio,video); disp('处理完成'); delete('myspeech.wav'); delete('myspeech.avi'); for k = 1:len delete([num2str(k),'.jpg']); end disp('清理完成');

[ Last edited by 月只蓝 on 2019-5-25 at 09:37 ]
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 用matlab打造自己的屏幕录像专家.rar
  • 2019-05-14 20:34:34, 12.72 M

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

googon

木虫 (著名写手)


2楼2019-06-02 06:46:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lizfyx

铁虫 (初入文坛)


谢谢分享!点赞!
6楼2020-02-24 22:52:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
2019-06-26 11:05   回复  
五星好评  顶一下,感谢分享!
csuzcx4楼
2020-02-14 17:40   回复  
五星好评  顶一下,感谢分享!
lizfyx5楼
2020-02-24 22:51   回复  
五星好评  顶一下,感谢分享!
zzgzzg4137楼
2020-07-15 16:48   回复  
五星好评  顶一下,感谢分享!
相关版块跳转 我要订阅楼主 googon 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见