[FFmpeg-user] Help with syntax using lv2 filter plugin

Paul B Mahol onemda at gmail.com
Fri May 10 22:10:07 EEST 2019


On 5/10/19, David Ing <ding at panopto.com> wrote:
> I did not have the "lv2ls" command, so I installed it like this:
>
> sudo apt-get install --yes lilv-utils
>
>
> Unfortunately when I execute "lv2ls", it shows that I have no plugins
> installed (i.e. it does not return anything).
>
> But this is where I can see the plugin files on my system:
>
> root at 22f908a93c0b:/data# *ll /usr/local/lib/lv2/sdenoise.lv2*
> total 160
> drwxr-xr-x 2 root root   4096 May  9 21:55 ./
> drwxr-xr-x 3 root root   4096 May  9 21:55 ../
> -rwxr-xr-x 1 root root    229 May  9 21:55 manifest.ttl*
> -rwxr-xr-x 1 root root 147216 May  9 21:55 sdenoise.so*
> -rwxr-xr-x 1 root root   1991 May  9 21:55 sdenoise.ttl*
>
>
> And you already know what's in that *manifest.ttl* file (from my prior
> email).
>
> I must be doing something wrong but I don't know what it is.

Your system is borked, reinstall it.

Seriously if lv2ls does not list plugins then there are not available to lv2.

If you hadn't knew there is ladspa plugins with exactly same
functionality if not better.
https://github.com/werman/noise-suppression-for-voice

