Resolving -filter_complex overlay / -vf yadif conflicts in subprocess call Python script

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Resolving -filter_complex overlay / -vf yadif conflicts in subprocess call Python script

FFmpeg-users mailing list
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.

Joanna White

_______________________________________________
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".
Reply | Threaded
Open this post in threaded view
|

Re: Resolving -filter_complex overlay / -vf yadif conflicts in subprocess call Python script

Kieran O Leary
Hi

On Wed, 11 Sep 2019, 12:27 digitensions via ffmpeg-user, <
[hidden email]> 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
_______________________________________________
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".
Reply | Threaded
Open this post in threaded view
|

Re: Resolving -filter_complex overlay / -vf yadif conflicts in subprocess call Python script

Gyan
In reply to this post by FFmpeg-users mailing list


On 11-09-2019 04:48 PM, digitensions via ffmpeg-user 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 deinterlacing should be performed before overlay within the same
filtergraph, so

     ffmpeg -i input_file -i watermark.png -filter_complex "[0]yadif=0:-1:1[v];[v][1]overlay"
            -c:v libx264 -pix_fmt yuv420p -c:a aac
            -metadata copyright=“blah” -metadata comment=“contact blah” -report output_file


The yadif filter will only deinterlace if the frame is marked as interlaced.


Gyan

_______________________________________________
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".
Reply | Threaded
Open this post in threaded view
|

Re: Resolving -filter_complex overlay / -vf yadif conflicts in subprocess call Python script

Moritz Barsnick
In reply to this post by FFmpeg-users mailing list
Hi Joanna,

On Wed, Sep 11, 2019 at 12:18:57 +0100, digitensions via ffmpeg-user wrote:
> 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.

Thanks, welcome here.

> 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

What's the intent? To first do an overlay, then to deinterlace? You
need to specify your intent correctly (to yourself and use ;-)) first,
before designing your command (and for helping us assist you with it).

Assuming your watermark.png isn't interlaced, you probably want to
deinterlace the input_file first, then overlay a watermark, correct?

> For reference, the script is here: https://github.com/digitensions/MACEscripts/blob/master/main.py

Probably not necessary, you actually provided all the relevant
information. ("Media Archive for Central England" sounds important.
;-))

> 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.

This message is pretty clear. You need to use one or the other, and
combine your filters to so-called chains. There's some explanation
here:

https://ffmpeg.org/ffmpeg-filters.html#Filtergraph-syntax-1

but probably even better in ffmpeg's wiki.

Anyway, I suggest the following:

$ ffmpeg -i input_file -i watermark.png -filter_complex "[0:v]yadif[deint]; [deint][1:v]overlay[out]" -map "[out]" -map 0:a [...]
(untested)

Note how the input can be named, as well as the outputs of each chain.
My syntax here is two separate "chains" (with only one filter each),
which are assembled with "[]" inputs and outputs, and separated by ";".
Within each filter chain, you can connect one filter's output with the
next filter's input with a ",", e.g.

  -filter_complex "[0:v]yadif,scale=w=iw/2:h=-2[out]"

or

  -vf "yadif,scale=w=iw/2:h=-2"

(Just as a syntax example, not for your use case.)

> combining yadif with the -filter_complex and had no success

It's often helpful to also point out what else you tried and what the
result was (and what you were expecting), but my hints should help you
forward.

> 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.

That's a different topic, deinterlacing conditionally.

Cheers,
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".
Reply | Threaded
Open this post in threaded view
|

Re: Resolving -filter_complex overlay / -vf yadif conflicts in subprocess call Python script

FFmpeg-users mailing list
In reply to this post by Gyan
Gyan, Moritz, Kieran,

Thank you so much for the answers. The script is designed to take a mezzanine file of ProRes or H264 mov origin and allow trimming, deinterlacing (of just the mov, not the watermark), overlay of watermark png, and make copyright metadata additions for supply to clients as viewing copies for computer review etc.  Our archives have progressive and interlaced (upper and lower) mezzanine files reserved for supply to production houses etc, which aren’t appropriate to issue as viewing copies. Instead of keeping two sets of mezzanine files per digitised file - viewing and production supply - we’re looking to generate a script so that anyone can produce an mp4 on demand from one higher level mezzanine.

Gyan, I am pleased to read yadif only works if interlacing is sensed. I see it has an auto mode, but will it differentiate between upper and lower if sensed also? The "[0]yadif=0:-1:1[v];[v][1]overlay” suggestion seems to have worked. I was having issues with the ‘ and “ options, but it functions perfectly this way:

