L-SMASH Works: LibAV-Quellfilter für AviUtil, AviSynth, VapourSynth

  • Da sich dieses Projekt mittlerweile etabliert hat, richte ich mal auch einen News-Beitrag für "L-SMASH Works" ein (wisst schon — neue Versionen hier, Diskussionen darüber dort bitte).

    Analog zum DirectShow-Filter-Paket "LAVFilters" mit Splittern und Decodern basierend auf den Bibliotheken von libav.org – libavfilter und libavcodec – hat 'VFR maniac' auch Quellfilter für AviUtil (mehrere), AviSynth (LSMASHSource.dll) und VapourSynth (vslsmashsource.dll) erstellt. Diese sind FFmpegSource2 bereits deutlich überlegen, sowohl in Zuverlässigkeit und Geschwindigkeit (multithreaded decoding) als auch Umfang unterstützter Formate (Kontainer wie Inhalte).


    Für AviSynth werden folgende Funktionen zur Verfügung gestellt:

    speziell für MP4-Kontainer mit L-SMASH als Demultiplexer
    LSMASHVideoSource(string source, int track = 0, int threads = 0, int seek_mode = 0, int seek_threshold = 10, bool dr = false, bool stacked = false, string format = "")
    LSMASHAudioSource(string source, int track = 0, bool skip_priming = true, string layout = "", int rate = 0)

    für sonstige Kontainer wie MKV, PS, TS, AVI...
    LWLibavVideoSource(string source, int stream_index = -1, int threads = 0, bool cache = true, int seek_mode = 0, int seek_threshold = 10, bool dr = false, bool repeat = false, int dominance = 0, bool stacked = false, string format = "")
    LWLibavAudioSource(string source, int stream_index = -1, bool cache = true, bool av_sync = false, string layout = "", int rate = 0)


    Für VapourSynth gibt es analog:

    LibavSMASHSource(string source, int track = 0, int threads = 0, int seek_mode = 0, int seek_threshold = 10, int variable = 0, string format = "", int dr = 0)

    LWLibavSource(string source, int stream_index = -1, int threads = 0, int cache = 1, int seek_mode = 0, int seek_threshold = 10, int dr = 0, int repeat = 0, int dominance = 1)


    Quelltexte gibt es in einem github repository. Der aktuelle Binary-Download (z.Z. r702-gf9b2b46) befindet sich derzeit üblicherweise auf einem Google Drive. Der zugehörige Blog ist leider auf japanisch...

  • Aktuelle DLLs = r708: git-c7cc104 [2013-12-08]

    Code
    r708: git-c7cc104  [2013-12-08]  lwlibav_video: Retry seek when corrected frame_number greater than rap_number.
    r707: git-32c1ff2  [2013-12-08]  lwlibav_audio: Fix possible infinite loop.
    r706: git-0b66edf  [2013-12-07]  common/audio: Remove unused variable audio_frame_count.
    r705: git-dc8bd80  [2013-12-07]  libavsmash: Fix free() -> lsmash_free() to prevent crash on different C runtime.
    r704: git-8eb5a8f  [2013-12-01]  lwindex: Generate or interpolate DTS if any invalid DTS for WMV/VC-1.
    r703: git-ed370d7  [2013-11-30]  Use av_frame_alloc() instead of deprecated avcodec_alloc_frame().
  • Revision 713 korrigiert u.a. ein Speicherleck in der AviSynth-DLL.

    Code
    r713: git-dd17b77  [2014-02-14]  video: Fix 10L introduced in 2aa7ba260d .
    r712: git-1612126  [2014-02-14]  video: Improve average framerate calculation more.
    r711: git-4f027a7  [2014-02-14]  Use av_frame_free() instead of deprecated avcodec_free_frame().
    r710: git-7ed15b3  [2014-02-14]  Remove avcodec_get_frame_defaults().
    r709: git-2aa7ba2  [2014-02-14]  video: Improve average framerate calculation.
  • In r720 gibt es v.a. Stabilisierung und neue API-Versionen.

    Code
    r720: git-3548f58  [2014-05-03]  lwmuxer: Use new I/O APIs.
    r719: git-8e176da  [2014-05-03]  lwdumper: Use new I/O APIs.
    r718: git-d0e0961  [2014-05-02]  libavsmash: Use new I/O APIs.
    r717: git-0c4d9df  [2014-04-11]  lwindex: Don't treat as field coded picture if picture seems corrupted.
    r716: git-2242b10  [2014-04-08]  libavsmash: More QuickTime Audio support.
    r715: git-4ada105  [2014-04-05]  lsmashsource: Fix stack mode when AVX2 instructions are available.
    r714: git-f8890ff  [2014-02-17]  utils: Limit framerate numerator strictly up to INT32_MAX.

    Die zweite 7z-Datei (L-SMASH-Works_r720-g3548f58_v2.7z) wäre zu bevorzugen.

  • r726

    Code
    r726: git-7a8d8a7  [2014-05-22]  lwmuxer: Stop using deprecated movie parameters.
    r725: git-92d69d8  [2014-05-14]  Bump copyright years to 2014.
    r724: git-7c1dddb  [2014-05-13]  lwlibav_audio: Fix memory leak of audio frame list.
    r723: git-e4ca061  [2014-05-12]  lwindex: Fix handling of file path.
    r722: git-5d5add8  [2014-05-12]  libavsmash: Fix compilation error on debug build.
    r721: git-c9c67e6  [2014-05-08]  lwindex: Override stream with AV_DISPOSITION_ATTACHED_PIC
  • r729 von the_weirdo im doom9-Forum:

    Zitat von the_weirdo

    Here are my builds:
    L-SMASH Works r729 32-bit
    L-SMASH Works r729 64-bit
    Require Visual C++ Redist 2013 (32-bit, 64-bit)

    Code
    commit d66ea2514c0e241d29153286c42d5ccdcf5bc6c2 [revision 729]
    Author: Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
    Date:   Sat Jul 12 18:38:31 2014 +0900
    
    
        AviUtl/vpy_input: Try to get color property only when it's present.
  • Hm, laut Doom9 thread müßte LSmash-Works bei sowas wie ver. 775 sein.
    Und VFR maniac hat end Jan. noch Änderungen auf den GitHub geladen.
    Leider habe ich keinen MS C Compiler sonst würde ich die aktuelle Version selber bauen (und Cross compile geht nicht soweit mir bekannt)
    Könnte jemand den mal kompilierten und irgentwo hochladen ?
    Oder gibt's schon 'ne URL dafür ?

  • Die Dropbox enthält Builds von the_weirdo.

    "Ende Januar" war in den commits nichts mehr, und im Februar nichts funktionales, eher "Aufräumarbeiten" und Verbesserungen für Linux und MacOS X. Für PC-Nutzer über AviSynth ändert das seit r775 eigentlich nichts.

  • Lange erwartet, endlich wieder frisch:

    LSMASHSource r941 (hydra3333 Mod)

    Static Libs Build (x86 & x64)
    Shared Libs Build (x86 & x64)

    Hinweis: L-SMASH-Works issue #58 (Fehler beim Decodieren von VC-1 aus MKV) ist noch nicht behoben; in FFMS2 funktioniert das.

Jetzt mitmachen!

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