FFmpegSource

Přehled

autor: Myrsloik
verze: 2.00 beta9
stáhnout: http://forum.doom9.org/showthread.php?t=127037, http://avisynth.org/warpenterprises/
kategorie: Audio video dekodéry (zdrojové) pluginy
požadavky: RGB24, RGB32, YUY2, YV12 Barevné prostředí
licence: GPL


Úvod

Otvírá soubory použitím ffmpeg a ničeho jiného. V dobrých dnech může být přesný na snímek. Zdroj je pod MIT licencí a lze ho získat z http://svn.aegisub.net/trunk/aegisub/FFmpegSource2/. Předkompilovaný soubor je pod GPL licencí. Pokud jste zbožní, můžete toto považovat za druhý příchod.

Známé problémy

Kompatibilita - Video

Kompatibilita - Audio

Použití

FFIndex(string source, string cachefile = source + ".ffindex", int indexmask = -1, int dumpmask = 0, string audiofile = source, bool overwrite = false)
Použito pro vyvolání indexování odděleně a k zápisu audio stop na disk jako wave64 soubory.

FFVideoSource(string source, int track, bool cache = true, string cachefile = source + ".ffindex", int fpsnum = -1, int fpsden = 1, string pp, int threads = -1, string timecodes, int seekmode = 1)
Otvírá video, vyvolá indexování s výchozími hodnotami, pokud není nalezen existující index.

FFAudioSource(string source, int track, bool cache = true, string cachefile = source + ".ffindex")
Otvírá audio, pokud už index existuje, potřebuje obsahovat vhodný audio index nebo je vráceno prázdné audio, vyvolá indexování s výchozími hodnotami, pokud není nalezen existující index.

FFPP(clip, string pp)
Oddělený postprocessing (dodatečné zpracování), který jak se zdá, obsahuje několik jednoduchých odstraňovačů prokládání (deinterlacerů).

SWScale(clip, width = -1, height = -1, resizer = "BICUBIC", colorspace = "")
Oddělený postprocessing (dodatečné zpracování), který jak se zdá, obsahuje několik jednoduchých odstraňovačů prokládání (deinterlacerů).

FFSetLogLevel(int Level)
Nastavuje log FFmpeg logovací úroveň, výchozí pro quiet (-8) a FFmpeg výchozí je 16, všechny různé hodnoty lze najít v avutil/log.h

FFGetLogLevel()
Vrací aktuální úroveň logování jako celé číslo (int).

source: Zdrojový soubor.

indexmask & dumpmask: Které audio stopy indexovat/zapsat na disk. Dumping stopy také naznačuje indexování, protože stejná práce musí být ostatně udělána. Je to binární maska znamenající, že 7 odpovídá zapsání stop 1-3. Stopy bez audia jsou ignorovány. -1 zapíše všechny stopy.

audiofile: Základní jméno pro dekódované audio. Jsou připojeny číslo stopy a zpoždění.

overwrite: Vynutí přeindexování dokonce i když už existuje platný index. Může být užitečné pro změny trackmask nebo testování.

track: Číslo stopy jak je viděno relevantním demuxerem, začíná od 0, -1 znamená, že vybere první vhodnou stopu.

fpsnum & fpsden: Pro VFR -> CFR převod. Nastavení fpsnum <= 0 znamená poměr 1:1 s enkódovanými snímky.

timecodes: Soubor pro vysílání timecodes, pokud soubor existuje bude přepsán.

cache: Zapisuje indexovací informaci do souboru pro pozdější použití. Toto nastavení neovládá jestli je video index načten, což je vždy pokud existuje.

cachefile Kam zapsat cache informaci.

pp: Podívejte se do tabulky níže na úplný popis, prázdný řetězec znamená žádné zpracování. Doporučuje se vyhnout se možnosti autoq, protože v současnosti není známé jaký vliv bude mít na zpracování.

threads: Nastavuje počet použitých vláken dekodéru. Vychází se z počtu cpu oznámených windows. Ignorován v lavc, pokud to použitý dekodér neimplementuje.

seekmode: Vynutí jaké vyhledávání (seekování) je prováděno, nemá vliv na matroska soubory, které vždy používají ekvivalent k seekmode=1
-1: lineární přístup bez rewind, vyhodí chybu pokud každé následně žádané číslo snímku není větší než poslední, určeno jen pro otvírání obrázků, ale měl by pracovat dobře s některými obskurními formáty videa
0: lineární přístup, definice pomalosti, ale měl by udělat některé formáty "použitelné"
1: bezpečný normální, základna rozhodování vyhledávání v oznámených pozicích klíčových snímků
2: riskantní normální, stejný jako 1 , ale nevyhodí žádnou chybu, když musí být hádáno přesné umístění
3: agresivní, vyhledává směrem vpřed dokonce i když není známo, že existuje blízký klíčový snímek, užitečné jen pro testování a konteinery, kde avformat neoznamuje správně klíčové snímky.

