Azzera filtri
Azzera filtri

Save a video from video frames and text

8 visualizzazioni (ultimi 30 giorni)
Alice
Alice il 19 Ago 2016
Commentato: Alice il 24 Ago 2016
Hi everyone,
I have a video generated from an external software I want to insert dynamic text on each frame. I was able to do so in Matlab with the code below. However, I am clueless about the way to save the new video in a .mp4 or .avi file. I would like to have it in such format so that I can open it from any video readers.
Can anyone help?
Thank you! :-)
Alice
% Import video generated from an external software
v = VideoReader('video_L4_L8_Jan_cc25.mp4');
% Import csv file with metadata of each image
t = readtable('list_L4_L8_Jan_cc25.csv');
% Generate a video with the ID and time of acquisition of each image
figure
FrameRate = 1;
set(gcf,'units','centimeters');
set(gcf,'position',[10 10 30 30]);
axes1 = axes('position', [.05, .05, .9 , .9])
while hasFrame(v)
vFrames1 = readFrame(v);
imgNb = v.CurrentTime+1; % Nb of image displayed. +1 becaue CurrentTime starts couting at 0
image(vFrames1, 'Parent', axes1);
text(.5, 10, t.LANDSAT_SCENE_ID(imgNb), 'fontsize' , 14, 'Color' , 'w', 'Parent' , axes1);
text(200, 10, t.DATE_ACQUIRED(imgNb), 'fontsize' , 14, 'Color' , 'w', 'Parent' , axes1);
axes1.Visible = 'off';
pause(1/FrameRate);
end

Risposta accettata

Dave Behera
Dave Behera il 23 Ago 2016
The writevideo function can be used to write videos from an array to video file (.avi format supported). See this link:
  1 Commento
Alice
Alice il 24 Ago 2016
Yay, thanks! For anyone interested, this is the way to use the VideoWriter function and get the desired video as detailed in the initial question:
k = VideoWriter('videoName'); k.FrameRate = 2; open(k);
for i = 1: length(frame for video) CODE FOR VIDEO FRAME AND TEXT HERE
frame = getframe; writeVideo(k,frame); end
Close(k)

Accedi per commentare.

Più risposte (0)

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by