Entwickler-Ecke

WinForms - Effizenter Weg ausgewählte Video frames auszulesen.


Kasko - Sa 02.06.18 11:35
Titel: Effizenter Weg ausgewählte Video frames auszulesen.
Hey

gibt es einen effizienteren Weg ausgewählte frames eines Videos auszulesen (z.B. der 30. frame) als den im Anschluss gezeigten Weg?


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
using AForge.Video.FFMPEG;

private Bitmap GetThumbnail(string path, int frame)
{
    VideoFileReader reader = new VideoFileReader();
    reader.Open(path);

    for (int i = 1; i < frame; i++)
        reader.ReadVideoFrame();

    return reader.ReadVideoFrame();
}


Das Problem hier ist, dass man alle vorherigen frames ebenso auslesen muss. Um den 30. frame auszulesen muss man also wirklich 30 frames auslesen und nicht gezielt den 30.
Irgendwelche Ideen für andere Wege die weitaus effizienter sind?

LG Kasko ;)


Th69 - Sa 02.06.18 15:11

Ich denke nicht, daß es eine andere Methode dafür gibt, als die vorherigen Frames mit auszulesen, da diese ja erst dekodiert werden müssen (pro Frame werden ja nur die Änderungen zum vorherigen Bild gespeichert).