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...