Lowpass ffmpeg filter

Hi there,

I’ve been trying to apply a lowpass filter to a video because after transforming the layer into a smaller size the video shows a lot of moire and line artifacts (it looks fine at full screen).

I’m using 2.3.3 so the command would be something like this:
I tried with and without the ‘=1’

PLAY 1-5 "900 VIS NIEVE" MIX 4 Linear RIGHT LOOP vf lowpass=1
But Caspar complains, I don’t know if it is because it thinks lowpass is an audio filter only?

> 
> [2023-02-28 12:38:15.863] [error]   [ffmpeg] [Parsed_lowpass_0 @ 00000159E1098980] Media type mismatch between the 'Parsed_lowpass_0' filter output pad 0 (audio) and the 'Parsed_bwdif_1' filter input pad 0 (video)
> [2023-02-28 12:38:15.863] [error]
> [2023-02-28 12:38:15.863] [error]   [ffmpeg] [AVFilterGraph @ 00000159FE866A40] Cannot create the link lowpass:0 -> bwdif:0
> [2023-02-28 12:38:15.863] [error]
> [2023-02-28 12:38:15.865] [error]   Exception: C:\Program Files (x86)\Jenkins\workspace\casparcg-server-dep\master\src\modules\ffmpeg\producer\av_producer.cpp(274): Throw in function auto __cdecl caspar::ffmpeg::Filter::{ctor}::<lambda_d79b8799ceb78889645191682b959f2b>::operator ()(void) const
> [2023-02-28 12:38:15.865] [error]   Dynamic exception type: class boost::exception_detail::clone_impl<struct caspar::ffmpeg::ffmpeg_error_t>
> [2023-02-28 12:38:15.865] [error]   [struct boost::errinfo_api_function_ * __ptr64] = avfilter_graph_parse2(graph2, filter_spec.c_str(), &inputs, &outputs)
> [2023-02-28 12:38:15.865] [error]   [struct boost::errinfo_errno_ * __ptr64] = 22, "Invalid argument"
> [2023-02-28 12:38:15.865] [error]   [struct caspar::ffmpeg::tag_ffmpeg_errn_info * __ptr64] = -22
> [2023-02-28 12:38:15.865] [error]   [struct caspar::tag_stacktrace_info * __ptr64] =  0# 0x00007FF6E86BA37E in casparcg
> [2023-02-28 12:38:15.865] [error]    1# 0x00007FF6E86E9690 in casparcg
> [2023-02-28 12:38:15.865] [error]    2# 0x00007FF6E88EC37B in casparcg
> [2023-02-28 12:38:15.865] [error]    3# 0x00007FF6E88F6327 in casparcg
> [2023-02-28 12:38:15.865] [error]    4# 0x00007FF6E88F70C0 in casparcg
> [2023-02-28 12:38:15.865] [error]    5# 0x00007FF6E88F0825 in casparcg
> [2023-02-28 12:38:15.865] [error]    6# 0x00007FF6E8A838E3 in casparcg
> [2023-02-28 12:38:15.865] [error]    7# configthreadlocale in ucrtbase
> [2023-02-28 12:38:15.865] [error]    8# BaseThreadInitThunk in KERNEL32
> [2023-02-28 12:38:15.865] [error]    9# RtlUserThreadStart in ntdll
> [2023-02-28 12:38:15.865] [error]
> [2023-02-28 12:38:15.865] [error]
> [2023-02-28 12:38:15.865] [error]    0# 0x00007FF6E86BA37E in casparcg
> [2023-02-28 12:38:15.865] [error]    1# 0x00007FF6E86B9CAF in casparcg
> [2023-02-28 12:38:15.865] [error]    2# 0x00007FF6E8C38ED7 in casparcg
> [2023-02-28 12:38:15.865] [error]    3# 0x00007FFD5FF01030 in VCRUNTIME140
> [2023-02-28 12:38:15.865] [error]    4# is_exception_typeof in VCRUNTIME140
> [2023-02-28 12:38:15.865] [error]    5# RtlCaptureContext2 in ntdll
> [2023-02-28 12:38:15.865] [error]    6# 0x00007FF6E88F0825 in casparcg
> [2023-02-28 12:38:15.865] [error]    7# 0x00007FF6E8A838E3 in casparcg
> [2023-02-28 12:38:15.865] [error]    8# configthreadlocale in ucrtbase
> [2023-02-28 12:38:15.865] [error]    9# BaseThreadInitThunk in KERNEL32
> [2023-02-28 12:38:15.865] [error]   10# RtlUserThreadStart in ntdll
> [2023-02-28 12:38:15.865] [error]

I also tried to apply the yadif filter and this one didn’t throw any errors but it probably doesn’t help my specific issue.

PLAY 1-10 "900 VIS NIEVE" MIX 8 Linear RIGHT LOOP vf yadif=1

Is it possible that ‘lowpass’ is not working/implemented in this version of ffmpeg? Or am I doing something else wrong?
Thanks!

According to this it indeed seems to be an audio filter. Try a blur filter instead. Maybe that works.

1 Like

Ok I found what my problem was: lowpass was a parameter inside the “interlace” filter, not a filter by itself.

Ultimately you were right, the boxblur filter managed to get rid of most of the moire, other blurs were not as effective, and the interlace/deinterlace filters didn’t work either.

Thanks!