bf9f2b50b7
Originally committed to SVN as r2366.
197 lines
7.7 KiB
HTML
197 lines
7.7 KiB
HTML
<html>
|
|
<head>
|
|
<title>
|
|
FFmpegSource2 Documentation
|
|
</title>
|
|
</head>
|
|
<body>
|
|
<h1>FFmpegSource2 Documentation</h1>
|
|
<p>
|
|
Opens files using ffmpeg and nothing else. May be frame accurate on good days. The source is MIT licensed and can be obtained from https://spaceboyz.net/svn/aegisub/trunk/FFmpegSource2. The precompiled binary is GPL licensed. If you are religious you may consider this the second coming.
|
|
</p>
|
|
|
|
<h2>Compatibility - Video</h2>
|
|
<ul>
|
|
<li>AVI, MKV, MP4, FLV: Frame accurate</li>
|
|
<li>WMV: Frame accurate(?) but avformat seems to pick keyframes relatively far away</li>
|
|
<li>OGM: Messed up first frame and seeking produces smearing with seekmode=3, incredibly slow seeking without, remux to mkv or avi</li>
|
|
<li>VOB: No rff flags applied, frame accurate?</li>
|
|
<li>MPG: Seeking seems to be off by one or two frames now and then</li>
|
|
<li>M2TS, TS: Linear access only (seekmode=-1)</li>
|
|
<li>Image files: Most formats can be opened if seekmode=-1 is set</li>
|
|
</ul>
|
|
|
|
<h2>Compatibility - Audio</h2>
|
|
<ul>
|
|
<li>All formats are written to separate wave64 files</li>
|
|
<li>No wave64 reader is provided</li>
|
|
</ul>
|
|
|
|
<h2>Usage</h2>
|
|
<p>
|
|
<b>FFIndex("string source, string cachefile = source + ".ffindex", int trackmask = 0, string audiofile = source, bool overwrite = false)</b><br />
|
|
Used to invoke indexing separately and to write audio tracks to disk as wave64 files
|
|
</p>
|
|
|
|
<p>
|
|
<b>FFVideoSource(string source, int track, bool cache = true, string cachefile = source + ".ffindex", string pp, int threads = -1, string timecodes, int seekmode = 1)</b><br />
|
|
Opens video, will invoke indexing with the defaults if no preexisting index is found
|
|
</p>
|
|
|
|
<p>
|
|
<b>FFPP(clip, string pp)</b><br />
|
|
Separate postprocessing which also seems to include a few simple deinterlacers
|
|
</p>
|
|
|
|
<p>
|
|
<b>SWScale(clip, width = -1, height = -1, resizer = "BICUBIC", colorspace = "")</b><br />
|
|
Separate postprocessing which also seems to include a few simple deinterlacers
|
|
</p>
|
|
|
|
<p>
|
|
<b>source:</b>
|
|
Source file.
|
|
</p>
|
|
|
|
<p>
|
|
<b>trackmask:</b>
|
|
Which audio tracks to write to disk. It is a binary mask meaning that 7 corresponds to writing tracks 1-3. Non-audio tracks are ignored. -1 writes all tracks.
|
|
</p>
|
|
|
|
<p>
|
|
<b>audiofile:</b>
|
|
The base name to use for the decoded audio. Track number and delay is appended.
|
|
</p>
|
|
|
|
<p>
|
|
<b>overwrite:</b>
|
|
Forces reindexing even if a valid index already exists. May be useful for trackmask changes or testing.
|
|
</p>
|
|
|
|
<p>
|
|
<b>track:</b>
|
|
Track number as seen by the relevant demuxer, starts from 0, -1 means it will pick the first suitable track.
|
|
</p>
|
|
|
|
<p>
|
|
<b>timecodes:</b>
|
|
File to output timecodes to, if the file exists it will be overwritten.
|
|
</p>
|
|
|
|
<p>
|
|
<b>cache:</b>
|
|
Write indexing information to a file for later use. This setting does not control if The video index is loaded which it always is if it exists.
|
|
</p>
|
|
|
|
<p>
|
|
<b>cachefile</b>
|
|
Where to write the cache information.
|
|
</p>
|
|
|
|
<p>
|
|
<b>pp:</b>
|
|
See the table below for a full description, an empty string means no processing. It is recommended to avoid the autoq option since it's currently unknown what effect it will have on the processing.
|
|
</p>
|
|
|
|
<p>
|
|
<b>threads:</b>
|
|
Sets the number of decoder threads used. Defaults to the number of cpus reported by windows. Ignored by lavc if the used decoder doesn't implement it.
|
|
</p>
|
|
|
|
<p>
|
|
<b>seekmode:</b>
|
|
Force how seeking is handled, has no effect on matroska files which always use the equivalent of seekmode=1<br />
|
|
<b>-1:</b> linear access without rewind, will throw an error if each successive requested frame number isn't bigger than the last one, only intended for opening images but might work on well with some obscure video format<br />
|
|
<b>0:</b> linear access, the definition of slow but should make some formats "usable"<br />
|
|
<b>1:</b> safe normal, bases seeking decisions on the reported keyframe positions<br />
|
|
<b>2:</b> unsafe normal, same as 1 but no error will be thrown if the exact destination has to be guessed<br />
|
|
<b>3:</b> aggressive, seek in the forward direction even if no closer keyframe is known to exist, only useful for testing and containers where avformat doesn't report keyframes properly
|
|
</p>
|
|
|
|
<p>
|
|
<b>width & height:</b>
|
|
Width and height to resize to. Value below or equal to 0 is the same as specifying the input dimensions.
|
|
</p>
|
|
|
|
<p>
|
|
<b>resizer:</b>
|
|
Selects the resizer used for resampling the chroma planes and normal resizing. The available methods are: FAST_BILINEAR, BILINEAR, BICUBIC, X, POINT, AREA, BICUBLIN, GAUSS, SINC, LANCZOS and SPLINE.
|
|
</p>
|
|
|
|
<p>
|
|
<b>colorspace:</b>
|
|
The colorspace to convert to. The names are YV12, YUY2, RGB24, RGB32 and the empty string for same as input.
|
|
</p>
|
|
|
|
|
|
<h2>PP string format</h2>
|
|
<pre>
|
|
Available postprocessing filters:
|
|
Filters Options
|
|
short long name short long option Description
|
|
* * 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 <quantizer> force quantizer
|
|
Usage:
|
|
<filterName>[:<option>[:<option>...]][[,|/][-]<filterName>[:<option>...]]...
|
|
long form example:
|
|
vdeblock:autoq/hdeblock:autoq/linblenddeint default,-vdeblock
|
|
short form example:
|
|
vb:a/hb:a/lb de,-vb
|
|
more examples:
|
|
tn:64:128:256
|
|
</pre>
|
|
|
|
<h2>Compiling</h2>
|
|
|
|
<p><b>zlib</b> from http://www.zlib.net/</p>
|
|
|
|
<p><b>FFmpeg svn</b> from http://ffmpeg.mplayerhq.hu/</p>
|
|
|
|
<p><b>Required FFmpeg Configuration:</b>
|
|
./configure --enable-memalign-hack --enable-gpl --enable-swscale --enable-postproc
|
|
|
|
<p><b>Suggested Additional Options:</b>
|
|
--enable-w32threads --disable-encoders --disable-muxers --disable-debug</p>
|
|
|
|
<p>
|
|
Note that --enable-w32threads is required for multithreaded decoding to work.
|
|
</p>
|
|
|
|
<h2>Changes</h2>
|
|
<ul>
|
|
<li>2.00 beta 1<ul>
|
|
<li>Can now be used as a stand alone library for making indices and retrieving frames</li>
|
|
<li>Rewrote most things</li>
|
|
<li>Updated FFmpeg to rev 15301</li>
|
|
</ul></li>
|
|
</ul>
|
|
|
|
</body>
|
|
</html>
|