On 02/02/2021 03:29 PM, Michael Koch wrote:
-snip-
In my opinion, it would be best to have all documentation in a wiki.
A wiki? Available to all to modify? I respectfully disagree.
Another suggestion: A programmer who adds a new feature to FFmpeg shouldn't write the documentation
for this feature himself. Because for him everything is totally clear and he forgets to describe
some important details. It's better if someone else tests the new feature and writes the documentation.
I agree wholeheartedly! Further, I prefer that the documentarian submit their writings to an editor,
an editor who would also perform documentation triage in the ffmpeg-user list. Even seasoned writers
and encyclopedia writers are required to submit their writing to editors. An editor can correct
English grammar, can advocate for comprehension goals, can coordinate documentation style, and can,
when appropriate, liaison between documentarians and developers. Rather than as a gatekeeper, the
editor can function as a first critic who can help relieve the load that developers and
documentarians will naturally feel.
Here is the way that I document filters for my own use:
(Hopefully, your email client will not trash this too much.)
minterpolate ...Convert video frames to a specified frame rate by dropping frames or by inserting
new frames via frame duplication, blending, or motion compensation.
minterpolate=fps=60:mb_size=16:mc_mode=ombc:me_mode=bilat:me=epzs:mi_mode=mci:scd_threshold=10:scd=fdiff:search_param=32:vsbmc=0
...Defaults.
minterpolate=fps ...The output frame rate (integer or
fraction). [1]
fps=30 or fps=30000/1001 or fps=30/1.001 ...Examples.
minterpolate=mb_size ...Macroblock size (integer):
mb_size=4 to mb_size=16
minterpolate=mc_mode ...Motion compensation mode (integer or
string):
mc_mode=0 or mc_mode=ombc ...Overlapped block. [2]
mc_mode=1 or mc_mode=aobmc ...Adaptive overlapped block. [2][3]
minterpolate=me_mode ...Motion estimation mode (integer or
string):
me_mode=0 or me_mode=bidir ...Bidirectional motion estimation.
[2][4]
me_mode=1 or me_mode=bilat ...Bilateral motion estimation. [2][5]
minterpolate=me ...Motion estimation algorithm to apply (integer
or string):
me=1 or me=esa ...Exhaustive search algorithm. [2]
me=2 or me=tss ...Three step search algorithm. [2]
me=3 or me=tdls ...Two dimensional logarithmic search algorithm.
[2]
me=4 or me=ntss ...New three step search algorithm. [2]
me=5 or me=fss ...Four step search algorithm. [2]
me=6 or me=ds ...Diamond search algorithm. [2]
me=7 or me=hexbs ...Hexagon-based search algorithm. [2]
me=8 or me=epzs ...Enhanced predictive zonal search algorithm.
[2]
me=9 or me=umh ...Uneven multi-hexagon search algorithm. [2]
minterpolate=mi_mode ...Motion interpolation mode (integer or
string):
mi_mode=0 or mi_mode=dup ...Duplicate previous or next frame for interpolating new
ones.
mi_mode=1 or mi_mode=blend ...Blend source frames. [6]
mi_mode=2 or mi_mode=mci ...Motion compensated interpolation.
minterpolate=scd_threshold ...Scene change detection
threshold (integer):
scd_threshold=0 to scd_threshold=100
minterpolate=scd ...Scene change detection method (integer or
string):
scd=0 or scd=none ...Disable scene change detection. [7]
scd=1 or scd=fdiff ...Frame difference. [7][8]
minterpolate=search_param ...Search parameter
(integer):
search_param=4 to search_param=INT_MAX ...?????
minterpolate=vsbmc ...Variable-size block motion compensation (integer):
vsbmc=0 ...Off.
vsbmc=1 ...On.
[1] For each 'current' frame, whenever the prior-output-to-current-input time stamp difference is
less than 1/'fps' (i.e. the input frame rate exceeds 'fps'), the current frame is dropped.
[2] Ignored unless 'mi_mode=mci' (or 'mi_mode=2').
[3] To reduce oversmoothing, window weighting coefficients are controlled adaptively according to
the reliability of the neighboring motion vectors.
[4] Motion vectors are estimated for each source frame in both forward and
backward directions.
[5] Motion vectors are estimated directly for interpolated frame.
[6] Interpolated frames are the mean of previous and next frames.
[7] Scene change leads motion vectors to be in random directions. Scene change detection replaces
interpolated frames by duplicated ones. May not be needed for mi_mode=dup or mi_mode=blend.
[8] Corresponding pixel values are compared and, if they do not exceed the scd_threshold, scene
change is detected.
--
Someone's sneaking in and turning up the flame so that my food burns.
I'm sure of it.
And the older I get, the more sure of it I become.
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".