[FFmpeg-user] discrepancies in filterchains with yuvj material

Paul B Mahol onemda at gmail.com
Thu Sep 25 19:12:38 CEST 2014


On 9/25/14, Dave Rice <dave at dericed.com> wrote:
> Hi all,
>
> This issue arose on the github issue tracker for QCTools
> https://github.com/bavc/qctools/issues/36 (which is a GUI to utilize
> ffmpeg's signalstats filter as well as apply certain filterchain's in video
> playback to facilitate video analysis). Downloads here:
> http://bavc.org/qctools
>
> Matthias supplied a yuvj420p h264 at
> https://www.dropbox.com/s/gxv9ycr1lbmh0wu/70D_lumarange.mov?dl=0 and some
> filters express the video in a range of 0-255 while others express it in a
> range of ~16-235.
>
> To find the maximum Y value I can run it through signaltstats to get that
> value:
>
> ffprobe -f lavfi movie=70D_lumarange.mov,signalstats -show_entries
> frame_tags=lavfi.signalstats.YMAX
> ffprobe version 2.3.3 Copyright (c) 2007-2014 the FFmpeg developers
>   built on Sep 22 2014 21:58:44 with Apple LLVM version 6.0 (clang-600.0.51)
> (based on LLVM 3.5svn)
>   configuration: --prefix=/usr/local/Cellar/ffmpeg/2.3.3 --enable-shared
> --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree
> --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang
> --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac
> --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-ffplay
> --enable-libopenjpeg --disable-decoder=jpeg2000
> --extra-cflags='-I/usr/local/Cellar/openjpeg/1.5.1_1/include/openjpeg-1.5 '
>   libavutil      52. 92.100 / 52. 92.100
>   libavcodec     55. 69.100 / 55. 69.100
>   libavformat    55. 48.100 / 55. 48.100
>   libavdevice    55. 13.102 / 55. 13.102
>   libavfilter     4. 11.100 /  4. 11.100
>   libavresample   1.  3.  0 /  1.  3.  0
>   libswscale      2.  6.100 /  2.  6.100
>   libswresample   0. 19.100 /  0. 19.100
>   libpostproc    52.  3.100 / 52.  3.100
> [swscaler @ 0x7fa4b2004a00] deprecated pixel format used, make sure you did
> set range correctly
> Input #0, lavfi, from 'movie=70D_lumarange.mov,signalstats':
>   Duration: N/A, start: 0.000000, bitrate: N/A
>     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1280x720 [SAR
> 1:1 DAR 16:9], 50 fps, 50 tbr, 50k tbn, 50k tbc
> [FRAME]
> TAG:lavfi.signalstats.YMAX=235
> [/FRAME]
> [...]
>
> But if I run the video through the histogram filter such as:
>
> ffplay 70D_lumarange.mov -vf
> "histogram=mode=waveform:waveform_mode=column:waveform_mirror=1,crop=iw:256:0:0"
>
> then the output video shows values plotted for the entire 0-255 range
> implying that YMAX the greater y value per frame) should actually equal 255.
> Obviously one filter is incorrect or there is distinct extra processing that
> affects yuvj material between these two commands that I would like to
> change.

signalstats filter does not support yuvJ formats but histogram filter
in waveform mode does.
>
> I've tried playing with -color_range before and after the input to no
> affect,  but I am trying to figure out what the actual maximum Y value is
> for the sample file and then how to get each filter (signalstats and
> histogram) to show that result consistently.
>
> Thanks much,
> Dave Rice
>
>
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>


More information about the ffmpeg-user mailing list