>
> On Fri, May 10, 2019 at 11:06 AM Paul B Mahol <onemda at gmail.com> wrote:
>
>> On 5/10/19, David Ing <ding at panopto.com> wrote:
>> > Yes Paul, if you see earlier in this email thread, I tried to follow the
>> > documentation (https://ffmpeg.org/ffmpeg-filters.html#lv2) but it was a
>> bit
>> > vague.  It suggested (vaguely) that I should use the following command,
>> > but it failed because the colon was not escaped by the filtergraph
>> escaping
>> > layer (
>> http://ffmpeg.org/ffmpeg-filters.html#Notes-on-filtergraph-escaping):
>> >
>> > ffmpeg -i $INPUT -af lv2=plugin=https\\\\://
>> > github.com/lucianodato/speech-denoiser $OUTPUT
>> >
>> >
>> > Now my most recent attempt gets past this error:
>> >
>> > ffmpeg -i $INPUT -af 'lv2=plugin=https\\://
>> > github.com/lucianodato/speech-denoiser' $OUTPUT
>> >
>> >
>> > But now I get another error:
>> >
>> > *Plugin <https://github.com/lucianodato/speech-denoiser
>> > <https://github.com/lucianodato/speech-denoiser>> not found*
>> >
>> >
>> > From that error message, it looks like I am at least passing the correct
>> > information to ffmpeg (across the command line), but ffmpeg is somehow
>> > unable to find the relevant plugin which is installed on my machine.
>> > For
>> > any LV2 experts out there, here are the contents of my file:
>> > */usr/local/lib/lv2/sdenoise.lv2/manifest.ttl*
>> >
>> > @prefix lv2:  <http://lv2plug.in/ns/lv2core#>.
>> > @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
>> >
>> > <https://github.com/lucianodato/speech-denoiser>
>> >   a lv2:Plugin;
>> >   lv2:binary <sdenoise.so> ;
>> >   rdfs:seeAlso <sdenoise.ttl> .
>> >
>> >
>> > Does anyone know what I am doing wrong?
>> >
>>
>> Do you have lv2ls tool?
>>
>> What it lists?
>>
>> > On Fri, May 10, 2019 at 9:08 AM Paul B Mahol <onemda at gmail.com> wrote:
>> >
>> >> On 5/10/19, David Ing <ding at panopto.com> wrote:
>> >> > There was a slight copy-paste error in my last email.
>> >> >
>> >> > Here are the contents of my file:
>> >> > */usr/local/lib/lv2/sdenoise.lv2/manifest.ttl*
>> >> >
>> >> > @prefix lv2:  <http://lv2plug.in/ns/lv2core#>.
>> >> > @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
>> >> >
>> >> > <https://github.com/lucianodato/speech-denoiser>
>> >> >   a lv2:Plugin;
>> >> >   lv2:binary <sdenoise.so> ;
>> >> >   rdfs:seeAlso <sdenoise.ttl> .
>> >> >
>> >> >
>> >> > What am I doing wrong?
>> >> >
>> >> > On Fri, May 10, 2019 at 8:13 AM David Ing <ding at panopto.com> wrote:
>> >> >
>> >> >> Moritz,
>> >> >>
>> >> >> Thank you.
>> >> >>
>> >> >> Although your suggestion did not work, you gave me enough
>> >> >> information
>> >> >> to
>> >> >> find one that did.  The following works from a bash prompt.
>> >> >>
>> >> >> ffmpeg -i $INPUT -af 'lv2=plugin=https\\://
>> >> >> github.com/lucianodato/speech-denoiser' $OUTPUT
>> >> >>
>> >> >>
>> >> >> Now I have a separate problem which is:  *Plugin
>> >> >> <https://github.com/lucianodato/speech-denoiser
>> >> >> <https://github.com/lucianodato/speech-denoiser>> not found*
>> >> >>
>> >> >> root at b88297120832:/data# *ffmpeg -i $INPUT -af
>> >> >> 'lv2=plugin=https\\://github.com/lucianodato/speech-denoiser
>> >> >> <http://github.com/lucianodato/speech-denoiser>' $OUTPUT*
>> >> >> ffmpeg version 4.1.3-0ubuntu1 Copyright (c) 2000-2019 the FFmpeg
>> >> >> developers
>> >> >>   built with gcc 8 (Ubuntu 8.3.0-6ubuntu1)
>> >> >>   configuration: --prefix=/usr --extra-version=0ubuntu1
>> >> >> --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu
>> >> >> --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl
>> >> >> --disable-stripping --enable-avresample --disable-filter=resample
>> >> >> --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom
>> >> >> --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
>> >> >> --enable-libcdio --enable-libcodec2 --enable-libflite
>> >> >> --enable-libfontconfig --enable-libfreetype --enable-libfribidi
>> >> >> --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame
>> >> >> --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt
>> >> >> --enable-libopus --enable-libpulse --enable-librsvg
>> >> --enable-librubberband
>> >> >> --enable-libshine --enable-libsnappy --enable-libsoxr
>> --enable-libspeex
>> >> >> --enable-libssh --enable-libtheora --enable-libtwolame
>> >> --enable-libvidstab
>> >> >> --enable-libvorbis --enable-libvpx --enable-libwavpack
>> --enable-libwebp
>> >> >> --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq
>> >> >> --enable-libzvbi --enable-lv2 --enable-omx --enable-openal
>> >> --enable-opengl
>> >> >> --enable-sdl2 --enable-libdc1394 --enable-libdrm
>> >> >> --enable-libiec61883
>> >> >> --enable-chromaprint --enable-frei0r --enable-libx264
>> >> >> --enable-shared
>> >> >>   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
>> >> >> Guessed Channel Layout for Input Stream #0.0 : stereo
>> >> >> Input #0, wav, from '/data/sample_car.wav':
>> >> >>   Metadata:
>> >> >>     encoder         : Lavf58.12.100
>> >> >>   Duration: 00:01:05.02, bitrate: 1411 kb/s
>> >> >>     Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz,
>> >> >> stereo, s16, 1411 kb/s
>> >> >> File '/data/sample_car.sdenoise.wav' already exists. Overwrite ?
>> [y/N]
>> >> >> y
>> >> >> Stream mapping:
>> >> >>   Stream #0:0 -> #0:0 (pcm_s16le (native) -> pcm_s16le (native))
>> >> >> Press [q] to stop, [?] for help
>> >> >> [lv2 @ 0x55613f407300] *Plugin
>> >> >> <**https://github.com/lucianodato/speech-denoiser
>> >> >> <https://github.com/lucianodato/speech-denoiser>**> not found*
>> >> >> [AVFilterGraph @ 0x55613f3e7140] Error initializing filter 'lv2'
>> >> >> with
>> >> args
>> >> >> 'plugin=https\://github.com/lucianodato/speech-denoiser'
>> >> >> Error reinitializing filters!
>> >> >> Failed to inject frame into filter network: Invalid argument
>> >> >> Error while processing the decoded data for stream #0:0
>> >> >> Conversion failed!
>> >> >>
>> >> >>
>> >> >> Now I don't know anything about LADSPA or LV2, but here are the
>> >> >> contents
>> >> >> of my file:  */usr/local/lib/lv2/sdenoise.lv2/manifest.ttl*
>> >> >>
>> >> >> @prefix lv2:  <http://lv2plug.in/ns/lv2core#>.
>> >> >> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
>> >> >>
>> >> >> <https://github.com/lucianodato/speech-denoiser>
>> >> >>   a lv2:Plugin;
>> >> >>   lv2:binary <sdenoise.so> ;
>> >> >>   rdfs:seeAlso <sdenoise.ttl> .
>> >> >>
>> >> >> @prefix lv2:  <http://lv2plug.in/ns/lv2core#>.
>> >> >> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
>> >> >>
>> >> >> <https://github.com/lucianodato/speech-denoiser>
>> >> >>   a lv2:Plugin;
>> >> >>   lv2:binary <sdenoise.so> ;
>> >> >>   rdfs:seeAlso <sdenoise.ttl> .
>> >> >>
>> >> >>
>> >> >> What am I doing wrong?
>> >>
>> >> Have you read examples in lv2 documentation?
>> >>
>> >> There is ':' escaped with '\' fourth times.
>> >>
>> >> >>
>> >> >> On Fri, May 10, 2019 at 12:51 AM Moritz Barsnick <barsnick at gmx.net>
>> >> wrote:
>> >> >>
>> >> >>> On Thu, May 09, 2019 at 15:57:01 -0700, David Ing wrote:
>> >> >>> > The command I'm using is:
>> >> >>> >
>> >> >>> >     ffmpeg -i $INPUT -af lv2=plugin=https\\\\://
>> >> >>> github.com/lucianodato/speech-denoiser $OUTPUT
>> >> >>>
>> >> >>> Apparently, the quoting isn't sufficient, because:
>> >> >>>
>> >> >>> > error: attempt to map invalid URI `https'
>> >> >>> > [lv2 @ 0x561771d961c0] Invalid plugin URI <https>
>> >> >>>
>> >> >>> I.e. the ":" in the URI ist still considered a filter option
>> >> >>> separator.
>> >> >>>
>> >> >>> Could you please try:
>> >> >>> $ ffmpeg -i $INPUT -af "lv2=plugin='
>> >> >>> https://github.com/lucianodato/speech-denoiser'" $OUTPUT
>> >> >>>
>> >> >>> > I tried to follow the documentation but it was a bit vague.
>> >> >>> >     https://ffmpeg.org/ffmpeg-filters.html#lv2
>> >> >>>
>> >> >>> It's an issue with quoting, not about lv2.
>> >> >>>
>> >> >>> There are several chapters in the docs, but they might confuse you
>> >> >>> even
>> >> >>> more:
>> >> >>> http://ffmpeg.org/ffmpeg-utils.html#quoting_005fand_005fescaping
>> >> >>> http://ffmpeg.org/ffmpeg-filters.html#Notes-on-filtergraph-escaping
>> >> >>>
>> >> >>> >     https://github.com/lucianodato/speech-denoiser/issues/16
>> >> >>>
>> >> >>> Your "docker run" will introduce another level of (shell) escaping
>> >> >>> into
>> >> >>> this hell. :-(
>> >> >>>
>> >> >>> HTH,
>> >> >>> Moritz
>> >> >>> _______________________________________________
>> >> >>> ffmpeg-user mailing list
>> >> >>> ffmpeg-user at ffmpeg.org
>> >> >>> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>> >> >>>
>> >> >>> To unsubscribe, visit link above, or email
>> >> >>> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>> >> >>
>> >> >>
>> >> > _______________________________________________
>> >> > ffmpeg-user mailing list
>> >> > ffmpeg-user at ffmpeg.org
>> >> > https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>> >> >
>> >> > To unsubscribe, visit link above, or email
>> >> > ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>> >> _______________________________________________
>> >> ffmpeg-user mailing list
>> >> ffmpeg-user at ffmpeg.org
>> >> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>> >>
>> >> To unsubscribe, visit link above, or email
>> >> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>> > _______________________________________________
>> > ffmpeg-user mailing list
>> > ffmpeg-user at ffmpeg.org
>> > https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>> >
>> > To unsubscribe, visit link above, or email
>> > ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>> _______________________________________________
>> ffmpeg-user mailing list
>> ffmpeg-user at ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-user mailing list