'-filter_complex', "[0]yadif=0:-1:1[v];[v][1]overlay”,

I need to test this more broadly when I get some more video samples, or generate some with FFmpeg.

Thanks Moritz for the reminder that I must take better notice of the failed approaches I’ve tried already. I always rush through things without doing this. I’ll make sure my next FFmpeg-user submission is better prepared :)

Awesome help, thank you!

Joanna



> On 11 Sep 2019, at 12:59, Gyan <[hidden email]> wrote:
>
>
>
> On 11-09-2019 04:48 PM, digitensions via ffmpeg-user 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 deinterlacing should be performed before overlay within the same filtergraph, so
>
>    ffmpeg -i input_file -i watermark.png -filter_complex "[0]yadif=0:-1:1[v];[v][1]overlay"
>           -c:v libx264 -pix_fmt yuv420p -c:a aac
>           -metadata copyright=“blah” -metadata comment=“contact blah” -report output_file
>
>
> The yadif filter will only deinterlace if the frame is marked as interlaced.
>
>
> Gyan
>
> _______________________________________________
> 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".
Reply | Threaded
Open this post in threaded view
|

Re: Resolving -filter_complex overlay / -vf yadif conflicts in subprocess call Python script

Gyan


On 11-09-2019 06:52 PM, digitensions via ffmpeg-user wrote:
> Gyan, I am pleased to read yadif only works if interlacing is sensed. I see it has an auto mode, but will it differentiate between upper and lower if sensed also? The "[0]yadif=0:-1:1[v];[v][1]overlay” suggestion seems to have worked. I was having issues with the ‘ and “ options, but it functions perfectly this way:

In my answer, it is set to auto-detect parity. Manual parity can be
forced by changing the 2nd arg, so

     yadif=0:0:1  for top-field first.
     yadif=0:1:1  for bottom-field first.


Gyan

_______________________________________________
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".
Reply | Threaded
Open this post in threaded view
|

Re: Resolving -filter_complex overlay / -vf yadif conflicts in subprocess call Python script

Reto Kromer-2
In reply to this post by FFmpeg-users mailing list
digitensions via ffmpeg-user wrote:

>I was having issues with the ‘ and “ options,

In any case, do not use the typographically correct punctuation,
but do use ' and ".

Best regards, Reto

_______________________________________________
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".
Reply | Threaded
Open this post in threaded view
|

Re: Resolving -filter_complex overlay / -vf yadif conflicts in subprocess call Python script

Carl Eugen Hoyos-2
In reply to this post by Gyan
Am Mi., 11. Sept. 2019 um 14:08 Uhr schrieb Gyan <[hidden email]>:

>      ffmpeg -i input_file -i watermark.png -filter_complex "[0]yadif=0:-1:1[v];[v][1]overlay"
>             -c:v libx264 -pix_fmt yuv420p -c:a aac
>             -metadata copyright=“blah” -metadata comment=“contact blah” -report output_file
>
>
> The yadif filter will only deinterlace if the frame is marked as interlaced.

The metadata that marks frames as interlaced is typically wrong:
It will mark progressive frames as interlaced and the de-interlacer
will permanently damage the frames.

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".
Reply | Threaded
Open this post in threaded view
|

Re: Resolving -filter_complex overlay / -vf yadif conflicts in subprocess call Python script

FFmpeg-users mailing list
Thank you Carl. Point taken. I will investigate making it optional, then we just have the operators knowledge to rely on… Many thanks too Reto.

Joanna


> On 11 Sep 2019, at 21:37, Carl Eugen Hoyos <[hidden email]> wrote:
>
> Am Mi., 11. Sept. 2019 um 14:08 Uhr schrieb Gyan <[hidden email]>:
>
>>     ffmpeg -i input_file -i watermark.png -filter_complex "[0]yadif=0:-1:1[v];[v][1]overlay"
>>            -c:v libx264 -pix_fmt yuv420p -c:a aac
>>            -metadata copyright=“blah” -metadata comment=“contact blah” -report output_file
>>
>>
>> The yadif filter will only deinterlace if the frame is marked as interlaced.
>
> The metadata that marks frames as interlaced is typically wrong:
> It will mark progressive frames as interlaced and the de-interlacer
> will permanently damage the frames.
>
> 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".

_______________________________________________
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".