Write video in wide screen format
Ältere Kommentare anzeigen
I'm creating a video using MATLAB's video writer function but the video always shows in a different visual format. I'm creating the video from frames of another (videoIn.mp4) with resolution of 720 x 576.
When I reproduce videoIn.mp4 in a video reproducer, it shows correctly. But when I reproduce the one generated by MATLAB, it shows "compressed" on the sides (not wide enough).
Does anyone know how to fix it?
This is my code:
myVideo = VideoWriter('videoOut.mp4','MPEG-4');
myVideo.FrameRate = 25;
myVideo.Quality = 100;
open(myVideo);
videoObject = VideoReader('videoIn.mp4');
framesToCopy = 1:50;
for nFrame = 1:length(framesToCopy)
mov(nFrame).cdata = readFrame(videoObject);
writeVideo(myVideo,mov(nFrame).cdata);
end
close(myVideo);
This is a screenshot of both videos open with VLC

6 Kommentare
Guillaume
am 20 Mär. 2019
What is
size(mov(1).cdata)
?
Note that in the code above, you're reading a frame into mov(nframe) but writing mov(count) (with count not changing and undefined in the snippet).
Seven Eden
am 20 Mär. 2019
Guillaume
am 20 Mär. 2019
And in 'VideoOut.mp4' it's no longer 720x576?
Seven Eden
am 20 Mär. 2019
It looks to me that VideoOut has got the correct aspect ratio for a 720x576 image. On the other hand, VideoIn looks like it is around twice as wide as tall, so does not match a 720x576 aspect ratio.
Seven Eden
am 20 Mär. 2019
Akzeptierte Antwort
Weitere Antworten (1)
Seven Eden
am 23 Mär. 2019
Kategorien
Mehr zu Video Formats and Interfaces finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!