Getting lossless images from mjpeg
Afficher commentaires plus anciens
I am learning with video to image conversion and vice versa.
I had a mjpeg of 3 sec, when i converted to jpeg images i got 55 images.
then i used all 55 images to make a mjpeg video but the video is not of 3 sec anymore
Please tell me correct way of video to image conversion and vice versa. i am not getting where i am going wrong.
Réponse acceptée
Plus de réponses (2)
Walter Roberson
le 16 Jan 2019
0 votes
It is impossible to get lossless images from Motion JPEG. mjpeg inherently uses lossy jpeg compression .
However it sounds to me as if you did not tell the video writer that the frame rate should be 55/3 frames per second. (I suspect your real frame rate is either 18 or 20 fps and that 3 seconds is an approximation )
1 commentaire
Varsha Nataraj
le 30 Jan 2019
Iqra Saleem
le 27 Jan 2019
0 votes
Hey;
Varsha Natraj , can you tell me please how you convert motion jpeg to jpeg images?
6 commentaires
Walter Roberson
le 27 Jan 2019
Use VideoReader (basic MATLAB) or vision.VideoFileReader (Computer Vision Toolbox) to read frame by frame from the motion JPEG file, and imwrite() each frame to a file.
Iqra Saleem
le 27 Jan 2019
Thanks for your reply , i am using VideoReader in matlab but this error appear.
Error using VideoReader/init (line 619)
Unable to determine the codec required.
my video is motion jpeg with .mjpeg extension
Iqra Saleem
le 30 Jan 2019
i am not getting your point. kindly help me, I want to read motion jpeg video in matlab but this error occurs:
Error using VideoReader/errorIfImageFormat (line 494)
The filename specified is an image file. Use imread instead of VideoReader.
Error in VideoReader/init (line 612) VideoReader.errorIfImageFormat(fullName);
Error in Untitled2 (line 5)
xyloObj = VideoReader('akiyo_CIF.mjpg');
Iqra Saleem
le 30 Jan 2019
My matlab code is :
clc
close all
clear all
info = mmfileinfo('akiyo_CIF.mjpg');
xyloObj = VideoReader('akiyo_CIF.mjpg');
get(xyloObj)
nFrames = xyloObj.NumberOfFrames;
vidHeight = xyloObj.Height;
vidWidth = xyloObj.Width;
% Preallocate movie structure.
mov(1:nFrames) = ...
struct('cdata', zeros(vidHeight, vidWidth, 3, 'uint8'),...
'colormap', []);
% Read one frame at a time.
for k = 1 : 3
mov(k).cdata = read(xyloObj, k);
end
% Size a figure based on the video's width and height.
hf = figure;
set(hf, 'position', [150 150 vidWidth vidHeight])
% Play back the movie once at the video's frame rate.
movie(hf, mov, 1, xyloObj.FrameRate);
Walter Roberson
le 30 Jan 2019
Except possibly on Linux, .mpeg or .mjpg is not a supported video format. Motion JPEG is supported inside of .avi
Catégories
En savoir plus sur Audio and Video Data dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!