2017-08-17 1 views
0

Ich brauche eine MPEG4-Datei in einer anderen Anwendung zu verwenden, von einem Original MPEG4-Video, das ich in Matlab geladen und bearbeitet (Frame für Frame). so zu tun, habe ich versucht VideoWriter verwenden, um die Qualität zu 100% Einstellung:MPEG4-Qualität in MATLAB gespeichert

newVid = VideoWriter(outputfilename, 'MPEG-4'); 
newVid.FrameRate = fps; 
newVid.Quality = 100; 

jedoch das Ergebnis, das ich bin immer sehr schlecht ist und wenn die ursprüngliche ungeschnittene Videogröße war ~ 50MB, die, die ich bekommen Post-Edit in Matlab ist um ~ 20MB, und ich weiß nicht, wie man die Qualität und Größe so wie sie war. Ich versuchte auch, als .avi zu speichern und mit ffmpeg zu mpeg4 zu konvertieren, aber es gab noch schlechtere Ergebnisse. Irgendwelche Ideen?

+2

Wissen Sie, dass Sie in Ihrem Code die 'Quality' -Eigenschaft auf' 30' gesetzt haben? –

+0

Entschuldigung, es war eine frühere Version. Es wurde später auf 100 fixiert – guyts

Antwort

0

MPEG-4 ist ein komprimiertes Format, daher gibt es Informationsverlust, wenn Sie es in diesem Format speichern. Qualität ist die Qualität der Komprimierung, aber Sie wollen keine Komprimierung. Um Matlab zu zwingen, keine Komprimierung zu verwenden, rate ich, die folgende Anweisung als Standard zu verwenden: H.264

 

    newVid.VideoCompressionMethod = 'none' 

+0

Die Dokumente sagen, dieses Attribut ist schreibgeschützt. – sascha

+0

Dann denke ich, Sie müssen ein anderes Format verwenden, das unkomprimiert ist ('Unkomprimiertes AVI') und es außerhalb von Matlab konvertieren, wie Sie es versucht haben. Es scheint, dass ffmpeg verlustfrei H.264 enconding (https://trac.ffmpeg.org/wiki/Encode/H.264) – MosGeo

+0

Ich bin nicht derjenige, fragen und ffmpeg kann alles tun ;-) (und dieser Teil Matlab scheint schlecht entworfen) – sascha

Verwandte Themen