Avisynth mit Virtualdub kann MTS-Datei nicht einlesen

  • Bei mir dauert das Neuladen einer 30GB-MKV von (Magnet-)Festplatte auch locker eine Minute. Der Index scheint auch zwei mal erstellt worden zu sein (wuchs erst an, dann auf 0 Byte runter und wuchs erneut an) und ist im Vergleich zu ffms2 riesig. (3 MB vs 400 MB)
    Ich weiß aber spontan nicht, ob das schon immer so war oder ob sich da etwas in den letzten Versionen geändert hat. Müßte man sich genauer anschauen.

  • Zitat

    Der Index scheint auch zwei mal erstellt worden zu sein (wuchs erst an, dann auf 0 Byte runter und wuchs erneut an) und ist im Vergleich zu ffms2 riesig. (3 MB vs 400 MB)

    Stelle ich hier so gar nicht fest.Siehe Screen,im rotumrandeten Feld.

    selber verabschiede ich mich von ffms2 und nehme nur LSMASH + LWLibav.

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Das zweimalige Erstellen wurde bereits irgendwo mal erklärt:

    Wenn man im Skript zuerst LwLibavVideoSource verwendet, wird nur die Videospur indexiert. Folgt darauf LwLibavAudioSource, muss noch mal die Audiospur in Relation zur Videospur indexiert werden. Wer also beide Spuren verarbeiten will, sollte zuerst die Audiospur und dann die Videospur im Skript laden.

    Deshalb verwendet MeGUI wohl zum Vor-Indexieren auch einen LwLibavAudioSource-Aufruf in einem Dummy-Skript.

    Die Größe ist abhängig von verschiedenen Faktoren. Insbesondere unkomprimierte Formate, in denen praktisch überall Keyframes vorkommen, und Tonspuren mit entsprechend wahlfreiem Zugriff an jedem Frame, lassen riesige Indexdateien entstehen.

    Wahrscheinlich ist das auch die Ursache bei andreasp: Mit Tonspur ist der Index erheblich größer, da dauert auch das Neuladen länger. Bei Kleinigkeiten wie BBB passiert das nach dem Indexieren aber auch "sofort".

  • Das kenne ich nur von (alten?) ffms2-Versionen. Bei mir sind die Indices von lwlibavvideosource und lwlibavaudiosource bitidentisch. Vielleicht lag es aber nur daran, daß meine Festplatte vollief, kann es nämlich nicht mehr reproduzieren. Oder Windows' Größenanzeige spinnte mal wieder etwas. War vermutlich ein Fehlalarm meinerseits.

    Zur Größe des Index und Dauer des Neuladens:
    Habe eine alte Version (Mai 2014) getestet und sie verhält sich genau so. Ist also alles normal und man muß damit leben.

  • Tja, gestern abend LSmash nochmal ausprobiert (siehe hier http://forum.gleitz.info/showthread.php…ll=1#post451558 ),
    --> alles nicht wirklich erfreulich:

    - Es macht keinen Unterschied, ob der Index generiert wird, oder nicht. Die Wartezeiten sind die gleichen.
    - Es macht keinen Unterschied, ob man zuerst Audio oder Video lädt. Die Wartezeiten sind die gleichen.
    - Wenn der Index generiert wird und die Index-Datei noch nicht da ist, wird die Datei praktisch sofort in voller Länge hingeschrieben, die restlichen 15-45 Sekunden ändert sich weder Länge noch Datum der Datei.
    - Ein Reload (F2) im Virtualdub ändert nichts an der Indexdatei (weder Länge noch Datum), egal ob man am Script was geändert hat, oder nicht (macht Sinn, da am Originalvideo durch das Script ja nichts geändert wird).

    Hinzu kommt:
    - Springen nach vorne im VirtualDuib (ALT-Rechts) geht ein paar mal recht flüssig (=fast sofort), dann geht wieder das Gewarte los.
    - Springen zurück über den Punkt hinaus, den man gerade am laufen hatte, dauert ebenfalls 15-45 Sekunden - jeder Sprung! Man kann das an "Decoding Frame xxx" im Virtualdub schön sehen.

    Das ist alles völlig unpraktikabel und wäre für mich ein Grund, LSmash (zumindest für die Video-Bearbeitung) sofort wieder zu vergessen - ist das denn wirklich normal? Was rechnet der da bloß so lange??

    Grüß,
    Andreas

    2 Mal editiert, zuletzt von andreasp (3. Juli 2015 um 09:58)

  • Normal ist das sicher nicht.

    Und an möglichen Ursachen fallen mir erst mal nur katastrophale ein (z.B. dass du mal einen S.M.A.R.T.-Report deiner Festplatte lesen solltest). Jedenfalls würde mir kein Grund einfallen, warum ausgerechnet L-SMASH Works als einziger Decoder bei jeder neuen GOP so angestrengt darüber nachdenken müsste, wie es die Decodierung starten soll, während andere Quellfilter das nicht müssten. Der Index soll sich ja die Positionen von GOP-Starts merken, so dass der Decoder immer schnell die nächstmögliche Decodier-Start-Position vor dem aktuellen Frame findet.

    Je nach AviSynth-Version mag es noch Methoden geben, dass der Decoder sich mehr Frames um die aktuelle Position herum merkt ([MT] Prefetch oder TIVTC.RequestLinear), und das sichergestellt wird, dass der Decoder nur immer eine Anfrage gleichzeitig bekommt (kann bei MT-Versionen wichtig sein). Trotzdem sollten auch unter ungünstigen Umständen keine 15 Sekunden nötig sein. Für mich ist hier am wahrscheinlichsten, dass die Festplatte die Daten nicht liefert.

  • Nun wollte ich das Ganze mal auf dem XP-Rechner ausprobieren, da geht diese Installations-Grütze wieder los....

    Das "Microsoft Visual C++ 2010 x86 Redistributable - 10.0.40219" ist laut Systemsteuerung/Software genauso drauf wie das "Microsoft Visual C++ 2013 x86 Redistributable - 20.0.30501" (und noch zwei weitere von 2008).

    Die "LSMASHSource.dll" ist im AVISYNTH-Plugins-Verzeichnis.

    Aber nichts geht:

    AviSynth open failure:
    Script error: There is no function named "LWLibavVideoSource"

    Gebe ich ihm im AVS-Script extra noch ein
    LoadPlugin("C:\Programme\AviSynth\plugins\LSMASHSource.dll")
    (auf dem Win7-Rechner geht es ohne!), dann kommt er mit folgender Meldung:

    AviSynth open failure:
    LoadPlugin: unable to load "c:\programme\AVisynth\plugins\LSMASHSource.dll", Proc not found. Update Library version?

    Was ist nun wieder nicht richtig?!

    Nachtrag: Es war die neueste Version, die ich drauf hatte. Aber weiter oben wurde ja über die "letzte XP-Version" diskutiert.

    Also mal im "Old"-Ordner die einzige mit XP gekennzeichnete verwendet:
    https://www.dropbox.com/sh/3i81ttxf028…nGMQ8a/Old?dl=0

    L-SMASH-Works-r783-20150223-32bit-XP.7z

    Aber Pustekuchen:

    Wenn der erste Befehl LWLibavAudioSource ist:

    AviSynth open failure:
    Evaluate: System exception - Illegal Instruction

    Wenn der erste Befehl LWLibavAudioSource ist:
    AviSynth open failure:
    <lauter_wirre_Sonderzeichen> [Fatal]: Failed to avformat_open_input

    Ist jetzt wieder diese sch*** C++-Library die falsche?!

    Für heute reichts mir.....:-(

    Gruß,
    Andreas

    2 Mal editiert, zuletzt von andreasp (5. Juli 2015 um 21:36)

  • Das ist dann wohl keine 32-bit-Windows-DLL für AviSynth 2.5x oder 2.6x?

    Ich weiß nicht, womit die gepackt war; falls es ein 7z-Archiv ist, und du hast eine 7zip-Version älter als 9.20, kann es passieren, dass ohne Warnung fehlerhaft entpackt wird. Keine Ahnung, ob das hier zutrifft, war aber oft ein typischer Fehler, wenn DLL oder EXE mal defekt erschienen.

  • Zitat

    Das "Microsoft Visual C++ 2010 x86 Redistributable - 10.0.40219" ist laut Systemsteuerung/Software genauso drauf wie das "Microsoft Visual C++ 2013 x86 Redistributable - 20.0.30501" (und noch zwei weitere von 2008).

    Hatte hier früher auch ähnlichen Ärger,unter XP,hier half folgende Version,siehe Screen und im Anhang als Rar.
    [Zum Glück hat man damals alles notiert....]

    Avisynth Old.png

    https://localhost/www.ww-consulting.ch/DL/vcredist_x86.rar

    Datenrettungen Normwandlungen Restaurierungen Digitalisierungen

  • Leute, Ihr seid echt klasse drauf!! Danke für die Ideen! 7Zip ist frisch, das sollte nicht der Grund sein.
    Als C++Lib hatte ich die aktuelle weiter oben verlinkte verwendet - die aber ja bereits für Win7 ist. Dort wird zwar XP noch unter "Voraussetzungen" aufgeführt, aber ohne SP-Angabe...
    Ist bestimmt alles nicht mehr getestet und läuft nicht mehr...das wollen die ja auch gar nicht...:-/
    Avisynth ist 2.60. Ich werde es also heute Abend nochmal mit einer Neuinstallation der C++-Library versuchen.

    Mal grundsätzlich: Diesen Ärger mit den Libraries könnte man sich sparen, wenn man das gleich mit hineincompilieren würde...warum ist das nicht so?
    Das war schon damals mit VBRUN200 und VBRUN300 und und und ein Krampf....

    Grüße,
    Andreas

  • Dann nehme ich diesen hier?
    [h=3]Visual C++ Redistributable for Visual Studio 2012 Update 4[/h]Soll angeblich bis XP SP3 funktionieren...

    Grüße,
    Andreas

  • Wenn man in jede EXE oder DLL immer die komplette Runtime hineincompilieren würde, hätte man dafür aber x-mal den dafür nötigen Plattenplatz belegt. Durch die dynamische Verknüpfung spart man etwas Plattenplatz ... aber nur, solange die Anzahl der davon abhängigen Programme und Bibliotheken die Anzahl der eventuell dafür zu installierenden Runtimes in ihren verschiedenen Versionen deutlich übersteigt. :rolleyes_:

    Programme so zu compilieren, dass sie ausschließlich und höchstens nur alle wirklich benutzten Funktionen enthalten, ist ziemlich schwierig für C-Compiler. Die Ähnlichkeit zu Damenhandtaschen ist frappierend (auch da findet man wohl einiges, was nur für den Fall mit drin ist, dass es eventuell mal nützlich sein könnte ... tatsächlich aber kaum wöchentlich verwendet wird). ;D

  • SP3 ist drauf und die neueste (Studio 2013, in der Liste auf der MS-Seite ganz oben) funktioniert ja anscheinend nicht. Mal schauen, was geht...

    Grüße,
    Andreas

  • Tut mir leid, Leute, ich gebs auf. Nachdem ich alle C++-Runtimes deinstalliert hatte (ja, muß man alle einzeln deinstallieren :/, also 200er, 2010er, 2013er), habe ich de 2012er-C++-Grütze von der MS-Seite installiert. Die installiert aber wohl im Gegensatz zur 2013er *nur* die 2012er, keine 2008er oder 2010er mit. LSMash quittierte das mit der gleichen Meldung, wie wenn keine C++-Library drauf ist. "Function not found - Install Library?" oder so ähnlich. Ich kann nur zu dem Schluß kommen, L-Smash funktioniert leider nicht mehr mit Windows XP !

  • Ja, "selbstverständlich" sind alle Runtime-Versionen von Visual C++ unabhängig voneinander, man muss tatsächlich alle Versionen installiert haben, die von allen installierten Programmen benötigt werden könnten. Und dazu kommen in den höheren Versionen eventuell auch noch unterschiedliche .NET-Assemblies der jeweiligen Service-Packs.

    Wer sich regelmäßig mit dem Offline-Update-Generator von wsusoffline.net einen Update-USB-Stick erzeugt hat (sehr empfehlenswert, einen frisch installierten PC damit mit Update-Patches zu versorgen, bevor er erstmalig an ein Netzwerk angeschlossen wird), der wird alle MSVC-Runtime-Installer gesammelt haben und kann sie eine nach dem anderen installieren. Die aktuellen wsusoffline-Versionen unterstützen Windows XP (und Server 2003 bald) nicht mehr, man muss da vielleicht auf das Archiv zurückgreifen und hoffen, dass von Microsoft noch alles nötige herunterladbar ist.

  • Nun, die 2013er hatte im Gegensatz zur 2012er alle vier Runtimes (2x2008, 2010 und 2013) auf einmal installiert.

    Egal. Der Zeitrahmen ist bei weitem überschritten. Wenn ich dann noch daran denke, daß *nach* einer (immer noch nicht geschafften) erfolgreichen XP-Installation, das Problem mit den 35 Sekunden zum Einlesen/Aktualisieren/Schließen der MTS-Datei ungelöst ist (auch unter Win7), muß ich für mich persönlich L-Smash für unbrauchbar erklären.

    Noch eine Info: Die Platte ist es auf den Win7-Rechner nicht. Mit dem Media-Player kommt das File sofort und schnell auf den Schirm, man kann spulen und springen, alles OK.

    Trotzdem nochmal Danke an Euch für die Hilfe - auch wenn´s nicht zu Erfolg geführt hat.
    Gruß,
    Andreas

Jetzt mitmachen!

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