[FFmpeg-user] Resolving -filter_complex overlay / -vf yadif conflicts in subprocess call Python script

Kieran O Leary kieran.o.leary at gmail.com
Wed Sep 11 14:39:58 EEST 2019


Hi

On Wed, 11 Sep 2019, 12:27 digitensions via ffmpeg-user, <
ffmpeg-user at ffmpeg.org> wrote:

> Hello!
>
> Thanks for admitting me to FFmpeg-user, and thanks to all those who
> maintain this list. The information I’ve been receiving since joining is
> outstanding.
>
> This is a bit of a basic question I fear, but searching online hasn’t
> helped.  I am just co-writing a Python script which uses subprocess calls
> to run an FFmpeg command. I’ve been try to combine a watermark overlay with
> a command that uses yadif.  As a command it would run like so:
>
> ffmpeg -i input_file -i watermark.png -filter_complex overlay -c:v libx263
> -pix_fmt yuv420p -vf yadif -metadata copyright=“blah” -metadata
> comment=“contact blah” -c:a aaa -report output_file


> For reference, the script is here:
> https://github.com/digitensions/MACEscripts/blob/master/main.py
>
> My error message:
> ffmpeg started on 2019-09-11 at 11:12:45
> Report written to "ffmpeg-20190911-111245.log"
> ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
>   built with Apple LLVM version 9.0.0 (clang-900.0.39.2)
>   configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.3_1 --enable-shared
> --enable-pthreads --enable-version3 --enable-hardcoded-tables
> --enable-avresample --cc=clang
> --host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include
> -I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include/darwin'
> --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl
> --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus
> --enable-librubberband --enable-libsnappy --enable-libtesseract
> --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264
> --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig
> --enable-libfreetype --enable-frei0r --enable-libass
> --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
> --enable-librtmp --enable-libspeex --enable-videotoolbox --disable-libjack
> --disable-indev=jack --enable-libaom --enable-libsoxr
>   libavutil      56. 22.100 / 56. 22.100
>   libavcodec     58. 35.100 / 58. 35.100
>   libavformat    58. 20.100 / 58. 20.100
>   libavdevice    58.  5.100 / 58.  5.100
>   libavfilter     7. 40.101 /  7. 40.101
>   libavresample   4.  0.  0 /  4.  0.  0
>   libswscale      5.  3.100 /  5.  3.100
>   libswresample   3.  3.100 /  3.  3.100
>   libpostproc    55.  3.100 / 55.  3.100
> Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
> '/Users/Joanna/Desktop/new(ScriptTest)/[Chimney].mov':
>   Metadata:
>     major_brand     : qt
>     minor_version   : 512
>     compatible_brands: qt
>     encoder         : Lavf58.20.100
>   Duration: 00:00:26.32, start: 0.000000, bitrate: 163608 kb/s
>     Stream #0:0(eng): Video: prores (apch / 0x68637061), yuv422p10le(tv,
> bt709, progressive), 1920x1080, 162452 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25
> tbr, 12800 tbn, 12800 tbc (default)
>     Metadata:
>       handler_name    : VideoHandler
>       encoder         : Lavc58.35.100 prores_ks
>       timecode        : 01:00:00:00
>     Stream #0:1(eng): Audio: pcm_s24le (in24 / 0x34326E69), 48000 Hz,
> mono, s32 (24 bit), 1152 kb/s (default)
>     Metadata:
>       handler_name    : SoundHandler
>     Stream #0:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s
>     Metadata:
>       handler_name    : TimeCodeHandler
>       timecode        : 01:00:00:00
> Input #1, png_pipe, from
> '/Users/Joanna/Desktop/new(ScriptTest)/bitc/venv/watermarks/FHD.png':
>   Duration: N/A, bitrate: N/A
>     Stream #1:0: Video: png, rgba(pc), 1920x1080 [SAR 2835:2835 DAR 16:9],
> 25 tbr, 25 tbn, 25 tbc
> Filtergraph 'yadif' was specified through the -vf/-af/-filter option for
> output stream 0:0, which is fed from a complex filtergraph.
> -vf/-af/-filter and -filter_complex cannot be used together for the same
> stream.
> (venv) Joanna:venv Joanna$
>
> I’m aware my source is progressive, my only available test file at
> present. I tried a few options combining yadif with the -filter_complex and
> had no success, but I wonder if those more knowledgeable would have an
> effective work around, or could point me to one?
>
> The alternative is to write an if statement that checks for interlacing
> and activates the yadif call separately, which I’m happy to attempt if
> needed.
>
> Any advice gratefully received.
>

You can chain multiple filters with commas, so -filter_complex
overlay,yadif should work?

Best,

Kieran O'Leary


More information about the ffmpeg-user mailing list