width & height: Šířka a výška na které se má změnit velikost. Hodnota menší nebo rovná 0 je stejná jako zadání vstupních rozměrů.

resizer: Vybírá resizer (měnič velikosti) použitý pro převzorkování barevnostních ploch a normální změnu velikosti. Dostupné metody jsou: FAST_BILINEAR, BILINEAR, BICUBIC, X, POINT, AREA, BICUBLIN, GAUSS, SINC, LANCZOS a SPLINE.

colorspace: Barevné prostředí, do kterého se má převést. Jména jsou YV12, YUY2, RGB24, RGB32 a prázdný řetězec pro stejné jako vstupní.

Exportované proměnné Avisynthu

FFSAR_NUM, FFSAR_DEN, FFSAR: Poměr stran (aspect ratio) přehrávání zadaný kontejnerem. FFSAR_NUM a FFSAR_DEN vytvoří racionální číslo poměru a FFSAR je poskytnuto jen pro případ potřeby.

FFCROP_LEFT, FFCROP_RIGHT, FFCROP_TOP, FFCROP_BOTTOM: Oříznutí při přehrávání zadané kontejnerem.

FFPICT_TYPE: Typ obrazu posledně žádaného snímku. Použijte after_frame=true v podmíněném skriptování Avisynthu pro správné výsledky. FFmpeg source definice čísel:

FF_I_TYPE  1 ///< Intra
FF_P_TYPE  2 ///< Predicted
FF_B_TYPE  3 ///< Bi-dir predicted
FF_S_TYPE  4 ///< S(GMC)-VOP MPEG4
FF_SI_TYPE 5 ///< Switching Intra
FF_SP_TYPE 6 ///< Switching Predicted
FF_BI_TYPE 7

PP string (řetězcový) formát

Dostupné postprocesingové filtry:
Filtry                        Možnosti
krátké dlouhé jméno   krátká  dlouhá možnost   Popis
*      *               a       autoq           CPU power dependent enabler
                       c       chrom           chrominance filtering enabled
                       y       nochrom         chrominance filtering disabled
                       n       noluma          luma filtering disabled
hb     hdeblock        (2 threshold)           horizontal deblocking filter
       1. difference factor: default=32, higher -> more deblocking
       2. flatness threshold: default=39, lower -> more deblocking
                       the h & v deblocking filters share these
                       so you can't set different thresholds for h / v
vb     vdeblock        (2 threshold)           vertical deblocking filter
ha     hadeblock       (2 threshold)           horizontal deblocking filter
va     vadeblock       (2 threshold)           vertical deblocking filter
h1     x1hdeblock                              experimental h deblock filter 1
v1     x1vdeblock                              experimental v deblock filter 1
dr     dering                                  deringing filter
al     autolevels                              automatic brightness / contrast
                       f        fullyrange     stretch luminance to (0..255)
lb     linblenddeint                           linear blend deinterlacer
li     linipoldeint                            linear interpolating deinterlace
ci     cubicipoldeint                          cubic interpolating deinterlacer
md     mediandeint                             median deinterlacer
fd     ffmpegdeint                             ffmpeg deinterlacer
l5     lowpass5                                FIR lowpass deinterlacer
de     default                                 hb:a,vb:a,dr:a
fa     fast                                    h1:a,v1:a,dr:a
ac                                             ha:a:128:7,va:a,dr:a
tn     tmpnoise        (3 threshold)           temporal noise reducer
                     1. <= 2. <= 3.            larger -> stronger filtering
fq     forceQuant                   force quantizer

Použití:

[:

Kompilování

zlib z http://www.zlib.net/

FFmpeg svn z http://ffmpeg.mplayerhq.hu/

pthreads vyžadováno jen pro FFmpeg-mt compiles

Vyžadovaná FFmpeg Konfigurace: ./configure --enable-memalign-hack --enable-gpl --enable-postproc

Navrhované doplňkové možnosti: --enable-w32threads --disable-encoders --disable-muxers --disable-network --disable-debug --enable-libfaad --disable-decoder=aac

Všimněte si, že --enable-w32threads nebo --enable-pthreads je vyžadováno pro práci multithreaded dekódování. Pro FFmpeg-mt bude pracovat jen --enable-pthreads.

Změny

Český překlad:3.7.2009