How to rotate a video 180 degrees?
19 views (last 30 days)
Show older comments
I have videos in .mp4 format and I need to rotate them vertically so that they will rotate 180 degrees.
I wrote the code and it rotates 180 degrees, however, it only takes one frame, so the video duration is 0 and the video is grayscale, which is a thing that I don't want since the video includes a red fixation point.
vidName = 'SID12.mp4';
vidPath = strcat(videosPathToBeEdited, vidName);
V= VideoReader(vidPath);
for k=1:video_duration*FrameRate
RGB= readFrame(V);
clear temp
image_rot = flipud( RGB );
rotated_vid = image_rot;
end
rotated_vid = rotated_vid(:,:,end:-1:1);
%calling save video function in another .m file
savemy_video(rotated_vid,[vidName(1:end-4), '_rev_rotated' video_duration_inname]);
Are there any easier and quicker ways to rotate a video? or if you could help me with this code would really appreciate it.
0 Comments
Accepted Answer
Stephan
on 3 Dec 2020
vidName = 'xylophone.mp4';
vidPath = strcat(videosPathToBeEdited, vidName);
V = VideoReader(vidName);
% read the complete video and flip it without loop
RGB = read(V);
RGB_flip = flipud(RGB);
% save the new file
V_flip = VideoWriter('C:\YOUR_PATH_NAME_HERE\xylophone_flip','MPEG-4');
open(V_flip)
writeVideo(V_flip,RGB_flip)
close(V_flip)
% read the flipped video
V_flip = VideoReader('C:\YOUR_PATH_NAME_HERE\xylophone_flip.mp4');
% play the flipped video
while hasFrame(V_flip)
frame = readFrame(V_flip);
imshow(frame)
pause(1/V_flip.FrameRate);
end
4 Comments
More Answers (0)
See Also
Categories
Find more on Audio and Video Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!