Note error at the end of the report.
I suspect the problem is that 'fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10' needs some sort of internal delimiters, but I can't figure out what they would be. ffmpeg -i SOURCE -map 0 -filter_complex "split[1][2], \ [1]telecine=pattern=55, select=not(eq(mod(n\,5)\,2))[3], \ [2]minterpolate=fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10, \ select=eq(mod(n\,5)\,2)[4], \ [3][4]interleave" \ -codec:v libx265 -x265-params "crf=16:qcomp=0.60" -codec:a copy -codec:s copy TARGET ffmpeg started on 2021-01-26 at 19:49:34 Report written to "ffmpeg-20210126-194934.log" Log level: 32 Command line: ffmpeg -i "source=24FPS.mkv" -map 0 -filter_complex "split[1][2], [1]telecine=pattern=55, select=not(eq(mod(n\\,5)\\,2))[3], [2]minterpolate=fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10, select=eq(mod(n\\,5)\\,2)[4], [3][4]interleave" -codec:v libx265 -x265-params "crf=16:qcomp=0.60" -codec:a copy -codec:s copy "target=60FPS {telecine55[A.a][A.a][B.b][B.b]}{minterpolate=fps=60[A.b]}interleave = [A.a][A.a][A~b][B.b][B.b].mkv" ffmpeg version N-100679-g24dc6d386c Copyright (c) 2000-2021 the FFmpeg developers built with gcc 9.3-win32 (GCC) 20200320 configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-zlib --enable-libxml2 --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-opencl --enable-libvmaf --enable-vulkan --enable-libvorbis --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-libdavs2 --enable-ffnvcodec --enable-cuda-llvm --enable-libglslang --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libvidstab --enable-libx264 --enable-libx26 libavutil 56. 63.101 / 56. 63.101 libavcodec 58.117.101 / 58.117.101 libavformat 58. 65.101 / 58. 65.101 libavdevice 58. 11.103 / 58. 11.103 libavfilter 7. 96.100 / 7. 96.100 libswscale 5. 8.100 / 5. 8.100 libswresample 3. 8.100 / 3. 8.100 libpostproc 55. 8.100 / 55. 8.100 [matroska,webm @ 000001ab9c296600] Could not find codec parameters for stream 3 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options Input #0, matroska,webm, from 'source=24FPS.mkv': Metadata: encoder : libebml v1.4.0 + libmatroska v1.6.2 creation_time : 2021-01-23T03:12:17.000000Z Duration: 00:00:20.11, start: 0.000000, bitrate: 26228 kb/s Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default) Metadata: BPS-eng : 24046529 DURATION-eng : 00:00:20.020000000 NUMBER_OF_FRAMES-eng: 480 NUMBER_OF_BYTES-eng: 60176441 _STATISTICS_WRITING_APP-eng: mkvmerge v51.0.0 ('I Wish') 64-bit _STATISTICS_WRITING_DATE_UTC-eng: 2021-01-23 03:12:17 _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:1(eng): Audio: dts (DTS-HD MA), 48000 Hz, stereo, s32p (24 bit) (default) Metadata: BPS-eng : 2085565 DURATION-eng : 00:00:20.096000000 NUMBER_OF_FRAMES-eng: 1884 NUMBER_OF_BYTES-eng: 5238940 _STATISTICS_WRITING_APP-eng: mkvmerge v51.0.0 ('I Wish') 64-bit _STATISTICS_WRITING_DATE_UTC-eng: 2021-01-23 03:12:17 _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:2(eng): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s Metadata: BPS-eng : 192000 DURATION-eng : 00:00:20.096000000 NUMBER_OF_FRAMES-eng: 628 NUMBER_OF_BYTES-eng: 482304 _STATISTICS_WRITING_APP-eng: mkvmerge v51.0.0 ('I Wish') 64-bit _STATISTICS_WRITING_DATE_UTC-eng: 2021-01-23 03:12:17 _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES Stream #0:3(eng): Subtitle: hdmv_pgs_subtitle Metadata: BPS-eng : 0 DURATION-eng : 00:00:00.000000000 NUMBER_OF_FRAMES-eng: 0 NUMBER_OF_BYTES-eng: 0 _STATISTICS_WRITING_APP-eng: mkvmerge v51.0.0 ('I Wish') 64-bit _STATISTICS_WRITING_DATE_UTC-eng: 2021-01-23 03:12:17 _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES [Parsed_telecine_1 @ 000001ab9c726dc0] Telecine pattern 55 yields up to 3 frames per frame, pts advance factor: 4/10 [minterpolate @ 000001ab9c82e040] [Eval @ 0000004cbfbfe490] Invalid chars '=mc_mode=obmc' at the end of expression 'mci=mc_mode=obmc' [minterpolate @ 000001ab9c82e040] Unable to parse option value "mci=mc_mode=obmc" [minterpolate @ 000001ab9c82e040] [Eval @ 0000004cbfbfe4b0] Invalid chars '=mc_mode=obmc' at the end of expression 'mci=mc_mode=obmc' [minterpolate @ 000001ab9c82e040] Unable to parse option value "mci=mc_mode=obmc" [minterpolate @ 000001ab9c82e040] Error setting option mi_mode to value mci=mc_mode=obmc. [Parsed_minterpolate_3 @ 000001ab9c893d40] Error applying options to the filter. [AVFilterGraph @ 000001ab9d11d4c0] Error initializing filter 'minterpolate' with args 'fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10' Error initializing complex filters. Invalid argument _______________________________________________ ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
On 2021-01-26 16:59, Mark Filipak (ffmpeg) wrote:
> Note error at the end of the report. > I suspect the problem is that > 'fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10' > needs some sort of internal delimiters, but I can't figure out what > they would be. > > ffmpeg -i SOURCE -map 0 -filter_complex "split[1][2], \ > [1]telecine=pattern=55, select=not(eq(mod(n\,5)\,2))[3], \ > [2]minterpolate=fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10, > \ > select=eq(mod(n\,5)\,2)[4], \ > [3][4]interleave" \ > -codec:v libx265 -x265-params "crf=16:qcomp=0.60" -codec:a copy > -codec:s copy TARGET > …[snip]… > [minterpolate @ 000001ab9c82e040] [Eval @ 0000004cbfbfe490] Invalid > chars '=mc_mode=obmc' at the end of expression 'mci=mc_mode=obmc' > [minterpolate @ 000001ab9c82e040] Unable to parse option value > "mci=mc_mode=obmc" > [minterpolate @ 000001ab9c82e040] [Eval @ 0000004cbfbfe4b0] Invalid > chars '=mc_mode=obmc' at the end of expression 'mci=mc_mode=obmc' > [minterpolate @ 000001ab9c82e040] Unable to parse option value > "mci=mc_mode=obmc" > [minterpolate @ 000001ab9c82e040] Error setting option mi_mode to > value mci=mc_mode=obmc. > [Parsed_minterpolate_3 @ 000001ab9c893d40] Error applying options to > the filter. > [AVFilterGraph @ 000001ab9d11d4c0] Error initializing filter > 'minterpolate' with args > 'fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10' > Error initializing complex filters. > Invalid argument > Perhaps the character between 'mci' and 'mc_mode' should be ':' instead of '-'? _______________________________________________ ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
In reply to this post by Mark Filipak (ffmpeg)
On 2021-01-26 16:59, Mark Filipak (ffmpeg) wrote:
> Note error at the end of the report. > I suspect the problem is that > 'fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10' > needs some sort of internal delimiters, but I can't figure out what > they would be. > > ffmpeg -i SOURCE -map 0 -filter_complex "split[1][2], \ > [1]telecine=pattern=55, select=not(eq(mod(n\,5)\,2))[3], \ > [2]minterpolate=fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10, > \ > select=eq(mod(n\,5)\,2)[4], \ > [3][4]interleave" \ > -codec:v libx265 -x265-params "crf=16:qcomp=0.60" -codec:a copy > -codec:s copy TARGET > …[snip]… > [minterpolate @ 000001ab9c82e040] [Eval @ 0000004cbfbfe490] Invalid > chars '=mc_mode=obmc' at the end of expression 'mci=mc_mode=obmc' > [minterpolate @ 000001ab9c82e040] Unable to parse option value > "mci=mc_mode=obmc" > [minterpolate @ 000001ab9c82e040] [Eval @ 0000004cbfbfe4b0] Invalid > chars '=mc_mode=obmc' at the end of expression 'mci=mc_mode=obmc' > [minterpolate @ 000001ab9c82e040] Unable to parse option value > "mci=mc_mode=obmc" > [minterpolate @ 000001ab9c82e040] Error setting option mi_mode to > value mci=mc_mode=obmc. > [Parsed_minterpolate_3 @ 000001ab9c893d40] Error applying options to > the filter. > [AVFilterGraph @ 000001ab9d11d4c0] Error initializing filter > 'minterpolate' with args > 'fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10' > Error initializing complex filters. > Invalid argument > [correcting a typo, it looked fine before but my spectacles are imperfect.] Perhaps the character between 'mci' and 'mc_mode' should be ':' instead of '='? _______________________________________________ ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
In reply to this post by Jim DeLaHunt-2
On 01/26/2021 08:31 PM, Jim DeLaHunt wrote:
> On 2021-01-26 16:59, Mark Filipak (ffmpeg) wrote: > >> Note error at the end of the report. >> I suspect the problem is that 'fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10' >> needs some sort of internal delimiters, but I can't figure out what they would be. >> >> ffmpeg -i SOURCE -map 0 -filter_complex "split[1][2], \ >> [1]telecine=pattern=55, select=not(eq(mod(n\,5)\,2))[3], \ >> [2]minterpolate=fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10, \ >> select=eq(mod(n\,5)\,2)[4], \ >> [3][4]interleave" \ >> -codec:v libx265 -x265-params "crf=16:qcomp=0.60" -codec:a copy -codec:s copy TARGET >> …[snip]… >> [minterpolate @ 000001ab9c82e040] [Eval @ 0000004cbfbfe490] Invalid chars '=mc_mode=obmc' at the >> end of expression 'mci=mc_mode=obmc' >> [minterpolate @ 000001ab9c82e040] Unable to parse option value "mci=mc_mode=obmc" >> [minterpolate @ 000001ab9c82e040] [Eval @ 0000004cbfbfe4b0] Invalid chars '=mc_mode=obmc' at the >> end of expression 'mci=mc_mode=obmc' >> [minterpolate @ 000001ab9c82e040] Unable to parse option value "mci=mc_mode=obmc" >> [minterpolate @ 000001ab9c82e040] Error setting option mi_mode to value mci=mc_mode=obmc. >> [Parsed_minterpolate_3 @ 000001ab9c893d40] Error applying options to the filter. >> [AVFilterGraph @ 000001ab9d11d4c0] Error initializing filter 'minterpolate' with args >> 'fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10' >> Error initializing complex filters. >> Invalid argument >> > > Perhaps the character between 'mci' and 'mc_mode' should be ':' instead of '-'? Hi Jim, I tried that and found no Joy. Via indentation, the documentation (https://ffmpeg.org/ffmpeg-all.html#minterpolate) strongly implies that ‘mc_mode’ & ‘me_mode’ & 'me' are all arguments to 'mci', but that's obviously wrong. <sigh> Based on a different error message during my stumbling, I also tried 'fps=60000/1001:mi_mode=mci(mc_mode=obmc):scd=fdiff:scd_threshold=10' but that didn't work either. I'm getting so tired of all the trial-&-error when trying to get commands to work. Undoubtedly whomever wrote the documentation knew what he/she meant, but it's a mystery to me. -- Someone's sneaking in and turning up the range 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 [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
In reply to this post by Jim DeLaHunt-2
On 01/26/2021 08:39 PM, Jim DeLaHunt wrote:
> On 2021-01-26 16:59, Mark Filipak (ffmpeg) wrote: > >> Note error at the end of the report. >> I suspect the problem is that 'fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10' >> needs some sort of internal delimiters, but I can't figure out what they would be. >> >> ffmpeg -i SOURCE -map 0 -filter_complex "split[1][2], \ >> [1]telecine=pattern=55, select=not(eq(mod(n\,5)\,2))[3], \ >> [2]minterpolate=fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10, \ >> select=eq(mod(n\,5)\,2)[4], \ >> [3][4]interleave" \ >> -codec:v libx265 -x265-params "crf=16:qcomp=0.60" -codec:a copy -codec:s copy TARGET >> …[snip]… >> [minterpolate @ 000001ab9c82e040] [Eval @ 0000004cbfbfe490] Invalid chars '=mc_mode=obmc' at the >> end of expression 'mci=mc_mode=obmc' >> [minterpolate @ 000001ab9c82e040] Unable to parse option value "mci=mc_mode=obmc" >> [minterpolate @ 000001ab9c82e040] [Eval @ 0000004cbfbfe4b0] Invalid chars '=mc_mode=obmc' at the >> end of expression 'mci=mc_mode=obmc' >> [minterpolate @ 000001ab9c82e040] Unable to parse option value "mci=mc_mode=obmc" >> [minterpolate @ 000001ab9c82e040] Error setting option mi_mode to value mci=mc_mode=obmc. >> [Parsed_minterpolate_3 @ 000001ab9c893d40] Error applying options to the filter. >> [AVFilterGraph @ 000001ab9d11d4c0] Error initializing filter 'minterpolate' with args >> 'fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10' >> Error initializing complex filters. >> Invalid argument >> > > [correcting a typo, it looked fine before but my spectacles are imperfect.] > > Perhaps the character between 'mci' and 'mc_mode' should be ':' instead of '='? Too late. I already replied. But I knew what you meant. :-) -- Someone's sneaking in and turning up the range 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 [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
In reply to this post by Jim DeLaHunt-2
Jim DeLaHunt-2 wrote
> Perhaps the character between 'mci' and 'mc_mode' should be ':' instead > of '='? That works for me -vf minterpolate=fps=60000/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10 Each one is a separate option and argument https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/vf_minterpolate.c -- Sent from: http://ffmpeg-users.933282.n4.nabble.com/ _______________________________________________ ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
On 01/26/2021 09:49 PM, pdr0 wrote:
> Jim DeLaHunt-2 wrote >> Perhaps the character between 'mci' and 'mc_mode' should be ':' instead >> of '='? > > That works for me > > -vf > minterpolate=fps=60000/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10 > > Each one is a separate option and argument > > https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/vf_minterpolate.c Thank you. It works for me, too. I don't know why it didn't work the 1st time (except maybe because I have so many balls in the air). So, unlike what is shown in the documentation, 'mc_mode' is _not_ an argument of 'mci'. Apparently, 1, 'mi_mode=mci' is a valid argument and, 2, that 'mc_mode' (and perhaps 'me_mode' & 'me') are valid solely if mi_mode=mci but are otherwise not arguments of 'mi_mode=mci' but are direct options of 'minterpolate'. That kind of scope is probably what the author intended when he/she indented them below 'mci', but the indenting is very misleading. I will try all combinations of minterpolate to resolve all the options and issues and return with a new beautified version of the minterpolate documentation. Perhaps that will save people in the future because minterpolate is an important and amazing function. -- Someone's sneaking in and turning up the range 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 [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
In reply to this post by pdr0
I ask this because I think it can only be answered by looking at the source code. I'm not competent
to do that. Is 'mi_mode=dup' or 'mi_mode=blend' or 'mi_mode=mci' the default? On 01/26/2021 09:49 PM, pdr0 wrote: > Jim DeLaHunt-2 wrote >> Perhaps the character between 'mci' and 'mc_mode' should be ':' instead >> of '='? > > That works for me > > -vf > minterpolate=fps=60000/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10 > > Each one is a separate option and argument > > https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/vf_minterpolate.c Thank you. It works for me, too. I don't know why it didn't work the 1st time (except maybe because I have so many balls in the air). So, unlike what is shown in the documentation, 'mc_mode' is _not_ an argument of 'mci'. Apparently, 1, 'mi_mode=mci' is a valid argument and, 2, that 'mc_mode' (and perhaps 'me_mode' & 'me') are valid solely if mi_mode=mci but are otherwise not arguments of 'mi_mode=mci' but are direct options of 'minterpolate'. That kind of scope is probably what the author intended when he/she indented them below 'mci', but the indenting is very misleading. I will try all combinations of minterpolate to resolve all the options and issues and return with a new beautified version of the minterpolate documentation. Perhaps that will save people in the future because minterpolate is an important and amazing function. -- Someone's sneaking in and turning up the range 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 [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". _______________________________________________ ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
In reply to this post by Mark Filipak (ffmpeg)
On 2021-01-26 20:05, Mark Filipak (ffmpeg) wrote:
> On 01/26/2021 09:49 PM, pdr0 wrote: >> Jim DeLaHunt-2 wrote >>> Perhaps the character between 'mci' and 'mc_mode' should be ':' instead >>> of '='? >> >> That works for me >> >> -vf >> minterpolate=fps=60000/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10 >> >> >> Each one is a separate option and argument >> >> https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/vf_minterpolate.c >> > > Thank you. It works for me, too. I don't know why it didn't work the > 1st time (except maybe because I have so many balls in the air). > > So, unlike what is shown in the documentation, 'mc_mode' is _not_ an > argument of 'mci'. > > Apparently, 1, 'mi_mode=mci' is a valid argument and, 2, that > 'mc_mode' (and perhaps 'me_mode' & 'me') are valid solely if > mi_mode=mci but are otherwise not arguments of 'mi_mode=mci' but are > direct options of 'minterpolate'. That kind of scope is probably what > the author intended when he/she indented them below 'mci', but the > indenting is very misleading. > misleading. Yes, 'mc_mode' and 'me_mode' and 'me' are top-level options for the minterpolate filter, but the filter only consults their values if 'mi_mode'='mci'. This is the part of the minterpolate video filter which defines the options: https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/vf_minterpolate.c#L205-L235 [The following looks better in a fixed-pitch font.] static const AVOption minterpolate_options[] = { { "fps", "output's frame rate", OFFSET(frame_rate), AV_OPT_TYPE_VIDEO_RATE, {.str = "60"}, 0, INT_MAX, FLAGS }, { "mi_mode", "motion interpolation mode", OFFSET(mi_mode), AV_OPT_TYPE_INT, {.i64 = MI_MODE_MCI}, MI_MODE_DUP, MI_MODE_MCI, FLAGS, "mi_mode" }, CONST("dup", "duplicate frames", MI_MODE_DUP, "mi_mode"), CONST("blend", "blend frames", MI_MODE_BLEND, "mi_mode"), CONST("mci", "motion compensated interpolation", MI_MODE_MCI, "mi_mode"), { "mc_mode", "motion compensation mode", OFFSET(mc_mode), AV_OPT_TYPE_INT, {.i64 = MC_MODE_OBMC}, MC_MODE_OBMC, MC_MODE_AOBMC, FLAGS, "mc_mode" }, CONST("obmc", "overlapped block motion compensation", MC_MODE_OBMC, "mc_mode"), CONST("aobmc", "adaptive overlapped block motion compensation", MC_MODE_AOBMC, "mc_mode"), { "me_mode", "motion estimation mode", OFFSET(me_mode), AV_OPT_TYPE_INT, {.i64 = ME_MODE_BILAT}, ME_MODE_BIDIR, ME_MODE_BILAT, FLAGS, "me_mode" }, CONST("bidir", "bidirectional motion estimation", ME_MODE_BIDIR, "me_mode"), CONST("bilat", "bilateral motion estimation", ME_MODE_BILAT, "me_mode"), { "me", "motion estimation method", OFFSET(me_method), AV_OPT_TYPE_INT, {.i64 = AV_ME_METHOD_EPZS}, AV_ME_METHOD_ESA, AV_ME_METHOD_UMH, FLAGS, "me" }, CONST("esa", "exhaustive search", AV_ME_METHOD_ESA, "me"), CONST("tss", "three step search", AV_ME_METHOD_TSS, "me"), CONST("tdls", "two dimensional logarithmic search", AV_ME_METHOD_TDLS, "me"), CONST("ntss", "new three step search", AV_ME_METHOD_NTSS, "me"), CONST("fss", "four step search", AV_ME_METHOD_FSS, "me"), CONST("ds", "diamond search", AV_ME_METHOD_DS, "me"), CONST("hexbs", "hexagon-based search", AV_ME_METHOD_HEXBS, "me"), CONST("epzs", "enhanced predictive zonal search", AV_ME_METHOD_EPZS, "me"), CONST("umh", "uneven multi-hexagon search", AV_ME_METHOD_UMH, "me"), { "mb_size", "macroblock size", OFFSET(mb_size), AV_OPT_TYPE_INT, {.i64 = 16}, 4, 16, FLAGS }, { "search_param", "search parameter", OFFSET(search_param), AV_OPT_TYPE_INT, {.i64 = 32}, 4, INT_MAX, FLAGS }, { "vsbmc", "variable-size block motion compensation", OFFSET(vsbmc), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, FLAGS }, { "scd", "scene change detection method", OFFSET(scd_method), AV_OPT_TYPE_INT, {.i64 = SCD_METHOD_FDIFF}, SCD_METHOD_NONE, SCD_METHOD_FDIFF, FLAGS, "scene" }, CONST("none", "disable detection", SCD_METHOD_NONE, "scene"), CONST("fdiff", "frame difference", SCD_METHOD_FDIFF, "scene"), { "scd_threshold", "scene change threshold", OFFSET(scd_threshold), AV_OPT_TYPE_DOUBLE, {.dbl = 10.}, 0, 100.0, FLAGS }, { NULL } }; What that means: There is an option, "fps", which means "output's frame rate". It can (I believe) take any frame rate value describe in 7.5 "Frame Rate" (http://ffmpeg.org/ffmpeg-all.html#Video-rate), including integers, rational numbers, and 8 special names (because "AV_OPT_TYPE_VIDEO_RATE"). The default value is 60 (because '{.str = "60"}'). There is an option, "mi_mode", which means "motion interpolation mode". It can take any of the following values: "dup", meaning "duplicate frames"; "blend", meaning "blend frames"; or "mci", meaning "motion compensated interpolation". The default value is "mci" (because '{.i64 = MI_MODE_MCI}' and 'CONST("mci" … MI_MODE_MCI'). There is an option, "mc_mode", which means "motion compensation mode". Reading the code elsewhere in that file, it seems that the filter only consults this option when "mi_mode"="mci". It can take any of the following values: "obmc", meaning "overlapped block motion compensation"; or "aobmc", meaning "adaptive overlapped block motion compensation". The default value is "obmc" (because '{.i64 = MC_MODE_OBMC}' and 'CONST("obmc" … MC_MODE_OBMC'). There is an option, "me_mode", which means "motion estimation mode". Reading the code elsewhere in that file, it seems that the filter only consults this option when "mi_mode"="mci". It can take any of the following values: "bidir", meaning "bidirectional motion estimation"; or "bilat", meaing "bilateral motion estimation". The default value is "bilat" (because '{.i64 = ME_MODE_BILAT}' and 'CONST("bilat" … ME_MODE_BILAT'). There is an option, "me", meaning "motion estimation method". Reading the code elsewhere in that file, it seems that the filter only consults this option when "mi_mode"="mci". It can take any of the following values: "esa", meaning "exhaustive search"; "tss", meaning "three step search"; "tdls", meaning "two dimensional logarithmic search"; "ntss", meaning "new three step search"; "fss", meaning "four step search"; "ds", meaning "diamond search"; "hexbs", meaning "hexagon-based search"; "epzs", meaning "enhanced predictive zonal search"; or "umh", meaning "uneven multi-hexagon search". The default value is "epzs" (because '{.i64 = AV_ME_METHOD_EPZS}' and 'CONST("epzs" … AV_ME_METHOD_EPZS'). There is an option, "mb_size", meaning "macroblock size". It takes an integer value of 4-16 (because 'AV_OPT_TYPE_INT' and '4, 16'). The default value is 16 (because '{.i64 = 16}'). There is an option, "search_param", meaning "search parameter". It takes an integer value of 4 or more (because 'AV_OPT_TYPE_INT' and '4, INT_MAX'). The default value is 32 (because '{.i64 = 32}'). There is an option, "vsbmc", meaning "variable-size block motion compensation". It takes an integer value of 0 or 1 (because 'AV_OPT_TYPE_INT' and '0, 1'). The default value is 0 (because '{.i64 = 0}'). There is an option, "scd", meaning "scene change detection method". It can take either of the following values: "none", meaning "disable detection"; or "fdiff", meaning "frame difference". The default value is "fdiff" (because '{.i64 = SCD_METHOD_FDIFF}' and 'CONST("fdiff", … SCD_METHOD_FDIFF'). There is an option, "scd_threshold", meaning "scene change threshold". It takes a real-number value of 0.0-100.0 (because 'AV_OPT_TYPE_DOUBLE' and '0, 100.0'). The default value is 10.0 (because '{.dbl = 10.}'. > I will try all combinations of minterpolate to resolve all the options > and issues and return with a new beautified version of the > minterpolate documentation. Perhaps that will save people in the > future because minterpolate is an important and amazing function. I wrote out that translation of the code into English in part to help you with your documentation, and in part to help others who want to learn how to read the idioms in source code. This skill is useful for checking where the documentation is incomplete or wrong. Note that I just translated the options declaration in lines 205-235 of the source code. This describes only the names and data types of the options. To understand what FFmpeg actually does when presented with the various options, one has to read the rest of the source code. (For instance, are options 'mb_size', 'search_param', and 'vsbmc' consulted only when option 'mi_mode'='mci'? Lines 205-235 don't say.) —Jim DeLaHunt _______________________________________________ ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
In reply to this post by Mark Filipak (ffmpeg)
On Wed, Jan 27, 2021 at 6:03 AM Mark Filipak (ffmpeg) <[hidden email]>
wrote: > I ask this because I think it can only be answered by looking at the > source code. I'm not competent > to do that. > Your thinking is invalid. > > Is 'mi_mode=dup' or 'mi_mode=blend' or 'mi_mode=mci' the default? > ffmpeg -h filter=minterpolate > > > On 01/26/2021 09:49 PM, pdr0 wrote: > > Jim DeLaHunt-2 wrote > >> Perhaps the character between 'mci' and 'mc_mode' should be ':' instead > >> of '='? > > > > That works for me > > > > -vf > > > minterpolate=fps=60000/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10 > > > > Each one is a separate option and argument > > > > > https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/vf_minterpolate.c > > Thank you. It works for me, too. I don't know why it didn't work the 1st > time (except maybe because > I have so many balls in the air). > > So, unlike what is shown in the documentation, 'mc_mode' is _not_ an > argument of 'mci'. > > Apparently, 1, 'mi_mode=mci' is a valid argument and, 2, that 'mc_mode' > (and perhaps 'me_mode' & > 'me') are valid solely if mi_mode=mci but are otherwise not arguments of > 'mi_mode=mci' but are > direct options of 'minterpolate'. That kind of scope is probably what the > author intended when > he/she indented them below 'mci', but the indenting is very misleading. > > I will try all combinations of minterpolate to resolve all the options and > issues and return with a > new beautified version of the minterpolate documentation. Perhaps that > will save people in the > future because minterpolate is an important and amazing function. > > -- > Someone's sneaking in and turning up the range 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 > [hidden email] > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > [hidden email] with subject "unsubscribe". > _______________________________________________ > ffmpeg-user mailing list > [hidden email] > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > [hidden email] with subject "unsubscribe". ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
On Wednesday, 27 January 2021, 10:31:35 GMT, Paul B Mahol <[hidden email]> wrote: > ffmpeg -h filter=minterpolate Y'know, I've been using ffmpeg for a really long time, and I had no idea you could do that. P _______________________________________________ ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
In reply to this post by Paul B Mahol
On 01/27/2021 05:31 AM, Paul B Mahol wrote:
> On Wed, Jan 27, 2021 at 6:03 AM Mark Filipak (ffmpeg) <[hidden email]> > wrote: > >> I ask this because I think it can only be answered by looking at the >> source code. I'm not competent >> to do that. > > Your thinking is invalid. What part? >> Is 'mi_mode=dup' or 'mi_mode=blend' or 'mi_mode=mci' the default? > > ffmpeg -h filter=minterpolate Thank you, Paul. I didn't know I could get help on individual filters. That will save me some time. Too bad the on-line documentation is incomplete. Of course, that's just my opinion and I'm probably wrong, eh? ;-) -- Someone's sneaking in and turning up the range 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 [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
> I didn't know I could get help on individual filters.
To be completely fair, that is actually in the docs, but it's not exactly on the front page. P _______________________________________________ ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
In reply to this post by Mark Filipak (ffmpeg)
Am Mi., 27. Jan. 2021 um 02:03 Uhr schrieb Mark Filipak (ffmpeg)
<[hidden email]>: > ffmpeg -i SOURCE -map 0 -filter_complex "split[1][2], \ > [1]telecine=pattern=55, select=not(eq(mod(n\,5)\,2))[3], \ > [2]minterpolate=fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10, \ > select=eq(mod(n\,5)\,2)[4], \ > [3][4]interleave" \ > -codec:v libx265 -x265-params "crf=16:qcomp=0.60" -codec:a copy -codec:s copy TARGET Since others may read this: The command line makes little sense, you should either use telecine or minterpolate. Carl Eugen _______________________________________________ ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
On 01/27/2021 05:47 PM, Carl Eugen Hoyos wrote:
> Am Mi., 27. Jan. 2021 um 02:03 Uhr schrieb Mark Filipak (ffmpeg) > <[hidden email]>: > >> ffmpeg -i SOURCE -map 0 -filter_complex "split[1][2], \ >> [1]telecine=pattern=55, select=not(eq(mod(n\,5)\,2))[3], \ >> [2]minterpolate=fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10, \ >> select=eq(mod(n\,5)\,2)[4], \ >> [3][4]interleave" \ >> -codec:v libx265 -x265-params "crf=16:qcomp=0.60" -codec:a copy -codec:s copy TARGET > > Since others may read this: > The command line makes little sense, you should either use > telecine or minterpolate. Carl Eugen, you surprise me. I'm sure you see what I'm trying to do, so why the angst? First, let me admit that since I started this thread (following weeks of experimentation) I decided to simply try this: 'minterpolate=fps=60000/1001' to see what it would do. I was amazed. If minterpolate is Paul's work, then Paul is a f'ing genius. I've since spent a couple of days playing with minterpolate and have found that this: 'minterpolate=fps=60000/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10:vsbmc=1:search_param=20' is astounding. Nonetheless, I'd still like to generate a 60 FPS transcode that is visually equivalent (as closely as possible) to 24 pictures/second by replacing the combed frame (i.e. n%5==2) by an interpolated frame -- hence the filter graph you loathe. For that n%5==2 frame, here's what I sought (and did not find): Sobel of line y: ______/\_____________/\_________ Sobel of line y+1: __________/\_____________/\_____ Desired output: line y: ________/\_____________/\_______ line y+1: ________/\_____________/\_______ I could find this: line y: ______/\_____________/\_________ line y+1: ______/\_____________/\_________ (aligned to top line) and I could find this: line y: __________/\_____________/\_____ (aligned to bottom line) line y+1: __________/\_____________/\_____ but I could not find this: line y: ________/\_____________/\_______ (aligned to mean) line y+1: ________/\_____________/\_______ (aligned to mean) One reason I might -- MIGHT -- prefer telecine55 is that the original frames are recoverable from the transcodes -- but admittedly, that's not much of a reason, is it? Another reason is that the transcode is much, much quicker than 'minterpolate=fps=60000/1001' and somewhat smaller. There you have it, Carl Eugen. Please stop trying to make the world think I'm feeble minded. :-) Okay? Regards, Mark. -- Someone's sneaking in and turning up the range 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 [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
On Thu, Jan 28, 2021 at 7:04 AM Mark Filipak (ffmpeg) <[hidden email]>
wrote: > On 01/27/2021 05:47 PM, Carl Eugen Hoyos wrote: > > Am Mi., 27. Jan. 2021 um 02:03 Uhr schrieb Mark Filipak (ffmpeg) > > <[hidden email]>: > > > >> ffmpeg -i SOURCE -map 0 -filter_complex "split[1][2], \ > >> [1]telecine=pattern=55, select=not(eq(mod(n\,5)\,2))[3], \ > >> > [2]minterpolate=fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10, > \ > >> select=eq(mod(n\,5)\,2)[4], \ > >> [3][4]interleave" \ > >> -codec:v libx265 -x265-params "crf=16:qcomp=0.60" -codec:a copy > -codec:s copy TARGET > > > > Since others may read this: > > The command line makes little sense, you should either use > > telecine or minterpolate. > > Carl Eugen, you surprise me. I'm sure you see what I'm trying to do, so > why the angst? > > First, let me admit that since I started this thread (following weeks of > experimentation) I decided > to simply try this: 'minterpolate=fps=60000/1001' to see what it would do. > I was amazed. > > If minterpolate is Paul's work, then Paul is a f'ing genius. > > I've since spent a couple of days playing with minterpolate and have found > that this: > > 'minterpolate=fps=60000/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10:vsbmc=1:search_param=20' > is astounding. > > Nonetheless, I'd still like to generate a 60 FPS transcode that is > visually equivalent (as closely > as possible) to 24 pictures/second by replacing the combed frame (i.e. > n%5==2) by an interpolated > frame -- hence the filter graph you loathe. > > For that n%5==2 frame, here's what I sought (and did not find): > > Sobel of line y: ______/\_____________/\_________ > Sobel of line y+1: __________/\_____________/\_____ > Desired output: > line y: ________/\_____________/\_______ > line y+1: ________/\_____________/\_______ > I could find this: > line y: ______/\_____________/\_________ > line y+1: ______/\_____________/\_________ (aligned to top line) > and I could find this: > line y: __________/\_____________/\_____ (aligned to bottom > line) > line y+1: __________/\_____________/\_____ > but I could not find this: > line y: ________/\_____________/\_______ (aligned to mean) > line y+1: ________/\_____________/\_______ (aligned to mean) > > > One reason I might -- MIGHT -- prefer telecine55 is that the original > frames are recoverable from > the transcodes -- but admittedly, that's not much of a reason, is it? > Another reason is that the > transcode is much, much quicker than 'minterpolate=fps=60000/1001' and > somewhat smaller. > > There you have it, Carl Eugen. Please stop trying to make the world think > I'm feeble minded. :-) > Okay? > > Regards, > Mark. > > -- > Someone's sneaking in and turning up the range 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 > [hidden email] > https://ffmpeg.org/mailman/listinfo/ffmpeg-user > > To unsubscribe, visit link above, or email > [hidden email] with subject "unsubscribe". ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
In reply to this post by Jim DeLaHunt-2
On 01/27/2021 03:16 AM, [hidden email] wrote:
> This is the part of the minterpolate video filter which defines the options: > https://github.com/FFmpeg/FFmpeg/blob/master/libavfilter/vf_minterpolate.c#L205-L235 > > [The following looks better in a fixed-pitch font.] > > static const AVOption minterpolate_options[] = { > { "fps", "output's frame rate", OFFSET(frame_rate), AV_OPT_TYPE_VIDEO_RATE, {.str = "60"}, 0, > INT_MAX, FLAGS }, > { "mi_mode", "motion interpolation mode", OFFSET(mi_mode), AV_OPT_TYPE_INT, {.i64 = > MI_MODE_MCI}, MI_MODE_DUP, MI_MODE_MCI, FLAGS, "mi_mode" }, > CONST("dup", "duplicate frames", MI_MODE_DUP, "mi_mode"), > CONST("blend", "blend frames", MI_MODE_BLEND, "mi_mode"), > CONST("mci", "motion compensated interpolation", MI_MODE_MCI, "mi_mode"), > { "mc_mode", "motion compensation mode", OFFSET(mc_mode), AV_OPT_TYPE_INT, {.i64 = > MC_MODE_OBMC}, MC_MODE_OBMC, MC_MODE_AOBMC, FLAGS, "mc_mode" }, > CONST("obmc", "overlapped block motion compensation", MC_MODE_OBMC, "mc_mode"), > CONST("aobmc", "adaptive overlapped block motion compensation", MC_MODE_AOBMC, "mc_mode"), > { "me_mode", "motion estimation mode", OFFSET(me_mode), AV_OPT_TYPE_INT, {.i64 = > ME_MODE_BILAT}, ME_MODE_BIDIR, ME_MODE_BILAT, FLAGS, "me_mode" }, > CONST("bidir", "bidirectional motion estimation", ME_MODE_BIDIR, "me_mode"), > CONST("bilat", "bilateral motion estimation", ME_MODE_BILAT, "me_mode"), > { "me", "motion estimation method", OFFSET(me_method), AV_OPT_TYPE_INT, {.i64 = > AV_ME_METHOD_EPZS}, AV_ME_METHOD_ESA, AV_ME_METHOD_UMH, FLAGS, "me" }, > CONST("esa", "exhaustive search", AV_ME_METHOD_ESA, "me"), > CONST("tss", "three step search", AV_ME_METHOD_TSS, "me"), > CONST("tdls", "two dimensional logarithmic search", AV_ME_METHOD_TDLS, "me"), > CONST("ntss", "new three step search", AV_ME_METHOD_NTSS, "me"), > CONST("fss", "four step search", AV_ME_METHOD_FSS, "me"), > CONST("ds", "diamond search", AV_ME_METHOD_DS, "me"), > CONST("hexbs", "hexagon-based search", AV_ME_METHOD_HEXBS, "me"), > CONST("epzs", "enhanced predictive zonal search", AV_ME_METHOD_EPZS, "me"), > CONST("umh", "uneven multi-hexagon search", AV_ME_METHOD_UMH, "me"), > { "mb_size", "macroblock size", OFFSET(mb_size), AV_OPT_TYPE_INT, {.i64 = 16}, 4, 16, FLAGS }, > { "search_param", "search parameter", OFFSET(search_param), AV_OPT_TYPE_INT, {.i64 = 32}, 4, > INT_MAX, FLAGS }, > { "vsbmc", "variable-size block motion compensation", OFFSET(vsbmc), AV_OPT_TYPE_INT, {.i64 = > 0}, 0, 1, FLAGS }, > { "scd", "scene change detection method", OFFSET(scd_method), AV_OPT_TYPE_INT, {.i64 = > SCD_METHOD_FDIFF}, SCD_METHOD_NONE, SCD_METHOD_FDIFF, FLAGS, "scene" }, > CONST("none", "disable detection", SCD_METHOD_NONE, "scene"), > CONST("fdiff", "frame difference", SCD_METHOD_FDIFF, "scene"), > { "scd_threshold", "scene change threshold", OFFSET(scd_threshold), AV_OPT_TYPE_DOUBLE, {.dbl = > 10.}, 0, 100.0, FLAGS }, > { NULL } > }; > > What that means: > > There is an option, "fps", which means "output's frame rate". It can (I believe) take any frame rate > value describe in 7.5 "Frame Rate" (http://ffmpeg.org/ffmpeg-all.html#Video-rate), including > integers, rational numbers, and 8 special names (because "AV_OPT_TYPE_VIDEO_RATE"). The default > value is 60 (because '{.str = "60"}'). > > There is an option, "mi_mode", which means "motion interpolation mode". It can take any of the > following values: > "dup", meaning "duplicate frames"; "blend", meaning "blend frames"; or "mci", meaning "motion > compensated interpolation". > The default value is "mci" (because '{.i64 = MI_MODE_MCI}' and 'CONST("mci" … MI_MODE_MCI'). > > There is an option, "mc_mode", which means "motion compensation mode". Reading the code elsewhere > in that file, it seems that the filter only consults this option when "mi_mode"="mci". It can take > any of the following values: > "obmc", meaning "overlapped block motion compensation"; or "aobmc", meaning "adaptive overlapped > block motion compensation". > The default value is "obmc" (because '{.i64 = MC_MODE_OBMC}' and 'CONST("obmc" … MC_MODE_OBMC'). > > There is an option, "me_mode", which means "motion estimation mode". Reading the code elsewhere in > that file, it seems that the filter only consults this option when "mi_mode"="mci". It can take any > of the following values: > "bidir", meaning "bidirectional motion estimation"; or "bilat", meaing "bilateral motion estimation". > The default value is "bilat" (because '{.i64 = ME_MODE_BILAT}' and 'CONST("bilat" … ME_MODE_BILAT'). > > There is an option, "me", meaning "motion estimation method". Reading the code elsewhere in that > file, it seems that the filter only consults this option when "mi_mode"="mci". It can take any of > the following values: > "esa", meaning "exhaustive search"; "tss", meaning "three step search"; "tdls", meaning "two > dimensional logarithmic search"; > "ntss", meaning "new three step search"; "fss", meaning "four step search"; "ds", meaning "diamond > search"; > "hexbs", meaning "hexagon-based search"; "epzs", meaning "enhanced predictive zonal search"; or > "umh", meaning "uneven multi-hexagon search". > The default value is "epzs" (because '{.i64 = AV_ME_METHOD_EPZS}' and 'CONST("epzs" … > AV_ME_METHOD_EPZS'). > > There is an option, "mb_size", meaning "macroblock size". It takes an integer value of 4-16 (because > 'AV_OPT_TYPE_INT' and '4, 16'). The default value is 16 (because '{.i64 = 16}'). > > There is an option, "search_param", meaning "search parameter". It takes an integer value of 4 or > more (because 'AV_OPT_TYPE_INT' and '4, INT_MAX'). The default value is 32 (because '{.i64 = 32}'). > > There is an option, "vsbmc", meaning "variable-size block motion compensation". It takes an integer > value of 0 or 1 (because 'AV_OPT_TYPE_INT' and '0, 1'). The default value is 0 (because '{.i64 = 0}'). > > There is an option, "scd", meaning "scene change detection method". It can take either of the > following values: > "none", meaning "disable detection"; or "fdiff", meaning "frame difference". > The default value is "fdiff" (because '{.i64 = SCD_METHOD_FDIFF}' and 'CONST("fdiff", … > SCD_METHOD_FDIFF'). > > There is an option, "scd_threshold", meaning "scene change threshold". It takes a real-number value > of 0.0-100.0 (because 'AV_OPT_TYPE_DOUBLE' and '0, 100.0'). The default value is 10.0 (because > '{.dbl = 10.}'. > > > I wrote out that translation of the code into English in part to help you with your documentation, > and in part to help others who want to learn how to read the idioms in source code. This skill is > useful for checking where the documentation is incomplete or wrong. > > Note that I just translated the options declaration in lines 205-235 of the source code. This > describes only the names and data types of the options. To understand what FFmpeg actually does when > presented with the various options, one has to read the rest of the source code. (For instance, are > options 'mb_size', 'search_param', and 'vsbmc' consulted only when option 'mi_mode'='mci'? Lines > 205-235 don't say.) > > —Jim DeLaHunt Thank you so much, Jim. That really helps. Mark. -- Someone's sneaking in and turning up the range 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 [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
In reply to this post by FFmpeg-users mailing list
On Wed, Jan 27, 2021 at 14:16:16 +0000, Phil Rhodes via ffmpeg-user wrote:
> > I didn't know I could get help on individual filters. > To be completely fair, that is actually in the docs, but it's not exactly on the front page. Good point. It is at the very top of the output of "ffmpeg -h" though: Hyper fast Audio and Video encoder usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... Getting help: -h -- print basic options -h long -- print more options -h full -- print all options (including all format and codec specific options, very long) -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf/protocol See man ffmpeg for detailed description of the options. Or you just do "ffmpeg -h full" and go on a long search for an option. :-) Moritz _______________________________________________ ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
On 01/29/2021 04:23 AM, Moritz Barsnick wrote:
> On Wed, Jan 27, 2021 at 14:16:16 +0000, Phil Rhodes via ffmpeg-user wrote: >> > I didn't know I could get help on individual filters. >> To be completely fair, that is actually in the docs, but it's not exactly on the front page. > > Good point. > > It is at the very top of the output of "ffmpeg -h" though: > > Hyper fast Audio and Video encoder > usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}... > > Getting help: > -h -- print basic options > -h long -- print more options > -h full -- print all options (including all format and codec specific options, very long) > -h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf/protocol > See man ffmpeg for detailed description of the options. > > > Or you just do "ffmpeg -h full" and go on a long search for an option. > :-) > > Moritz "-h type=name -- print all options for the named decoder/encoder/demuxer/muxer/filter/bsf/protocol". Try 'ffmpeg -h type=filter. It fails. Why? Because "filter" is a "type", not a "name" -- never mind that the details says "... named decoder/encoder ..." "type" & "name" are actually tokens. The documentation should be something like this: Getting help: -h -- print basic options -h long -- print more options -h full -- print all options (including all format and codec specific options, very long) -h <type>=<name> -- <type> can be decoder, encoder, demuxer, muxer, filter, bsf or protocol, and <name> can be the specific name of the <type>. These are the types of things that trap those utterly stupid, lazy novices. _______________________________________________ ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
On Friday, 29 January 2021, 09:43:09 GMT, Mark Filipak (ffmpeg) <[hidden email]> wrote: > Try 'ffmpeg -h type=filter. > It fails. Why? Because "filter" is a "type", not a "name" -- never mind that the details says "... > named decoder/encoder ..." Yes, this is the sort of thing that causes the problem. Easy to fix, though, you'd have thought. P _______________________________________________ ffmpeg-user mailing list [hidden email] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [hidden email] with subject "unsubscribe". |
Free forum by Nabble | Edit this page |