Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
PC - Workshop
#1
(04.03.2018, 23:24)BSB schrieb: Schauen wir uns nun das Kontraste-Video an. (Ich kann nur Sekunden-Angaben machen, sagt mir jemand, wie ich im VLC-Player Frame-Nummern erhalte?)
Da kann der VLC Player meines Wissens nicht. Sie können ein neues addon installieren:
https://addons.videolan.org/p/1154013/
aber auch dann müssen sie Zeit in frames umrechnen.

Ich empfehle als Vorgehensweise, das ganze Video per batch anweisung in seine frames zu zerlegen. Dazu brauchen Sie nur das Kommando und einen klick. Wichtig ist, dass Sie die einzelnen frames in einem lossless format speichern, z.B. .png, keinesfalls als.jpg, sonst verlieren Sie noch mehr Qualität, und wir kämpfen hier ja oft um jedes pixel.
Packen Sie dann alle frames in einen Ordner, und schauen Sie sie sich mit einem Bildbetrachter an (wie Irfanview, falls Sie Windows verwenden). Dann können Sie wie in einem Daumenkino durchblättern und die besten frames rausfischen.

Falls Sie VLC-Player fan sind, damit geht es auch dabei (angeblich, ich habe das gerade mal in LINUX versucht, das wurde nix), allerdings müssen Sie das Video dabei abspielen. Das würde mich nerven. Wenn Sie der Kommandozeile mächtig sind, geht das auch mit dem VLC-Player im Hintergrund.

Schauen Sie mal hier:
https://www.raymond.cc/blog/extract-vide...ia-player/

Ich persönlich nehme ffmpeg, da ist da mit einem Befehl erledigt und die frames sind gleich durchnummeriert.
Und mit ein paar kleinen Parametern sag ich ihm, dass er nur die i-frames nehmen soll, wenn ich nur die will.
Antworten
#2
Vielen Dank für die Hinweise, MdW!
Antworten
#3
(05.03.2018, 03:05)MachtdurchWissen schrieb: Ich empfehle als Vorgehensweise, das ganze Video per batch anweisung in seine frames zu zerlegen. Dazu brauchen Sie nur das Kommando und einen klick. Wichtig ist, dass Sie die einzelnen frames in einem lossless format speichern, z.B. .png, keinesfalls als.jpg, sonst verlieren Sie noch mehr Qualität, und wir kämpfen hier ja oft um jedes pixel.
Packen Sie dann alle frames in einen Ordner, und schauen Sie sie sich mit einem Bildbetrachter an (wie Irfanview, falls Sie Windows verwenden). Dann können Sie wie in einem Daumenkino durchblättern und die besten frames rausfischen.

Absolut d'Accord, insbesondere das Daumenkino ist hilfreich, weil die Bilder mit dem Scrollrad vor und zurückbewegt werden können und so einzelne minimale Veränderungen und Bewegungen sichtbar werden.

Ergänzung: Wenn das Video mit IrfanView geöffnet wird, können von dem Programm alle Frames direkt in einen Zielordner gepackt werden. Default ist BMP-Format, bei dem ebenfalls jedes einzelne Pixel gespeichert wird.

An VLC und Irfanview führt (bei Windows) kein Weg vorbei. ggf. müssen noch Video-Codecs geladen werden, zB K-Lite.
Antworten
#4
.png hat gegenüber .bmp den Vorteil, dass es (verlustlos) komprimiert und daher die Dateien viel kleiner ausfallen -  bei gleicher Qualität.

Bevor jetzt alle fröhlich Ihre Videos in Einzelbilder zerlegen, möchte ich - nochmals - auf einen wichtigen Umstand hinweisen:
Wenn eine Kamera z.B mit 25Bilder/sec (=25fps) aufnimmt und die dann MPEG codiert, dann werden eben NICHT 25Originalbilder abgespeichert, an denen man sich später einzeln erfreuen kann. Sondern es werden nur wenige Originalbilder abgespeichert, und die sind schon grössenreduziert, da jpeg codiert  (Sogenannte key frames, oder INTRA frames, I-frames).  Aber immerhin beeinhalten sie die Originalinformation. Alles andere DAZWISCHEN sind berechnete oder vorhergesagte Bilder, sogenannte INTER-frames (B-Frames und P-frames).

Die können erheblich verfälscht sein, insbesondere dann, wenn in dem Film viel bewegte Objekte sind (und wenig Standbildinformation), und genau das ist bei der LKW Fahrt der Fall.

Also gilt es, die I-frames aus dem Film rauszufischen. Dafür muss am aber wissen, wie man die findet (mit ffmpeg ein Kinderspiel). Weiterhin sind es manchmal nur sehr wenige (z.B. jedes 10. frame ein I-frame, das hängt vom encoder ab, der da vorher verbastelt hat). Oft stellt es dann genau die Szene da, die man nicht sehen will, und man ist verführt, sich dann doch ein dazwischen liegendes P oder B frame anzuschauen. Da kann der LKW dann auch mal länger oder kürzer sein als in echt und andere lustige Effekte auftauchen.

