1. 原由
昨天的博文如何使用Matlab绘制动态曲线,并生成gif图形居然登上了CSDN热搜,看来大家对于动态图片热情很高,今天看抖音时突发奇想,能否使用Matlab将抖音视频转换为gif图片呢?摸索一晚,小有所成,献给大家。
2. 方法
核心思路: 将抖音视频文件保存到本地,使用VideoReader函数读取视频,通过read函数读取制定时间的视频帧信息,再逐帧读取视频存放到frame框架中,最后由上一篇的Fun_F2gif函数将frame框架转换为gif图片。
作者按照上述思路开发了Fun_M2gif函数,可以简单便捷的将视频转换为gif图片。
function Fun_M2gif(Mfilename,t,filename,S)
%% Fun_M2gif(Mfilename,filename,S) 将文件名为Mfilename的视频文件转换为gif图片
% Mfilename为视频文件名称
% S为设置参数,默认为gif动画两帧之间的间隔
% filename为gif文件名,默认为 Mfilename.gif
% S为设置参数 S为单帧时间间隔,默认为0.01
3. 演示
3.1 将视频完整转换为gif图片
%% 1.测试一 极简调用法 将视频完整转换为gif图片
Fun_M2gif('Test1.mp4'); % 完整视频转换为gif图,保存为默认名称Test1.gif
3.2 将指定时间的视频片段转换为gif图片
% 测试二 将视频的片段转换为gif图片
Fun_M2gif('Test2.mp4',[2.5 4.5]); % 2.5-4.5s视频片段转换为gif图,保存为默认名称Test2.gif
3.3 改变gif图片的播放速度
Fun_M2gif('Test2.mp4',1.8,'Test2_B.gif',0.5); % 0-1.8s视频片段转换为gif图,,并保存为制定名称Test2_B.gif
%% 3. 测试三 改变gif图片的播放速度
Fun_M2gif('Test3.mp4',[1 2],'Test3_B.gif',1.5); % 1-2s视频片段转换为gif图,保存为名称Test3_B.gif,每帧延迟时间定义为1.5s
4. 联系作者
**有Matlab/Simulink方面的技术问题,欢迎发送邮件至944077462@qq.com讨论。更多Matlab/Simulink原创资料,欢迎关注微信公众号:Matlab Fans
源程序下载:
https://mp.weixin.qq.com/s/Xyw8nniYagA1sCbPshxz-Q