用matlab实现视频快速(N倍速)播放处理

最近拍了一些天空云朵的视频,但是云朵运动的太慢了,没有视觉震撼的效果,于是想起了自己用matlab处理以下吧,还真被我实现了,哈哈。。

首先得有一个自己的小视频,我用的视频就不上传了,想测试的话可以用手机自己拍一段。。。。

clc;clear;
close all;

obj = VideoReader('E:\Program\testpro\testfile.mp4');    % 获取句柄
% FrameVideo = obj.FrameRate;                              % 获取帧率及权重,可以不读
% Hight_video = obj.Height;
Framedata = read(obj);                                   % 读取视频
Datasize = size(Framedata);                              % 获得视频矩阵尺寸

Framedata1 = Framedata(:,:,:,1);                         % 获取第一帧图像
imshow(Framedata1);                                      % 查看第一帧图像
myv = VideoWriter('myvideo');                            % 创建句柄
myv.FrameRate = 30;                                      % 设置视频帧率
open(myv);                                               % 打开句柄
writeVideo(myv,Framedata(:,:,:,1:2:end));                % 写入视频,每两张抽取一张实现快进效果
close(myv);                                              % 关闭句柄,然后用视频软件就可以查看视频了

视频一般通过两种方式实现快速播放,一是抽样,就是原本400帧图像现在从中间抽出来100帧,就实现了4倍速播放;二是增加帧率,原本一秒钟播放30帧,现在我播放60帧,这就实现了2倍速播放。

当然了,前提是你的显卡支持这个帧率。。。

猜你喜欢

转载自blog.csdn.net/ruredfive/article/details/120261268