Die Funktion nimmt als Eingabe eine Zeichenfolge, den Namen des Videos, an. Es wird das Video mit der -Funktion gelesen und gibt das gleiche Video mit der vision.VideoFileWriter
-Funktion zurück. Sowohl das Eingangsvideo als auch die Ausgangsvideos haben Audio. Verarbeitung eines Videos über 6 MB, ich habe die Ausgabe eines Videos mehr als 1 GB. Die Funktion hat keine Fehler, aber ich muss komprimieren. Mit der , kann das Video bis zu 350 MB komprimieren, würde ich die AudioCompressor
verwenden, aber durch einen Fehler zu erhalten. Dies ist mein Code, der folgende Fehler wird zurückgegeben.Audiokomprimierungsfilter kann nicht erstellt werden
function [ nFrames ] = showMovie(video)
v = VideoReader(video);
videoFReader = vision.VideoFileReader(video);
videoFWriter = vision.VideoFileWriter('FrameRate',v.FrameRate,'AudioInputPort',1,'VideoCompressor', 'MJPEG Compressor','AudioCompressor','MJPEG Compressor');
[audio,fs] = audioread(video);
op=floor(fs/v.FrameRate);
nFrames = 0;
while ~isDone(videoFReader)
nFrames=nFrames+1;
frame=step(videoFReader);
audios=audio((nFrames-1)*op + 1 : nFrames*op , :);
step(videoFWriter,frame,audios);
end
release(videoFReader);
release(videoFWriter);
end
Ich kann die Eigenschaft AudioCompressor
nicht verwenden. Ich habe versucht, sowohl die Compressor MJPEG
und die DV Video Encoder
Wert, aber ich bekomme diese Fehlermeldung:
Error using VideoFileWriter/step
Unable to create audio compressor filter
Error in showMovie (line 15)
step (videoFWriter, frame, audios);
Sie versuchen, einen * video * Kompressor für Ihr Audio anzugeben. Sie müssen einen gültigen * audio * Kompressor verwenden. Sie können die Registerkarte completion 'videoWriter.AudioCompressor = '
Suever