How to rotate a video 180 degrees?
16 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Gulce Lale
el 2 de Dic. de 2020
Comentada: Stephan
el 3 de Dic. de 2020
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 comentarios
Respuesta aceptada
Stephan
el 3 de Dic. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Audio and Video Data en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!