Codec, Bitrate, usw einer Videodatei rausfinden?
-
Hallo!
Ich würde gern wissen, wie ich Programmatisch Informationen über eine Videodatei auslesen kann. Also z.b. den verwendeten Codec, die Video Bitrate oder den Audio Codex, usw.
Gibts dafür vielleicht ne dll oder so? Oder eine Klasse?Gruß Christoph
-
Es gibt Libraries wie z.B. ffmpeg.
Gibts dafür vielleicht ne dll oder so? Oder eine Klasse?
Ich schätze du stellst dir das einfacher vor als es ist
-
Naja. Anscheinend scheint es so leicht zu sein, wenn man diesem Blog Eintrag (http://codehill.com/2008/12/get-a-video-files-details-using-windows/) glauben schenkt. Leider gibt er bei mir nicht den Codec aus. Der Ersteller meint, es liege daran, dass der entsprechende Codec nicht installiert ist, aber das ist er. Wenn ich den Schnipsel zum Laufen bekommen, bin ich schon zufrieden.
-
Wenn es dir reicht das anzeigen zu können, was auch der Explorer an "Details" anzeigen kann, dann kannst du den Code-Schnipsel verwenden (wenn du ihn denn zum Laufen bekommst).
Wenn du allerdings nicht auf installierte Codecs angewiesen sein willst, dann wird es gleich um Grössenordnungen schwerer. Alternativ könntest du höchstens noch Command-Line Utilities einbinden die evtl. das an Informationen rauslesen können, was du eben rausbekommen willst.
Der Ersteller meint, es liege daran, dass der entsprechende Codec nicht installiert ist, aber das ist er. Wenn ich den Schnipsel zum Laufen bekommen, bin ich schon zufrieden.
Hast du ein 64 Bit Windows laufen? Und den Codec evtl. nur als 32 Bit Version installiert (oder nur als 64 Bit Version - auf jeden Fall nicht beide)? Sonst fällt mir auf die Schnelle nix ein.
-
Erstmal danke für deine Antwort. Hmmm. Der Explorer zeigt glaube ich nicht an, ob es jetzt z.B. wmv2 oder wmv3 ist, ne? kennst du denn ein Kommandozeilentool, welches meinetwegen die Art der Komprimierung rausfinden kann? Denn das wäre es, was ich brauchte. Mein Ziel ist es, abhängig vom Quell Codec und von der Quell Bitrate die Datei neu zu komprimieren.
Ziel ist der x264 Codec. So soll er z.B. eine 'mpeg-pes' komprimierte Datei mit der Hälfte der Quell Bitrate komprimieren. Und eine 'wmv3' mit annährend derselben. So dass eine gleichbleibende Qualität sichergestellt ist.
Zum komprimieren wollte ich den MEncoder benutzen, um die Attribute selbst angeben zu können, da die Dateien auf einem iPod Touch laufen sollen.
-
Nö, weiss ich nix, aber würde mich sehr wundern wenns da nix gibt.
Check die üblichen Verdächtigen, also Google, doom9 ( http://www.doom9.org ) und videohelp ( http://www.videohelp.com ).
da die Dateien auf einem iPod Touch laufen sollen.
Könntest du nicht einfach constant quality verwenden?
Ich meine du wirst ja vermutlich sowieso resizen müssen, und wenn das WMV z.B. 720*576 gross ist, dann macht es ja nicht unbedingt Sinn, wenn du für die iPod Version die selbe Bitrate verwendest, wie für das viel grössere WMV... nen?
p.S.: wenn du ein Video mit sehr geringer Bitrade nach x264 transkodierst, und wieder eine sehr geringe Bitrate verwendest, dann ist das Ergebnis garantiert viel schlimmer als das Original. Ich würde an deiner Stelle wirklich entweder constant quality oder average bitrate verwenden, das sollte ganz gut hinkommen. CQ ist besser, wenn du viele sehr unterschiedliche videos hast (sehr viel bewegung vs. fast garkeine bewegung uns so).
-
Also mein Ziel ist, dass ich die Dateien ganz normal in normaler Auflösung am PC schauen kann. Da der iPod auch höhere Datenraten / Auflösungen unterstützt, komprimiere ich alle Videos in der ursprünglichen Auflösung. Und da h264 recht effizient ist, spare ich im extremfall sogar die Hälfte des Platzes (z.b. bei mpeg 1).
Bei geringen Bitraten habe ich eigentlich ganz gute Erfahrungen gemacht.Ich habe halt viele Verschiedene Videos mit unterschiedlichen codecs, die ich gern in einem "Rutsch" komprimieren würden. Und das möglichst effizient...
Bisher habe ich mit Mediacoder komprimiert. Es nervt halt, wenn man jedes mal die Attribute wieder umstellen muss.
-
Ich hab die Lösung gefunden: Mit ffmpeg und dem Parameter "-i video.avi" wird eine Info mit Audio-, Videocodec und -Bitrate ausgegeben.
Ich habs nur noch nicht geschafft, die Kommandozeilenausgabe auszulesen:
http://www.c-plusplus.net/forum/viewtopic-var-p-is-1730710.html#1730710