[FFmpeg-user] Cutdetection (dynamic threshold) and Fadedetection with ffmpeg
Christoph Gerstbauer
christophgerstbauer at gmail.com
Fri Jan 23 14:39:01 CET 2015
Am 23.01.2015 um 13:57 schrieb Dave Rice:
> On Jan 23, 2015, at 5:23 AM, Christoph Gerstbauer <christophgerstbauer at gmail.com> wrote:
>
>>> The YDIF value in the signalstats filter could show this.
>>> ffprobe -f lavfi movie=DETECT_CUTS.mov,signalstats -show_entries "frame_tags=lavfi.signalstats.YDIF” -of flat
>>>
>>> Perhaps filter out lines where YDIF is higher than 10.
>> Hi, that does not work on my machine. (Win7)
>>
>> Command line output:
>>
>> C:\Users\gersti>ffprobe -f lavfi movie=C:\ffmpeg\bin\DETECT_CUTS.mov,signalstats -show_entries "frame_tags=lavfi.signalstats.YDIF” -of flat
>> ffprobe version N-64919-ga613257 Copyright (c) 2007-2014 the FFmpeg developers
>> built on Jul 23 2014 00:35:22 with gcc 4.8.3 (GCC)
>> configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libblu
>> ray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrw
>> b --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --
>> enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-decklink --enable-zlib
>> libavutil 52. 92.101 / 52. 92.101
>> libavcodec 55. 69.100 / 55. 69.100
>> libavformat 55. 48.101 / 55. 48.101
>> libavdevice 55. 13.102 / 55. 13.102
>> libavfilter 4. 11.102 / 4. 11.102
>> libswscale 2. 6.100 / 2. 6.100
>> libswresample 0. 19.100 / 0. 19.100
>> libpostproc 52. 3.100 / 52. 3.100
>> [Parsed_movie_0 @ 0000000002b41ee0] Failed to avformat_open_input 'C'
>> [lavfi @ 0000000002b34b20] Error initializing filter 'movie' with args 'C:ffmpegbinDETECT_CUTS.mov'
>> movie=C:\ffmpeg\bin\DETECT_CUTS.mov,signalstats: No such file or directory
> Is C:\ffmpeg\bin\DETECT_CUTS.mov an actual file on your machine?
Hi Dave
yes: DETECT_CUTS.mov is an actual file on my workstation.
>
> Also your build is old.
I tried it with an new version. same here:
C:\Users\gersti>ffprobenew -f lavfi
movie=C:\ffmpegneu\bin\DETECT_CUTS.mov,signalstats -show_entries
"frame_tags=lavfi.signalstats.YDIF” -of flat
ffprobe version N-69060-gcd960c8 Copyright (c) 2007-2015 the FFmpeg
developers
built on Jan 14 2015 22:13:45 with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads
--enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r
--enable-gnutls --enable-iconv --enable-libass --enable-libblu
ray --enable-libbs2b --enable-libcaca --enable-libfreetype
--enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug
--enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrw
b --enable-libopenjpeg --enable-libopus --enable-librtmp
--enable-libschroedinger --enable-libsoxr --enable-libspeex
--enable-libtheora --enable-libtwolame --enable-libvidstab
--enable-libvo-aacenc --
enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx
--enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265
--enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enab
le-zlib
libavutil 54. 16.100 / 54. 16.100
libavcodec 56. 20.100 / 56. 20.100
libavformat 56. 18.101 / 56. 18.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 7.101 / 5. 7.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
[Parsed_movie_0 @ 0000000002c6d960] Failed to avformat_open_input 'C'
[lavfi @ 0000000002c6aec0] Error initializing filter 'movie' with args
'C:ffmpegneubinDETECT_CUTS.mov'
movie=C:\ffmpegneu\bin\DETECT_CUTS.mov,signalstats: No such file or
directory
> Do you see signalstats when running 'ffmpeg -filters'?
> Dave Rice
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
ffmpeg -filters:
Filters:
T.. = Timeline support
.S. = Slice threading
..C = Commmand support
A = Audio input/output
V = Video input/output
N = Dynamic number and/or type of input/output
| = Source or sink filter
T.. adelay A->A Delay one or more audio channels.
... aecho A->A Add echoing to the audio.
... aeval A->A Filter audio signal according to a
specified expression.
T.. afade A->A Fade in/out input audio.
... aformat A->A Convert the input audio to one of the
specified formats.
... ainterleave N->A Temporally interleave audio inputs.
... allpass A->A Apply a two-pole all-pass filter.
... amerge N->A Merge two or more audio streams into a
single multi-channel stream.
... amix N->A Audio mixing.
... anull A->A Pass the source unchanged to the output.
T.. apad A->A Pad audio with silence.
... aperms A->A Set permissions for the output audio
frame.
... aphaser A->A Add a phasing effect to the audio.
... aresample A->A Resample audio data.
... aselect A->N Select audio frames to pass in output.
... asendcmd A->A Send commands to filters.
... asetnsamples A->A Set the number of samples for each
output audio frames.
... asetpts A->A Set PTS for the output audio frame.
... asetrate A->A Change the sample rate without
altering the data.
... asettb A->A Set timebase for the audio output link.
... ashowinfo A->A Show textual information for each
audio frame.
... asplit A->N Pass on the audio input to N audio
outputs.
... astats A->A Show time domain statistics about
audio frames.
... astreamsync AA->AA Copy two streams of audio data in a
configurable order.
..C atempo A->A Adjust audio tempo.
... atrim A->A Pick one continuous section from the
input, drop the rest.
... bandpass A->A Apply a two-pole Butterworth band-pass
filter.
... bandreject A->A Apply a two-pole Butterworth
band-reject filter.
... bass A->A Boost or cut lower frequencies.
... biquad A->A Apply a biquad IIR filter with the
given coefficients.
... bs2b A->A Bauer stereo-to-binaural filter.
... channelmap A->A Remap audio channels.
... channelsplit A->N Split audio into per-channel streams.
... compand A->A Compress or expand audio dynamic range.
... earwax A->A Widen the stereo image.
... ebur128 A->N EBU R128 scanner.
... equalizer A->A Apply two-pole peaking equalization
(EQ) filter.
... flanger A->A Apply a flanging effect to the audio.
... highpass A->A Apply a high-pass filter with 3dB
point frequency.
... join N->A Join multiple audio streams into
multi-channel output.
... lowpass A->A Apply a low-pass filter with 3dB point
frequency.
... pan A->A Remix channels with coefficients
(panning).
... replaygain A->A ReplayGain scanner.
... silencedetect A->A Detect silence.
... silenceremove A->A Remove silence.
... treble A->A Boost or cut upper frequencies.
T.C volume A->A Change input volume.
... volumedetect A->A Detect audio volume.
... aevalsrc |->A Generate an audio signal generated by
an expression.
... anullsrc |->A Null audio source, return empty audio
frames.
... sine |->A Generate sine wave audio signal.
... anullsink A->| Do absolutely nothing with the input
audio.
... alphaextract V->N Extract an alpha channel as a
grayscale image component.
... alphamerge VV->V Copy the luma value of the second
input into the alpha channel of the first input.
... ass V->V Render ASS subtitles onto input video
using the libass library.
T.. bbox V->V Compute bounding box for each frame.
... blackdetect V->V Detect video intervals that are
(almost) black.
... blackframe V->V Detect frames that are (almost) black.
TS. blend VV->V Blend two video frames into each other.
T.. boxblur V->V Blur the input.
T.. codecview V->V Visualize information about some codecs
T.. colorbalance V->V Adjust the color balance.
T.. colorchannelmixer V->V Adjust colors by mixing color channels.
T.. colorlevels V->V Adjust the color levels.
T.. colormatrix V->V Convert color matrix.
... copy V->V Copy the input video unchanged to the
output.
... crop V->V Crop the input video.
T.. cropdetect V->V Auto-detect crop size.
TS. curves V->V Adjust components curves.
TS. dctdnoiz V->V Denoise frames using 2D DCT.
... decimate N->V Decimate frames (post field matching
filter).
... dejudder V->V Remove judder produced by pullup.
T.. delogo V->V Remove logo from input video.
... deshake V->V Stabilize shaky video.
T.. drawbox V->V Draw a colored box on the input video.
T.. drawgrid V->V Draw a colored grid on the input video.
T.C drawtext V->V Draw text on top of video frames using
libfreetype library.
T.. edgedetect V->V Detect and draw edge.
... elbg V->V Apply posterize effect, using the ELBG
algorithm.
... extractplanes V->N Extract planes as grayscale frames.
.S. fade V->V Fade in/out input video.
... field V->V Extract a field from the input video.
... fieldmatch N->V Field matching for inverse telecine.
T.. fieldorder V->V Set the field order.
... format V->V Convert the input video to one of the
specified pixel formats.
... fps V->V Force constant framerate.
... framepack VV->V Generate a frame packed stereoscopic
video.
T.. framestep V->V Select one frame every N frames.
... frei0r V->V Apply a frei0r effect.
T.. fspp V->V Apply Fast Simple Post-processing filter.
T.. geq V->V Apply generic equation to each pixel.
T.. gradfun V->V Debands video quickly using gradients.
TS. haldclut VV->V Adjust colors using a Hald CLUT.
.S. hflip V->V Horizontally flip the input video.
T.. histeq V->V Apply global color histogram equalization.
... histogram V->V Compute and draw a histogram.
T.. hqdn3d V->V Apply a High Quality 3D Denoiser.
.S. hqx V->V Scale the input by 2, 3 or 4 using the
hq*x magnification algorithm.
T.C hue V->V Adjust the hue and saturation of the
input video.
... idet V->V Interlace detect Filter.
T.. il V->V Deinterleave or interleave fields.
... interlace V->V Convert progressive video into interlaced.
... interleave N->V Temporally interleave video inputs.
... kerndeint V->V Apply kernel deinterlacing to the input.
.S. lenscorrection V->V Rectify the image by correcting for
lens distortion.
TS. lut3d V->V Adjust colors using a 3D LUT.
T.. lut V->V Compute and apply a lookup table to
the RGB/YUV input video.
T.. lutrgb V->V Compute and apply a lookup table to
the RGB input video.
T.. lutyuv V->V Compute and apply a lookup table to
the YUV input video.
... mcdeint V->V Apply motion compensating deinterlacing.
... mergeplanes N->V Merge planes.
... mp V->V Apply a libmpcodecs filter to the
input video.
... mpdecimate V->V Remove near-duplicate frames.
T.. negate V->V Negate input video.
... noformat V->V Force libavfilter not to use any of
the specified pixel formats for the input to the next filter.
TS. noise V->V Add noise.
... null V->V Pass the source unchanged to the output.
T.C overlay VV->V Overlay a video source on top of the
input.
T.. owdenoise V->V Denoise using wavelets.
... pad V->V Pad the input video.
... perms V->V Set permissions for the output video
frame.
TS. perspective V->V Correct the perspective of video.
T.. phase V->V Phase shift fields.
... pixdesctest V->V Test pixel format definitions.
T.C pp V->V Filter video using libpostproc.
T.. pp7 V->V Apply Postprocessing 7 filter.
... psnr VV->V Calculate the PSNR between two video
streams.
... pullup V->V Pullup from field sequence to frames.
T.. qp V->V Change video quantization parameters.
T.. removelogo V->V Remove a TV logo based on a mask image.
TSC rotate V->V Rotate the input image.
T.. sab V->V Apply shape adaptive blur.
... scale V->V Scale the input video size and/or
convert the image format.
... select V->N Select video frames to pass in output.
... sendcmd V->V Send commands to filters.
... separatefields V->V Split input video frames into fields.
... setdar V->V Set the frame display aspect ratio.
... setfield V->V Force field for the output video frame.
... setpts V->V Set PTS for the output video frame.
... setsar V->V Set the pixel sample aspect ratio.
... settb V->V Set timebase for the video output link.
... showinfo V->V Show textual information for each
video frame.
... shuffleplanes V->V Shuffle video planes
.S. signalstats V->V Generate statistics from video analysis.
T.. smartblur V->V Blur the input video without impacting
the outlines.
... split V->N Pass on the input to N video outputs.
T.C spp V->V Apply a simple post processing filter.
... stereo3d V->V Convert video stereoscopic 3D view.
... subtitles V->V Render text subtitles onto input video
using the libass library.
... super2xsai V->V Scale the input by 2x using the
Super2xSaI pixel art algorithm.
... swapuv V->V Swap U and V components.
.S. tblend V->V Blend successive frames.
... telecine V->V Apply a telecine pattern.
... thumbnail V->V Select the most representative frame
in a given sequence of consecutive frames.
... tile V->V Tile several successive frames together.
... tinterlace V->V Perform temporal field interlacing.
.S. transpose V->V Transpose input video.
... trim V->V Pick one continuous section from the
input, drop the rest.
T.. unsharp V->V Sharpen or blur the input video.
T.. uspp V->V Apply Ultra Simple / Slow
Post-processing filter.
... vflip V->V Flip the input video vertically.
... vidstabdetect V->V Extract relative transformations, pass
1 of 2 for stabilization (see vidstabtransform for pass 2).
... vidstabtransform V->V Transform the frames, pass 2 of 2 for
stabilization (see vidstabdetect for pass 1).
T.. vignette V->V Make or reverse a vignette effect.
T.. w3fdif V->V Apply Martin Weston three field
deinterlace.
.S. xbr V->V Scale the input using xBR algorithm.
TS. yadif V->V Deinterlace the input image.
T.. zoompan V->V Apply Zoom & Pan effect.
... cellauto |->V Create pattern generated by an
elementary cellular automaton.
..C color |->V Provide an uniformly colored input.
... frei0r_src |->V Generate a frei0r source.
... haldclutsrc |->V Provide an identity Hald CLUT.
... life |->V Create life.
... mandelbrot |->V Render a Mandelbrot fractal.
... mptestsrc |->V Generate various test pattern.
... nullsrc |->V Null video source, return unprocessed
video frames.
... rgbtestsrc |->V Generate RGB test pattern.
... smptebars |->V Generate SMPTE color bars.
... smptehdbars |->V Generate SMPTE HD color bars.
... testsrc |->V Generate test pattern.
... nullsink V->| Do absolutely nothing with the input
video.
... avectorscope A->V Convert input audio to vectorscope
video output.
... concat N->N Concatenate audio and video streams.
... showcqt A->V Convert input audio to a CQT (Constant
Q Transform) spectrum video output.
... showspectrum A->V Convert input audio to a spectrum
video output.
... showwaves A->V Convert input audio to a video output.
... amovie |->N Read audio from a movie source.
... movie |->N Read from a movie source.
... ffbuffersink V->| Buffer video frames, and make them
available to the end of the filter graph.
... ffabuffersink A->| Buffer audio frames, and make them
available to the end of the filter graph.
... abuffer |->A Buffer audio frames, and make them
accessible to the filterchain.
... buffer |->V Buffer video frames, and make them
accessible to the filterchain.
... abuffersink A->| Buffer audio frames, and make them
available to the end of the filter graph.
... buffersink V->| Buffer video frames, and make them
available to the end of the filter graph.
... afifo A->A Buffer input frames and send them when
they are requested.
... fifo V->V Buffer input images and send them when
they are requested.
best regards
Chris
More information about the ffmpeg-user
mailing list