专栏首页matlab爱好者用matlab打造属于自己屏幕录像工具

用matlab打造属于自己屏幕录像工具

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

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

经测试,录制两分钟的视频大约占用21MB左右存储空间,以下视频就是采用所编写的程序录制的,请大家欣赏!!!

视频内容
clc;clear;
% 创建用于录制音频的对象R
R = audiorecorder(22050,16,1);
% 定义录制长度,注意这里不是录制时长,是截屏的张数
len = 1000;
vd = cell(len,1);
tic;
% 开始声音录制
record(R);
for k = 1:len
% screensnap采用C语言编写,需要VC编译
% 下载地址:https://ww2.mathworks.cn/matlabcentral/fileexchange?q=screensnap
    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函数
% https://ww2.mathworks.cn/matlabcentral/fileexchange/8028-mmread
% https://ww2.mathworks.cn/matlabcentral/fileexchange/15881-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('清理完成');

视频中所有相关文件都已打包整理,需要的小伙伴请在公众号中回复“屏幕”或者“录像”即可获取下载链接。

本文分享自微信公众号 - matlab爱好者(matlabaihaozhe),作者:matlab爱好者

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 200多款plot/plot3自定义marker任你选

    以上罗列了202种可直接在plot/plot3曲线绘图种可以使用的marker,由于数量太多,小编在整理时漏标了第24号marker,因此25号即为实际上的24...

    matlab爱好者
  • matlab流程控制(一)

    感谢大家关注matlab爱好者公众号,今天给大家介绍matlab流程控制语句。在聊天栏中输入“007”、“流程”或“控制”即可快速获取本视频。通过下面网站即可观...

    matlab爱好者
  • 三维空间分布函数绘制实例

    这是过冷水之前在重要性抽样方法实例分享中的图片。这张图片的实际含义是以坐标原点为参考点,距离原点距离x处的小球个数f(x)分布图。这个问题理解起来好容易,就是统...

    matlab爱好者
  • Win10下录制屏幕

    以上是一个特别好用的GIF录制器,没错就是GIF因为是对于微信的平台来说是比较好的,因为对于一个GIF来讲微信平台是不需要去审核的。这个我这里就是简单的写一些安...

    云深无际
  • GifCam – 简单好用的 GIF 动画录制软件

    GifCam 是一款小而美的 GIF 录制软件。她拥有一个迷人的特点 —— 通过将软件置顶在所有窗口之上,你可以像相机一样调整录制区域,移动或缩放窗口。

    慕白
  • 录制屏幕?有它就够了。

    对于玩电脑很多的人来说,截屏、gif录制、屏幕录制三大功能几乎是不可避免的。今天就给大家介绍一款屏幕录制工具——Bandicam。相比于屏幕录制专家和kk录制等...

    课代表
  • LoadRunner12工具介绍(连载1)

    LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式,来确认和查找问题。LoadRunner能够对...

    小老鼠
  • 高清 GIF 录制工具 ScreenToGif

    以前经常使用 GifGifGif 来录制 gif 动画,但由于效果和不兼容 Win10,所以直接抛弃掉了,在寻觅更好的 gif 录制工具时找到了这款工具。我们来...

    我与梦想有个约会
  • 送你个动态图制作工具

    LICEcap是一款简洁易用的动画屏幕录制软件,它可将屏幕录像的内容直接保存为高质量(每帧颜色数量可超过256)GIF动态图片格式。并且支持特别标记鼠标操作动态...

    小诸葛
  • LeetCode 85 | 如何从矩阵当中找到数字围成的最大矩形的面积?

    今天是LeetCode专题53篇文章,我们一起来看看LeetCode中的85题,Maximal Rectangle(最大面积矩形)。

    TechFlow-承志

扫码关注云+社区

领取腾讯云代金券