Zum VLC Player: man kann da lustig frame by frame durchhüpfen (aber nur vorwärts, Taste "e", oder erweitertes Menu), aber auf was für einem frame man gerade sitzt, weiss man nicht (wenns hier eine® weiss, bitte Info).  Wenn man dann die Kamerataste drückt, speichert man auch nicht den frame, sondern nur einen Screenshot desselben. Das ist nicht empfehlenswert.
Antworten
#5
Die Videos des Sat1 Frühstücksfernsehen kommen als HTTP Live Streaming ("HLS") daher und lassen sich mit Standardwerkzeugen wie den meisten Browserplugins nicht downloaden.

Als Backup geht natürlich immer das Abfilmen des Bildschirmes per screencast Programm, aber das nervt.

Mit dem Programm "youtube-dl" geht es dagegen sehr einfach.
Es handelt sich allerdings um ein Kommandozeilenprogramm, welches man aus der Konsole / dem Terminal starten muss.
Dafür läuft es auf Windows/Mac//Linux ohne Probleme

Es gibt es hier:
https://rg3.github.io/youtube-dl/

Nach Installation einfach eingeben:
youtube-dl "Zieladresse"

Beispiel:
youtube-dl https://www.sat1.de/tv/fruehstuecksferns...-wert-clip
Antworten
#6
Zusatz:
Download mit Youtube-dl geht auch bei Facebookvideos:
youtube-dl https://www.facebook.com/abendschau.rbb/...4Mjg0MjQ0/
Antworten
#7
(05.03.2018, 03:05)MachtdurchWissen schrieb: Ich persönlich nehme ffmpeg, da ist da mit einem Befehl erledigt und die frames sind gleich durchnummeriert.
Und mit ein paar kleinen Parametern sag ich ihm, dass er nur die i-frames nehmen soll, wenn ich nur die will.

Danke nochmal für den Tipp. Genau diese Parameter zum Auswählen der Key Frames habe ich nun mittels der ffmpeg-Dokumentation versucht zu finden, aber erfolglos. Könnten Sie noch einen Hinweis geben?
Antworten
#8
(26.06.2018, 13:01)BSB schrieb: Genau diese Parameter zum Auswählen der Key Frames habe ich nun mittels der ffmpeg-Dokumentation versucht zu finden, aber erfolglos. Könnten Sie noch einen Hinweis geben?

Gerne: 
Die allgemeine Syntax bei ffmpeg lautet:
ffmpeg [[infile options][-i infile]]... {[outfile options] outfile}...

https://linux.die.net/man/1/ffmpeg


Beispiel:
Ihr Eingangsfile heisst z.B. "kontraste.mp4" und sie möchten verlustlos nur die I-Frames als Bilder rausziehen: Ihre Ausgangsdateien  sind Bilder und sollen das .png Format haben, mit "frame-" beginnen im Dateinamen und (dreistellig) durchnummeriert sein.

Dann lautet die Syntax (in der Linux Konsole):
ffmpeg -i kontraste.mp4 -vf "select=eq(pict_type\,I)" -vsync vfr frame-%03d.png

mit der Option: -vf "select=eq(pict_type\,I)" fischen Sie dabei nur die I-Frames heraus.
Beschreibung dafür und auch für den Schalter -vsync finden Sie hier:
https://ffmpeg.org/ffmpeg-filters.html#s...2c-aselect
Antworten
#9
(26.06.2018, 16:42)MachtdurchWissen schrieb:
(26.06.2018, 13:01)BSB schrieb: Genau diese Parameter zum Auswählen der Key Frames habe ich nun mittels der ffmpeg-Dokumentation versucht zu finden, aber erfolglos. Könnten Sie noch einen Hinweis geben?

Gerne: 
Die allgemeine Syntax bei ffmpeg lautet:
ffmpeg [[infile options][-i infile]]... {[outfile options] outfile}...

https://linux.die.net/man/1/ffmpeg


Beispiel:
Ihr Eingangsfile heisst z.B. "kontraste.mp4" und sie möchten verlustlos nur die I-Frames als Bilder rausziehen: Ihre Ausgangsdateien  sind Bilder und sollen das .png Format haben, mit "frame-" beginnen im Dateinamen und (dreistellig) durchnummeriert sein.

Ergänzung: Für das komplette Dashcam-Video (Reuters) erhalte ich 5 Frames.
Dann lautet die Syntax (in der Linux Konsole):
ffmpeg -i kontraste.mp4 -vf "select=eq(pict_type\,I)" -vsync vfr frame-%03d.png

mit der Option: -vf "select=eq(pict_type\,I)" fischen Sie dabei nur die I-Frames heraus.
Beschreibung dafür und auch für den Schalter -vsync finden Sie hier:
https://ffmpeg.org/ffmpeg-filters.html#s...2c-aselect


