c62c674975
Originally committed to SVN as r1459.
188 lines
No EOL
7.6 KiB
HTML
188 lines
No EOL
7.6 KiB
HTML
<html>
|
|
<head>
|
|
<title>
|
|
FFmpegSource Documentation
|
|
</title>
|
|
</head>
|
|
<body>
|
|
<h1>FFmpegSource Documentation</h1>
|
|
|
|
<h2>Changes</h2>
|
|
<ul>
|
|
<li>1.5<ul>
|
|
<li>Fixed a bug that made avformat opened files only return audio if only the audio cache needed to be created</li>
|
|
<li>Rejects more corrupt cache files</li>
|
|
<li>Fixed crash when a 0 byte audio cache file is present</li>
|
|
<li>Improved framerate guessing for avformat which now takes takes the duration of the first frame into account</li>
|
|
<li>Fixed a bug introduced in 1.4 that would make the number of reported frames too high for files opened with avformat</li>
|
|
<li>Fixed mpeg2 and probably some other formats stored in mkv</li>
|
|
<li>Fixed issues with large mkv files and large audio cache files</li>
|
|
<li>FFmpeg is now compiled with liba52 and faad2</li>
|
|
</ul></li>
|
|
|
|
<li>1.4<ul>
|
|
<li>Uses the average framerate for mkv files</li>
|
|
<li>Naming scheme of cache files changed to prevent confusion with the default names in files with multiple tracks of the same type</li>
|
|
<li>Use mmx optimizations in swscaler when possible</li>
|
|
<li>Now uses normal windows linebreaks in all files</li>
|
|
<li>Removed FFAudioSource</li>
|
|
<li>Merged FFVideoSource and FFAudioRefSource into FFmpegSource</li>
|
|
<li>Added postprocessing with libpostproc in FFmpegSource and separately in FFPP</li>
|
|
</ul></li>
|
|
|
|
<li>1.3<ul>
|
|
<li>Compiled against ffmpeg rev9620</li>
|
|
<li>Added FFAudioRefSource</li>
|
|
<li>Added FFAudioSource (has big issues)</li>
|
|
<li>Renamed FFmpegSource to FFVideoSource</li>
|
|
<li>Adjusted seeking in the forward direction to only be done if the requested frame is more than 10 frames away to reduce unnecessary seeking</li>
|
|
<li>Now outputs the last frame properly when there are decoding delays</li>
|
|
</ul></li>
|
|
|
|
<li>1.2<ul>
|
|
<li>Compiled against ffmpeg rev9451</li>
|
|
<li>Somewhat cleaner source code</li>
|
|
<li>Linear access in addition to a few other modes of seeking can now be forced</li>
|
|
<li>Can now save the index information to a file which makes subsequent file opening fast</li>
|
|
<li>No longer skips indexing for any format</li>
|
|
</ul></li>
|
|
|
|
<li>1.1<ul>
|
|
<li>Skip indexing for avi</li>
|
|
<li>Prefix all error messages with the plugin name</li>
|
|
<li>Can write v2 timecodes to a file</li>
|
|
<li>Fixed reported framerate</li>
|
|
</ul></li>
|
|
|
|
</ul>
|
|
|
|
|
|
<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>TS: don't bother</li>
|
|
</ul>
|
|
|
|
<h2>Compatibility - Audio</h2>
|
|
<ul>
|
|
<li>Sample accurate in all containers</li>
|
|
</ul>
|
|
|
|
<h2>Usage</h2>
|
|
<p>
|
|
<b>FFmpegSource(string source, int vtrack = -1, int atrack = -2, string timecodes, bool vcache = true, string vcachefile, string acachefile, string pp, int ppquality = 6, int seekmode = 1)</b><br />
|
|
</p>
|
|
|
|
<p>
|
|
<b>FFPP(clip, string pp, int ppquality = 6)</b><br />
|
|
Separate postprocessing which also seems to include a few simple deinterlacers
|
|
</p>
|
|
|
|
|
|
<p>
|
|
<b>source:</b>
|
|
Source file.
|
|
</p>
|
|
|
|
<p>
|
|
<b>atrack & vtrack:</b>
|
|
Track number as seen by the relevant demuxer, starts from 0, -1 means it will pick the first suitable track and -2 means it's disabled.
|
|
</p>
|
|
|
|
|
|
<p>
|
|
<b>timecodes:</b>
|
|
File to output timecodes to, if the file exists it will be overwritten.
|
|
</p>
|
|
|
|
<p>
|
|
<b>vcache:</b>
|
|
Write video indexing information to a file for later use.
|
|
</p>
|
|
|
|
<p>
|
|
<b>vcachefile & acachefile:</b>
|
|
Specifies the file to store the index information or raw audio in, if nothing is specified (source).ffv(tracknumber)cache is used for video and (source).ffa(tracknumber)cache for audio.
|
|
</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>ppquality:</b>
|
|
The quality to use for the specified postprocessing. Valid values are 0-6 where 0 usually means that no actual processing is done.
|
|
</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>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>
|
|
|
|
<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 Configuration:</b>
|
|
./configure --enable-shared --disable-static --enable-memalign-hack --enable-gpl --enable-swscaler</p>
|
|
|
|
<p><b>Suggested Additional Options:</b>
|
|
--disable-encoders --disable-muxers --enable-small</p>
|
|
|
|
</body>
|
|
</html> |