Video mit inkonsistenten belichteten/gerenderten Bildgrößen

Ich habe ein Interlaced-Video im MTS-Dateiformat, das mit einer HD-Kamera aufgenommen wurde. Wenn ich es mit VLC abspiele, wird es mit einer Auflösung von 1920x1080 angezeigt und wenn ich mit VLC einen Schnappschuss mache, hat das gespeicherte Bild auch eine Auflösung von 1920x1080. Ich habe versucht, das Video mit dem Windows Media Player abzuspielen, und das Video wird auch mit einer Auflösung von 1920 x 1080 gerendert.

Wenn ich jedoch in VLC Extras > Codecs-Informationen auswähle, erhalte ich Folgendes:

Type: Video
Id original: 4113
Codec: H264 - MPEG-4 AVC (part10) (h264)
Resolution: 1440x1080
Framerate: 25
Decoded format: Planar 4:2:0 YUV

(es gibt auch einen Audio-Stream und einen Untertitel-Stream, die mich nicht interessieren).

Die belichtete Auflösung scheint also 1440 x 1080 zu sein, aber wenn das Video gerendert wird, hat es 1920 x 1080.

Wie auch immer, mein wahres Problem besteht darin, dass ich die Frames aus dem Video extrahieren muss, um eine Bildverarbeitung durchzuführen. Ich mache das mit ffmpeg, das Frames mit einer Auflösung von 1440 x 1080 extrahiert, aber dann erscheinen die extrahierten Bilder verzerrt (dh horizontal komprimiert), was zu Fehlern bei der von mir durchgeführten Bildverarbeitung führt.

Irgendeine Idee, warum VLC, Windows Media Player, Power DVD es schaffen, das Video korrekt zu rendern, während ffmpegdie Frames nicht mit der richtigen Auflösung extrahiert werden? Und warum wird das Video mit 1920 x 1080 gerendert, wenn die exponierte Codec-Auflösung 1440 x 1080 beträgt?

Antworten (1)

HDV-Kamera, richtig? Es ist nicht untypisch, dass Kameras eine höhere Auflösung angeben, als sie tatsächlich scannen. In solchen Fällen muss man sich die unterschiedlichen Seitenverhältnisse anschauen: Pixel, Frame, Display, Sample. Hier ist ein Beitrag , der dies bespricht, oder googeln Sie "HDV-Seitenverhältnis". Und hier ist ein Link zur Spezifikation des HDV-Konsortiums.

Es ist im Wesentlichen anamorphotisch. Die ffmpeg- oder avconv-Dokumentation sollte zeigen, wie man in einem Schritt bis 1920 extrahiert und expandiert.

Die Spezifikationen für HDV sind hier aufgelistet . Sie werden sehen, dass der Rahmen tatsächlich anamorphotisch ist. Sie könnten verwenden vf scale=1920:1080,setsar=1:1, um sicherzustellen, dass die Ausgabe ein Vollraster ist (obwohl sie interpoliert wird).
Danke für deine beiden Erklärungen. Ich habe eingecheckt ffmpegund es heißt tatsächlich Folgendes über den Eingangsvideostream: Video: h264 (High) (HDMV / 0x564D4448), yuv420p, 1440x1080 [SAR 4:3 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc. @stib Ich bin mit dem anamorphotischen Begriff nicht vertraut, aber letztendlich möchte ich das Bild so wiederherstellen, wie es von einem Lochkameramodell aufgenommen wurde. Weißt du, ob der ffmpeg-Videofilter vf scale=1920:1080,setsar=1:1dafür ausreicht?
Ja, diese Filterkette sollte ausreichen.