viele kleine MPEG2 Dateien in einem Video

  • Hallo, ich folgendes Problem. Wir haben einen Camcorder, der logischerweise für jeden Clip eine einzelne Datei erstellt. Diese möchte ich nun mit MeGUI in eine Videodatei packen. Hier sind mal 2 kleine Clips, damit ihr sehen könnt, um was für Dateien es sich handelt:
    https://rapidshare.com/files/1903760703/MPEG2.zip
    Ich schildere mal meine Vorgehensweise.
    Problem 1: Wenn ich mir jetzt alle Clips mit DirectShowsource laden möchte: DirectShowSource("1.MPG")+DirectShowSource("2.MPG")+[...]+DirectShowSource("n.MPG") macht MeGUI schon nach wenigen Clip die Grätsche wegen der 2GB RAM Grenze
    Lösung: Erstmal das ganze Projekt mit losless Codec in AVI speichern. Ich nehme dazu utvideo. Dann noch VirtualDub 64 bit und AVIsynth 64bit installiert. Damit lädt das ganze schonmal. Dann speichere ich das Video mit "Fast recompress" und Compression ut video Codec YUV420 mit der Einstellung "Assume interlace video". Audio speichere ich mit "Full processing mode" ohne Compression.

    Problem 2 & 3: Bei der entstandenen Audio Datei ist nach jedem Clip ein kurzer aussetzer. Dadurch wird Ton und Bild Asynchron.
    Zum Encoden nahm ich folgendes Scirpt:
    global MeGUI_darx = 16
    global MeGUI_dary = 9
    aviSource("2 - Kopie.avi")
    assumeTFF()
    tempgaussmc_beta2(edimode="nnedi3")
    Aber im Endergebnis hat das Bild fiese Bildfehler. Manchmal finden sich Kontrastübergänge an einer Seite wieder (Ghosting?) oder das Bild flackert kurz sehr merkwürdig.
    Normalerweise ist das der Weg, den ich bei anderen Dateien Einschlage, die aber nicht interlaced sind. Da hat der Ton keine Aussetzer und das Bild keine Fehler. Aber hier muss wohl was anderes her.

    Lösung: Das ganze Projekt einfach mit FFMpegSource2("1.MPG")+FFMpegSource2("2.MPG") usw. geladen. Video wieder auf den selben Weg gespeichert. Leider wird hier scheinbar nicht der Ton in VirtualDub geladen, also kann ich da auch nichts speichern.
    Das ganze wieder mit dem Script oben encoded und das Bild scheint nun keine Fehler mehr zu haben. Komischerweise bestehen die ersten 6 frames vom Video aus 2 Bildern, zwischen die es einfach wechselt, eh es richtig los geht.
    Selbst, wenn ich eine funktionierende Audio Spur hätte, würde es an der Stelle wohl schon wieder Asynchron werden.
    Was kann ich tun?
    Ich habe zwar gelesen, dass man MPEG2 Dateien erstmal in den File Indexerer lädt und die d2v zum encoden nimmt, aber da würde ich mich 1. bei den vielen kleinen Videos wund klicken und 2. würde MeGUI wegen der RAM Grenze wieder abstürzen.
    Wäre für jeden Tipp dankbar :)

    Einmal editiert, zuletzt von Morku (23. September 2012 um 13:01) aus folgendem Grund: Thema hat sich erweitert

  • Ohne das Ganze jetzt zu sehen.Würde ich sagen. Lade alle Dateien in DGIndex. Es macht daraus eine Index(d2v) Datei. Diese kannst Du mit MeGui/Script Editor laden und in eine gesamte Datei wandeln. Tracks extrahieren kannst Du auch noch auswählen.

  • Hallo!
    Also das mit dem DGIndex Tool ist ja ziemlich easy. Kannte ich bisher noch nicht, danke! Das ganze hab ich eben mal durchencoded und leider leider ist der Ton wieder nicht synchron mit dem Bild :( Zwar sind die Aussetzer zwischen den Clips nicht mehr so groß, aber nach rund 5 Minuten Video hinkt der Ton schon 1/3 Sekunde hinterher. Liegt es vielleicht an tempgaussmc_beta2(edimode="nnedi3")?
    Mein ~8 minütiges Video besteht aus 20 Clips. Sieht also beim Laden so hier aus:
    http://img6.imagebanana.com/img/17v0xaqs/Unbenannt.png
    Lässt sich bei den 2 kleinen Videos wahrscheinlich gar nicht nachvollziehen (zumal man kaum Ton hört).

    Goldwingfahrer
    Die 10MBit kommen so direkt aus der Kamera. Normalerweise sind die Dateien auf der Kamera als MOD gespeichert und ganz merkwürdig geordnet Oo Damit kann ich nichts anfangen und kopiere die Videos mit dem kleinen sdcopy Tool als MPG und nach Datum sortiert auf den PC.

  • Wir haben uns gestern Abend über PN noch lange unterhalten.Problem ist eigentlich jetzt nur noch das das Audio zum Video nicht synchron läuft.

    Zitat


    Komischerweise bestehen die ersten 6 frames vom Video aus 2 Bildern, zwischen die es einfach wechselt, eh es richtig los geht.
    Selbst, wenn ich eine funktionierende Audio Spur hätte, würde es an der Stelle wohl schon wieder Asynchron werden.


    Und wenn denn alle Mpeg2 Videos mit DGIndex zusammengefasst werden,dann ist es richtig asynchron. Trotzdem frage ich mich? Ein Camcorder der in Mpeg2 direkt aufnimmt? Gab es das wirklich? Ist mir nämlich garnicht so bewusst.
    Die einfachste Methode wäre wohl doch einen guten Video-Editor zu nehmen.Da werden die Mpegs einzeln behandelt.Einen simplen Übergang dazwischen haun und das Ganze als ein gemeinsames AVI zu speichern. Mit MeGui dann das AVI in Dein gewähltes Format wandeln.

    PS: Das Andere lasse wir doch lieber. Privatsphäre sollte bleiben

  • Geizhals kennt >100 Camcorder, die MPEG2 aufzeichnen...

    Teilweise kommt da sogar "MPEG2 I-frame-only" zum Einsatz. Aber auch ordentliche GOPs sind durchaus wahrscheinlich. Und wenn die auf Festplatte abgelegt werden, sind sie einfach auszulesen. Auch Kameras, die direkt 8-cm-DVDs brennen, sind nicht ungewöhnlich (zunächst nur Fragmente im UDF-Dateisystem; die "Finalisierung" fasst dann die Schnipsel zu VOBs zusammen und erzeugt ISO-9660 dazu).

    In der Tat ist hier die Vorverarbeitung in beiliegender Schnittsoftware oft nicht die schlechteste Wahl. Gerade an den "Schnittstellen" der Kameraaufzeichnungen gibt es teilweise problematische GOP-Strukturen und scheinbare Asynchronitäten mit der Tonspur, die von solcher Software beachtet wird, aber Freeware wie DGMPGDec durcheinander bringen könnte.

  • Wie soll man es auch bemerken, wenn der Hinweis, dass der Beitrag erst freigeschalten werden muss, bereits nach einer Sekunde verschwindet und man nicht darauf achtet, weil man davon ausgeht, dass sowas dasteht, wie: "Sie werden weitergeleitet".

    Zitat

    Komischerweise bestehen die ersten 6 frames vom Video aus 2 Bildern, zwischen die es einfach wechselt, eh es richtig los geht.

    Das Problem ist mit DGIndex verschwunden. Daran sollte es also nicht mehr liegen. Das passierte nur bei meiner konfusen Vorgehensweise. Zumindest weiß ich jetzt schon mal, dass es tempgaussmc_beta2(edimode="nnedi3") nicht liegt und das Problem bereits bei den beiden erstellen Dateien ist. Streng genommen zeichnet die Kamera in MOD auf, aber (laut Wikipedia) lassen die sich problemlos in MPG umbenennen. Übernimmt das Tool sdcopy für mich. Eine Schnittsoftware lag dem Camcorder leider nicht bei. Welche Software würdet ihr denn empfehlen, die eine solche verlustfreie AVI speichert?

  • Ganz Edel ist Edius.Kostet aber ein bißchen
    [Blockierte Grafik: http://www.digitalproduction.com/uploads/pics/20100906_EDIUS_6_GUI_all-image_English_blue_20100902-3.Web.png]

    Adobe hast Du ja soweit ich mich erinnern kann.
    Wäre noch ein Vorschlag Cyberlink Powerdirektor.Habe ich immer sehr gerne mit gearbeitet und ist auch nicht so teuer.
    [Blockierte Grafik: http://www.itespresso.de/files/2008/images/20090804_cyberlink/cyberlink_powerdirector_8_screen.png]

  • Jesses Maria....Propaganda...Dein GUI sieht ja schrecklich aus.;-(

    Es muss für den Anfang nicht die grosse Version von Edius sein,für den Anfang reicht der kleinere Bruder Edius-NEO 3.

    Zitat


    Wäre noch ein Vorschlag Cyberlink Powerdirektor.


    Aber dann vorher ein Image vom betr.Sys.mit Trueimage erstellen,zudem weiss ich jetzt nicht ob Power Director auch nur im RGB Raum arbeitet wie Vegas oder Magix.

    Wenns nur ums schneiden geht dann würde auch Womble 5 ausreichen.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Folgendermaßen habe ich das Problem für mich gelöst: Da ich Adobe Premiere installiert habe, habe ich eine DV PAL Sequenz erstellt und dort die Videos geladen. Dabei natürlich drauf geachtet, dass die Sequenz Einstellungen mit der der Videos übereinstimmt. Dann bin ich auf Datei -> Exportieren -> Medien. Als Format AVI (unkomprimiert) (was anderes gibt es nicht). Dort musste ich erstmal wieder die Einstellungen anpassen und als Video-Codec steht mir zur Wahl: V210 und UYVY. Mit beidem kommt tempgaussmc nicht klar. Da ich aber nun das Video als ganzes mit synchronem Ton habe, habe ich das Video in VirtualDub geladen und mit utvideo YUV420 nochmals gespeichert. Dann konnte es auch schon mit dem unten genannten Script losgehen. Das Ergebnis ist fast identisch wie mit dem Video, was ich mit DGIndex erstellt habe. Statt 3315Kbps hat das Video nun 3239Kbps bei identischem Bild... aber das soll mich jetzt nicht groß stören... Frage am Rande: Gibt es so ein praktisches Tool wie DGIndex auch für MPEG4 Videos in einem MOV Container? Finde ich sehr angenehm mit wenigen Klicks so viele Videos hintereinander als eines speichern zu können. Sonst musst ich immer lange Scripts erstellen, wo ich jedes Video einzeln eintragen muss.

  • Aua, aua, aua ...

    DGAVCDec ist veraltet, kann mit PAFF-Interlacing nicht umgehen.

    DGDecNV benötigt Grafikkarten von Nvidia (da ist kein 'e' drin) mit PureVideo-Decoder ab Version 2, aber es wird keinerlei CUDA-Programm ausgeführt.

    MPEG4-AVC (H.264) kann mit beiden (außer o.g. Ausnahme) decodiert werden. MPEG4-ASP (DivX / Xvid) nicht. Und aus dem MOV-Kontainer können beide auch nicht lesen.

    FFmpegSource2 kann viele Videoformate aus vielen Kontainern lesen und decodieren. Aber es gibt dafür keine Oberfläche, die Indexdateien über mehrere Quelldateien hinweg erzeugen würde.

  • Öhm, ich habe zwar eine NVIDIA, aber wenn das Programm keine MOV annimmt, hat es sich ja eh erledigt. Wozu ist überhaupt ne NVIDIA notwenig? Soll doch einfach losless gespeichert werden.

  • Nein für die Mpeg2 Dateien reicht die normale Version vollkommen aus. Es geht jetzt nur um die Version die H264 unterstützt. Und die Bezahlversion verlangt eine Nvidia mit CUDA-Technologie. In MOV(ist ein Container-Format) können auch andere Sachen drin stecken. In der Beziehung gibt es auch wieder Mittel und Wege.

    Mal für Ligh:

    Zitat


    DGDecNV is a decoder/frameserver for AVC, MPEG2, and VC1 streams that runs on the GPU of Nvidia graphics cards that support CUDA video decoding.

  • @ Propaganda:

    1. erklär mir nix über DGDecNV, ich hab's verstanden (der Video-Decoder-Chip ab Version VP2 wird benutzt und ist notwendig; den haben zwar zufällig auch nur die Karten, die auch CUDA können, aber CUDA-Programme werden nicht ausgeführt);

    2. die Zusammenfassung der Korrekturen war für die Allgemeinheit (u.a. auch für Morku), nicht nur allein für dich persönlich geschrieben worden.
    __

    @ Morku:

    Damit es in einem verlustlosen Video-Format gespeichert werden kann, muss es erst mal aus dem Quellformat decodiert werden. Man braucht also ein Videodecoder-Plugin für AviSynth, das MPEG4-Video aus dem MOV heraus decodieren kann, wenn man die Konvertierung über AviSynth (und z.B. VirtualDub mit VfW-Codecs) durchführen will. Ohne Plugins kann AviSynth keine MOVs öffnen. Es konnte ja ohne DGMPGDec-Plugin auch kein MPEG2 lesen.

    ...

    Oder soll es das selbe Videoformat wie innerhalb des MOV bleiben, aber bloß "verlustlos" in einen anderen Kontainer gesteckt werden? Das wäre "neu multiplexen". Dafür ließe sich zum Beispiel mkvmerge verwenden, wenn es in den MKV-Kontainer soll. Oder ffmpeg, wenn man mehr Auswahl möchte (aber das ist ein sehr komplexes Kommandozeilen-Tool, "da kann nich jeder mit üm!"). Da der MP4-Kontainer im Grunde fast das gleiche wie der MOV-Kontainer ist, nur mit ganz speziellen Änderungen, kriegt man das vielleicht auch irgendwie einfach hin (mir fällt nur grad kein Programm ein, dass das ganz bestimmt kann). In den AVI-Kontainer sollte man MPEG4-AVC aber nicht stecken, der AVI-Kontainer ist dafür im Grunde eigentlich veraltet.

  • Ich möchte viele MOV Dateien (wie jetzt eben bei dem MPG Beispiel) zu einem Videoformat zusammenfassen (welches verlustfrei sein soll), um es dann mit MeGUI mit x264 zu encodieren. Ich dachte immer (ich gebe zu, ich habe nicht sehr viel Ahnung vom Videoencoding) es wäre am besten das Video in eine AVI zu packen, um es dann mit AVIsource zu laden. Wenn ich die z.B. 20 MOV Dateien mit DirectShowSource in MeGUI lade, stürzt das sofort wegen RAM Problemen ab, also lade ich die 20 Videodateien mit DirectShowSource mit VirtualDub 64bit, da ich da meinen vollen RAM vom PC ausschöpfen kann und dann speichere ich es mit utvideo als AVI. Scheinbar falsch :( Was wäre also ratsam? Decodieren? oder multiplexen?

  • MOV-Dateien gehören zum QuickTime-System von Apple, wurden ursprünglich auf dem Mac verwendet, und haben ihre eigene Auswahl an unterstützten Videocodecs.

    AVI-Dateien gehören zum VfW-System von Microsoft, wurden ursprünglich unter Windows 3.x verwendet, und haben ihre eigene Auswahl an unterstützten Videocodecs.

    Man kann nicht garantieren, dass man den Videoinhalt von MOV-Dateien in den AVI-Kontainer umverpackt (um-multiplext) und dann noch einen VfW-Codec findet, der das nun in einem AVI enthaltene Video auch decodieren kann. Es gibt ein paar Formate, die in beiden Systemen verwendet werden, aber nicht alle.

    Wenn in dem MOV-Kontainer speziell MPEG4-AVC-Video steckt, weiß man zumindest, dass es dafür auch auf Windows-PCs Decoder gäbe. Aber der AVI-Kontainer ist eigentlich viel zu beschränkt für das eventuell sehr komplexe Videoformat MPEG4-AVC. Ja, zur Not kann man es trotzdem in ein AVI stecken, aber dann darf man sich nicht beschweren, wenn das eine oder andere Programm dann Probleme mit dem Videoinhalt hat, weil es nichts über die Besonderheiten von MPEG4-AVC weiß.

    20 MOVs in AviSynth öffnen und als ein Ut-AVI zu speichern ist wahrscheinlich gar nicht mal so falsch. Die MOVs mit DirectShowSource zu öffnen wird dir aber hier kaum jemand empfehlen, solange es noch Alternativen gibt, die das DirectShow-System vermeiden. So gibt es für AviSynth noch QTSource als Plugin speziell für QuickTime-MOVs, und es gibt FFmpegSource2 als Allrounder für viele verschiedene Formate (die Option 'threads=1' nicht vergessen).

    Für FFMS2 kann es hilfreich sein, die MOV-Dateien vor der Verarbeitung mit mkvmerge (mkvtoolnix von Moritz Bunkus) in MKV umzuverpacken. Wenn du sie einfach bloß aneinanderhängen willst, ohne etwas zu schneiden, zu filtern, sonstwie zu verändern ... ginge das mit mkvmerge wohl auch.

    Tjaaa ... irgendwie hab ich nun am Ende den Anfang vergessen: Was hast du eigentlich vor, wenn die 20 Videos aus den MOVs erst mal aneinanderhängen? Muss das ganze überhaupt als Ut-AVI zwischengespeichert werden? Oder lässt sich das Schneiden und Filtern auch innerhalb von AviSynth erledigen, und dann das Ergebnis neu gleich im endgültigen Format encodieren, ohne Gigabytes an Plattenplatz zu verbrauchen?

  • Ich möchte z.B. ein Urlaubsvideo, was eben aus vielen einzelnen Videos von der Kamera besteht zu einem zusammenhängen Video verarbeiten. Als utvideo AVI muss das natürlich nicht Zwischengespeichert werden, nur stürzten die 32bit Programme ab, als ich so viele Videoclips mit DirectshowSource geladen habe. FFmpegSource2 habe ich in den Zusammenhang mit den MPEG2 Videos ja schon getestet, aber da hatte ich dann keinen Ton, den ich ja auch ganz gerne hätte. Laut der Dokumentation von QTSource muss Quicktime installiert sein. Das kommt schon mal gar nicht in Frage. So ein Mist kommt mir nicht auf den Rechner. Die MOV Dateien lassen sich auch unter Windows 7 mit den Standard WMP Codecs abspielen (ohne installiertem Codec Pack). Sollte also denk ich nicht das komplexe Apple Video sein. Also werde ich mich dann wohl mal mit dem anderen näher beschäftigen. wie sollte das Script deiner Meinung nach aussehen? FFmpegSource2("1.MOV", atrack=-1, threads=1)+FFmpegSource2("2.MOV", atrack=-1, threads=1)+... usw.?

  • Ich finde es sehr überraschend, dass der MS-WMP ohne installiertes QuickTime MOVs öffnen können soll. Vielleicht sollte man mal mit dem GraphStudio schauen, welcher Filter-Graph da aufgebaut wird.

    Das 20-fache Konstruieren eines DirectShow-Filtergraphen belastet wahrscheinlich Windows stärker als das 20-fache Nutzen eines nativen AviSynth-Source-Filters wie FFMS2, auch wenn die verwendete Decoderbibliothek recht umfangreich sein kann. Unter anderem deshalb ist DirectShow nicht ohne Abstriche zu empfehlen. Es gibt aber noch jede Menge andere Gründe (z.B. kann man sich bei manchen Formaten nicht sicher sein, dass bei jedem Öffnen das selbe Video decodiert wird).

    Wenn es mit dem Verknüpfen von 20 MOV-Dateien (oder 20 MKV-Dateien für FFMS2) nicht klappt, dann hilft vielleicht nichts anderes, als diese jeweils einzeln in Ut-AVIs zu speichern, und dann 20x AviSource zu verwenden, um einen zusammenhängenden AviSynth-Clip zu erzeugen, der dann geschnitten, gefiltert und zum Encoder geschickt wird.

    Warum du keinen Ton in FFMS2 bekommst, ist erst mal nicht leicht zu beantworten, ohne MediaInfo-Analysen der MOVs zu sehen. Möglicherweise kennt FFMS2 den FourCC-Code der Tonspur nur noch nicht, aber es ist bestimmt ein ganz übliches Format, das sich decodieren lässt, wenn es nur weiß, welcher Decoder das könnte. Im englischen doom9-Forum sind die Entwickler schnell erreichbar und können vielleicht umgehend eine neue Version herausbringen. Und außerdem besteht die Möglichkeit, dass bei der Konvertierung von MOV nach MKV auch mkvmerge das Tonformat kennt und "umbenennt", so dass FFMS2 es dann in der MKV erkennt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!