copying AVI files by using Matlab

조회 수: 3 (최근 30일)
Majid Al-Sirafi
Majid Al-Sirafi 2017년 12월 17일
댓글: Majid Al-Sirafi 2017년 12월 17일
Hi everyone
The following two Matlab code (which they do copy new avi files from another)
First one:
- By using VideoWriter
clear all;
close all; %%%%%%%%%%%%%%%%%%%%%%%
[filename pathname] = uigetfile('*.avi','File Selector');
vid = strcat(pathname, filename);
obj = mmreader(vid);
vid = read(obj);
Frames = obj.NumberOfFrames;
new10=VideoWriter('output10.avi');
for x = 1 : Frames
blocks{x}=vid(:,:,:,x);
end
open(new10);
for f=1:1
ss=im2frame(blocks{f});
writeVideo(new10,ss);
end
close(new10);
msgbox('end of operation','Message','warn');
Second one:
- By using avifile
close all
clear all
[filename pathname] = uigetfile('*.avi','File Selector');
vid = strcat(pathname, filename);
obj = mmreader(vid);
vid = read(obj);
frames = obj.NumberOfFrames;
%%
new10=avifile('output10.avi','compression','None');
for x = 1 : frames
a=vid(:,:,:,x);
blocks{x}=a;
end
%%
for f=1:frames
new10=add frame(new10,blocks{f});
end
new10=close(new10);
msgbox('end of operation','Message','warn');
After running the first one program the new avi file is different from the original file (the pixels of frames are different).
While, after running the first one program the new avi file is same asthe original file (the pixels of
frames are similar).
Please inform me the reason
Best regards
Majid
  댓글 수: 4
Majid Al-Sirafi
Majid Al-Sirafi 2017년 12월 17일
hi dear Jan this is first one
close all
clear all
[filename pathname] = uigetfile('*.avi','File Selector');
vid = strcat(pathname, filename);
obj = mmreader(vid);
vid = read(obj);
Frames = obj.NumberOfFrames;
new10=VideoWriter('output10.avi');
for x = 1 : Frames
blocks{x}=vid(:,:,:,x);
end
open(new10);
for f=1:1
ss=im2frame(blocks{f});
writeVideo(new10,ss);
end
close(new10);
msgbox('end of operation','Message','warn');
and this second one
close all
clear all
[filename pathname] = uigetfile('*.avi','File Selector');
vid = strcat(pathname, filename);
obj = mmreader(vid);
vid = read(obj);
frames = obj.NumberOfFrames;
new10=avifile('output10.avi','compression','None');
for x = 1 : frames
a=vid(:,:,:,x);
blocks{x}=a;
end
for f=1:frames
new10=addframe(new10,blocks{f});
end
new10=close(new10);
msgbox('end of operation','Message','warn');
regards
Majid
Majid Al-Sirafi
Majid Al-Sirafi 2017년 12월 17일
these two files

댓글을 달려면 로그인하십시오.

답변 (1개)

Image Analyst
Image Analyst 2017년 12월 17일
Why not simply use copyfile()?
  댓글 수: 1
Majid Al-Sirafi
Majid Al-Sirafi 2017년 12월 17일
Actually, this copy is the first step in video processing. later I want to develop this procedure in another processing not just for copying
best regards Majid

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by