[FFmpeg-user] differences between -vf and -filter_complex

Dave Rice dave at dericed.com
Wed May 10 17:47:36 EEST 2017


Hi ffmpeg-user,

In some cases I've been using -vf and -filter_complex interchangeability but notice that some behavior is unexpectedly different.

For instance if I use format=yuv422p10le within -vf and within -filter_complex the output is different. Is there something else I should add to the filterchain to get consistent results.

Below is the output of:
ffmpeg -f lavfi -i testsrc2=r=1:d=5             -vf format=yuv422p10le -f framemd5 -
and
ffmpeg -f lavfi -i testsrc2=r=1:d=5 -filter_complex format=yuv422p10le -f framemd5 -

The output framemd5 do not match and there is not minor differences in the pixel values. Is this expected? Any recommendations to get the same result when using format=yuv422p10le in both -vf and -filter_complex? Which output is correct?

ffmpeg -f lavfi -i testsrc2=r=1:d=5 -vf format=yuv422p10le -f framemd5 -
ffmpeg version N-47211-g164e277326 Copyright (c) 2000-2017 the FFmpeg developers
  built with Apple LLVM version 8.1.0 (clang-802.0.38)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-164e277 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtesseract --enable-libvpx --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
  libavutil      55. 62.100 / 55. 62.100
  libavcodec     57. 95.100 / 57. 95.100
  libavformat    57. 72.101 / 57. 72.101
  libavdevice    57.  7.100 / 57.  7.100
  libavfilter     6. 88.100 /  6. 88.100
  libavresample   3.  6.  0 /  3.  6.  0
  libswscale      4.  7.101 /  4.  7.101
  libswresample   2.  8.100 /  2.  8.100
  libpostproc    54.  6.100 / 54.  6.100
[opencl @ 0x10fe94d68] Same kernel code has been registered
    Last message repeated 1 times
Input #0, lavfi, from 'testsrc2=r=1:d=5':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 1 fps, 1 tbr, 1 tbn, 1 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> rawvideo (native))
Press [q] to stop, [?] for help
#format: frame checksums
#version: 2
#hash: MD5
#software: Lavf57.72.101
#tb 0: 1/1
#media_type 0: video
#codec_id 0: rawvideo
#dimensions 0: 320x240
#sar 0: 1/1
#stream#, dts,        pts, duration,     size, hash
Output #0, framemd5, to 'pipe:':
  Metadata:
    encoder         : Lavf57.72.101
    Stream #0:0: Video: rawvideo (Y3[10][10] / 0xA0A3359), yuv422p10le, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 1536 kb/s, 1 fps, 1 tbn, 1 tbc
    Metadata:
      encoder         : Lavc57.95.100 rawvideo
0,          0,          0,        1,   307200, b8ef3d6c4fc96d70fafbf20afd8f9cdf
0,          1,          1,        1,   307200, dada36d572dfe9b75b799b207e54590b
0,          2,          2,        1,   307200, f6b2bd8a2cafbe7261bd97cd41930ad3
0,          3,          3,        1,   307200, 5efbf76a4e8af59271de6a3e8cfb63f4
0,          4,          4,        1,   307200, f2289ce67d1f24230cee1219dc2557a5
frame=    5 fps=0.0 q=-0.0 Lsize=       1kB time=00:00:05.00 bitrate=   1.0kbits/s speed= 754x    
video:1500kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown


ffmpeg -f lavfi -i testsrc2=r=1:d=5 -filter_complex format=yuv422p10le -f framemd5 -
ffmpeg version N-47211-g164e277326 Copyright (c) 2000-2017 the FFmpeg developers
  built with Apple LLVM version 8.1.0 (clang-802.0.38)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD-164e277 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtesseract --enable-libvpx --enable-libx264 --enable-libxvid --enable-opencl --disable-lzma --enable-vda
  libavutil      55. 62.100 / 55. 62.100
  libavcodec     57. 95.100 / 57. 95.100
  libavformat    57. 72.101 / 57. 72.101
  libavdevice    57.  7.100 / 57.  7.100
  libavfilter     6. 88.100 /  6. 88.100
  libavresample   3.  6.  0 /  3.  6.  0
  libswscale      4.  7.101 /  4.  7.101
  libswresample   2.  8.100 /  2.  8.100
  libpostproc    54.  6.100 / 54.  6.100
[opencl @ 0x1026d6d68] Same kernel code has been registered
    Last message repeated 1 times
Input #0, lavfi, from 'testsrc2=r=1:d=5':
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 1 fps, 1 tbr, 1 tbn, 1 tbc
Stream mapping:
  Stream #0:0 (rawvideo) -> format
  format -> Stream #0:0 (rawvideo)
Press [q] to stop, [?] for help
#format: frame checksums
#version: 2
#hash: MD5
#software: Lavf57.72.101
#tb 0: 1/1
#media_type 0: video
#codec_id 0: rawvideo
#dimensions 0: 320x240
#sar 0: 1/1
#stream#, dts,        pts, duration,     size, hash
Output #0, framemd5, to 'pipe:':
  Metadata:
    encoder         : Lavf57.72.101
    Stream #0:0: Video: rawvideo (Y3[10][10] / 0xA0A3359), yuv422p10le, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 1536 kb/s, 1 fps, 1 tbn, 1 tbc
    Metadata:
      encoder         : Lavc57.95.100 rawvideo
0,          0,          0,        1,   307200, e7fa6a19f1f6cc2a146b099cf0f7d9a5
0,          1,          1,        1,   307200, 1191d0f7b6341fa98b1e6e2feac0608a
0,          2,          2,        1,   307200, 5acfb73352874db79a82064515069b79
0,          3,          3,        1,   307200, 73e8573563a04c2d652905dd8a4654a0
0,          4,          4,        1,   307200, ec3a90bdf9325ca721df12edc08d3403
frame=    5 fps=0.0 q=-0.0 Lsize=       1kB time=00:00:05.00 bitrate=   1.0kbits/s speed= 771x    
video:1500kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Best Regards,
Dave Rice


More information about the ffmpeg-user mailing list