Herzlichen Dank, das ist schonmal ein zielführender Hinweis. Nur leider liegen noch ein paar Stolpersteine auf dem Weg.

Ich wollte mit dem Befehl

ffmpeg -ss 00:10 -t 00:12 -i (input) -vf "select=eq(pict_type\,I)" -vsync vfr (output)

die I-Frames zwischen 00:00:10 und 00:00:22 "herausfischen". Die Ausbeute ist aber gering. Es handelt sich nur um die vier angehängten Bilder:

   
   
   
   

Wenn ich Ihre Erläuterung richtig verstehe, daß es sich bei den I-Frames um die in der MP4-Datei kodierten Original-Standbilder handelt, aus denen die anderen Frames dann nur durch die Wiedergabe-Software berechnet werden, dann können diese vier ja unmöglich die vollständige Information beinhalten. (Außer es gibt einen Befehl lass_die_lichterkette_schwingen.)

Passiert bei Ihnen dasselbe? Habe ich was übersehen?

(Ich arbeite unter Windows, falls das was zur Sache tut.)

Ergänzung: Für das komplette Dashcam-Video von Reuters (d.h. ohne Zeiteinschränkung) erhalte ich auf diese Weise 5 Frames.
Antworten
#10
(28.06.2018, 12:41)BSB schrieb: Ich wollte mit dem Befehl

ffmpeg -ss 00:10 -t 00:12 -i (input) -vf "select=eq(pict_type\,I)" -vsync vfr (output)

die I-Frames zwischen 00:00:10 und 00:00:22 "herausfischen". Die Ausbeute ist aber gering. Es handelt sich nur um die vier angehängten Bilder:

Wenn ich Ihre Erläuterung richtig verstehe, daß es sich bei den I-Frames um die in der MP4-Datei kodierten Original-Standbilder handelt, aus denen die anderen Frames dann nur durch die Wiedergabe-Software berechnet werden, dann können diese vier ja unmöglich die vollständige Information beinhalten. (Außer es gibt einen Befehl lass_die_lichterkette_schwingen.)

Passiert bei Ihnen dasselbe? Habe ich was übersehen?

(Ich arbeite unter Windows, falls das was zur Sache tut.)

Ergänzung: Für das komplette Dashcam-Video von Reuters (d.h. ohne Zeiteinschränkung) erhalte ich auf diese Weise 5 Frames.

Sie haben alles richtig gemacht. Ihre Argumentation ist auch richtig, nur der zweite Teil Ihrer Annahme nicht.
"aus denen die anderen Frames dann nur durch die Wiedergabe-Software berechnet werden"
Die P- und B-Frames werden bereits bei der Encodierung berechnet und nicht erst bei der Wiedergabe.
Und sie werden nicht nur aus vorangegangenen I-Frames berechnet.

Ein MPEG-4 codiertes Video besteht aus 3 verschiedenen Bildtypen ("frames"),
- I-Frames (Intra Coded Pictures). Diese sind unabhängig von allen anderen frames wieder decodierbar.
Sie werden auch als Key-frames bezeichnet. Diese sind uns am liebsten. Das sind sozusagen die Anker des ganzen Videos.
- P-Frames (Predictive Coded Pictures). Diese verwenden bei der Encodierung (= Erstellung des Videos durch den Encoder) Informationen aus vorausgegangenen I- oder auch P-Frames. Wie der Name schon sagt, werden die "vorhergesagt". Da kann, aber muss nichts gutes bei rauskommen.
- B-Frames (Bidirectional Coded Pictures) verwenden sowohl aus den vorangegangenen, als auch den nachfolgenden Frames Informationen und sind ebenfalls nicht einzeln decodierbar.

Sagen wir mal (sehr vereinfacht) so: Der Encoder zieht sich einen Haufen Original frames herein, speichert den ersten als I-Frame und  schaut sich die Änderungen zwischen den folgenden frames an (z.B. das Lichterkettenschwingen) und berechnet daraus Zwischenbilder (P- und B-Frames).
Dann legt er diese Bildersammlung als "GOP" (Group of Pictures) ab.

Die P- und B- frames, die Sie sehen, sind also NICHT nur eine Information aus dem letzten I-frame, sondern auch aus vorherigen  (und bei B-frames sogar nachfolgenden) frames.

Das blöde ist (und das haben Sie ja auch bemerkt) dass bei MPEG-4 encodierten Videos in so einer GOP ziemlich wenig I-Frames abgespeichert sind. Da können Sie bis zu 10sec warten, bis mal wieder eins kommt
https://www.itwissen.info/GOP-group-of-picture.html
Da kommt man eben nicht umhin, sich auch P- oder B-Frames anzuschauen.


Meines Wissens beste (deutsche) Website zu dem Thema:
https://encodingwissen.de/
https://encodingwissen.de/hintergrund/gr...r-schritt/
https://encodingwissen.de/hintergrund/gr...fferenzen/

https://encodingwissen.de/codecs/x264/technik/
Antworten


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste