Les gars Je veux convertir un fichier avi en yuv 420 clip vidéo. Y a-t-il une méthode pour le faire? THX!comment convertir fichier avi en yuv 420 (logiciel/matlab/code source/c/C++ quoi que ce soit)
2
A
Répondre
2
Vous pouvez lire un fichier AVI dans MATLAB using the built-in mmreader
class. Une fois que vous avez les cadres AVI lus dans un tableau de la structure des cadres de film, vous pouvez les enregistrer dans un fichier YUV en utilisant la fonction saveFileYuv
trouvée dans cette présentation de la MathWorks File Exchange:
Votre code pourrait ressembler à ceci:
%# Get the video data:
vidObj = mmreader('myVideo.avi'); %# Create a video file object
nFrames = vidObj.NumberOfFrames; %# Get the number of frames
vidHeight = vidObj.Height; %# Get the image height
vidWidth = vidObj.Width; %# Get the image width
%# Preallocate the structure array of movie frames:
mov(1:nFrames) = struct('cdata',zeros(vidHeight,vidWidth,3,'uint8'),...
'colormap',[]); %# Note that colormap is empty!
%# Read each video frame into the structure array:
for k = 1:nFrames
mov(k).cdata = read(vidObj,k); %# Place frame k in the cdata field of mov(k)
end
%# Save the movie frame array as a YUV 4:2:0 file:
saveFileYuv(mov,'myVideo.yuv',1);
0
Je ne recommande pas d'utiliser Matlab. Ce que vous voulez faire peut facilement être fait en utilisant mplayer/mencoder ... Pourquoi utiliser Matlab pour ça?
mencoder.exe -De rawvideo clock.avi -o clock.yuv -nosound -ovc cru
Vous pouvez ajouter -vf swapuv pour échanger les composants U et V si les colrs ne sont pas correctes.
salut gnovice. J'ai suivi votre suggestion et appelez les deux fonctions. J'ai eu un problème avec la palette de couleurs. Comment puis-je spécifier chaque mov (k) .colormap? thx – view
@yoursclark: J'ai mis à jour ma réponse avec un exemple de code. Vous ne devriez pas avoir à spécifier quoi que ce soit pour le champ 'colormap' (c'est-à-dire juste la matrice vide' [] ') puisque les images que vous placerez dans le champ' cdata' seront RVB (par exemple [truecolor] (http: //www.mathworks.com/access/helpdesk/help/techdoc/creating_plots/f2-10709.html#f2-12468)) images. – gnovice
Merci beaucoup gnovice. votre explication est très claire et utile! thx! – view