Programm zum Extrahiern von Frames

Status
Für weitere Antworten geschlossen.

xparet0209

Registered +
Registriert
Okt. 2007
Beiträge
435
hi
ich suche ein programm womit man automatisch alle frames eine videos extrahieren kann und diese dann am besten als jpeg speichert

ich hatte mal ein programm wo man außerdem auch noch einstellen konnte
den wie vielten frame er immer extrahiert also zb. alle 6 frames ein bild oder so

wäre schon wenn ihr mir helfen könntet

mfg xparet0209
 
Ist als ImageWriter in AviSynth enthalten
(german Doc - corefilters - unter - exotische Filter)
 
ImageWriter() ..genau.. den habe ich gesucht gehabt, wusste doch, dass ich sowas in der Art auch schonmal in Verwendung hatte.. denke aber mal, das Tool wird für ihn unkomplizierter sein, gerade wenn man noch nicht viel mit Avisynth zu tun hatte, wobei man da natürlich vorher noch Filtern könnte um die Qualität eventuell was zu erhöhen, da ja die Einzelbilder bekanntlich nicht so eine gute Qualität haben, je nach Source natürlich.

MDKeil
 
wie sieht denn so ein script z.b mit image writer aus?
wie kann ich dort alle 10 frames extrahieren?
geht das mit einer schleife wie bei den normalen programmier sprachen
oder muss ich dort jeden einzelnen frame angeben...
 
Code:
#LoadPlugin("...\DGDecode.dll") #Wird benötigt bei Nutzung von MPEG2Source("")

#input=AVISource("",false).ConvertToRGB() #Source ist ein Avi-File
#input=MPEG2Source("").ConvertToRGB() #Source ist ein Mpeg-File
#input=DirectShowSource("", audio=false).ConvertToRGB() #Source ist weder Avi noch

function ImageWriterPro(clip c,int count, string file, int start, int end, string type, bool info)
{
c = SelectEvery(c,count,0)
return ImageWriter(c,file, start, end, type, info) 
}

output=ImageWriterPro(input,10,"C:\temp\frame",0,0,"jpeg",false)

return output

type kann sein jpg/jpe/jpeg, pal, pcx, png, pbm/pgm/ppm, raw, sgi/bw/rgb/rgba, tga, tif/tiff, bmp, dds, ebmp*

file dort muss der Pfad zum initialen Filenamen hin ..bei mir z.B. "C:\temp\frame" ..werden dann fortlaufend nummeriert

..die 10 Stellt den count da, d.h. es wird jedes 10te Frame gespeichert, beginend von 0.. also 0, 9, 19 .. mit start und end kannst du auch direkt noch einen Abschnitt festlegen, wo er aufzeichnen soll.. momentan verarbeitet er das ganze input-Material

Einfach den Codeblock kopieren und in eine *.avs-Datei speichern.. Diese dann mit VirtualDubMod öffnen und unten auf Play "Input" klicken.. dann warten, bis er fertig ist :)

..Avisynth muss natürlich installiert sein.

MDKeil
 
Zuletzt bearbeitet von einem Moderator:
Ich nehme mal an Du hättest einen avi file : test.avi.
und möchtest jeden 10.frame als jpg file speichern.
Öffne deinen Text-Editor, kopiere oder tippe folgende Zeilen:

AviSource("test.avi") #öffnet das Video
ConvertToRGB24() #konvertiert in anderen Farbraum (für jpg)
SelectEvery(10,0) #gibt nur jeden 10.frame wieder
ImageWriter("G:\pics\",33,36"jpg") #speichert frame 330,340,350,360

Voraussetzung :
Dieser text file wird mit der Endung ".avs " gespeichert und zwar im selben Ordner indem Dein test.avi liegt.
Die Erklärungen hinter der Raute kannst Du mitkopieren oder nicht.
(AviSynth ignoriert alles was hinter dieser Raute steht)
Der Ordner G:\pics muss vorhanden sein.
stoppel

P.S. Diesen irgendwas.avs file kannst Du mit VirtualDub oder MediaPlayerClassic laden
und abspielen; erst dann werden die Bilder erzeugt.

Rückmeldung wäre schön !
 
Zuletzt bearbeitet von einem Moderator:
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten