savonet / liquidsoap

Liquidsoap is a statically typed scripting general-purpose language with dedicated operators and backend for all thing media, streaming, file generation, automation, HTTP backend and more.
http://liquidsoap.info
GNU General Public License v2.0
1.4k stars 130 forks source link

Problem to start after install - Fatal error: exception Failure("Invalid option type!") Raised by primitive operation at Avutil.Options.opts.f in file "avutil/avutil.ml" #2392

Closed caf2022 closed 2 years ago

caf2022 commented 2 years ago

Hi, I'm having problem on a server after install the LS 2.0.4-1 but only on this server, I have others server running same configuration, OS, etc thats work fine.

When I try to start the LS, I get this error:

# liquidsoap --version
Fatal error: exception Failure("Invalid option type!")
Raised by primitive operation at Avutil.Options.opts.f in file "avutil/avutil.ml", line 579, characters 12-33
Called from Builtins_ffmpeg_filters.mk_options in file "lang/builtins_ffmpeg_filters.ml", line 324, characters 45-74
Called from Builtins_ffmpeg_filters.(fun) in file "lang/builtins_ffmpeg_filters.ml", line 453, characters 32-49
Called from Stdlib__List.iter in file "list.ml", line 110, characters 12-15
Called from Builtins_ffmpeg_filters in file "lang/builtins_ffmpeg_filters.ml", line 451, characters 4-1023

I don't know if the problem is the ffmpeg, but it's have the latest version compiled from ffmpeg git.

toots commented 2 years ago

I know about this issue. Are you using a git version of ffmpeg?

caf2022 commented 2 years ago

Yes.

git clone https://git.ffmpeg.org/ffmpeg.git
cd ffmpeg

./configure --enable-nonfree --enable-openssl --disable-yasm --enable-libmp3lame --enable-libx264 --enable-pic --enable-pic --enable-gpl --enable-shared --enable-decoder=aac --enable-filter=aformat --enable-filter=volume --enable-filter=aresample && make && make install

ldconfig
toots commented 2 years ago

That's what causing the issue. Recent git version of ffmpeg have a new audio channel API that confuses the binding code. I'd suggest to stick with the latest released version at the moment.

toots commented 2 years ago

I'll be looking at a fix shortly tho!

caf2022 commented 2 years ago

OK I will try to install the same version that I have on other server that the LS is running fine now.

toots commented 2 years ago

You can do:

git checkout n5.0.1

And then proceed as before.

caf2022 commented 2 years ago

OK trying it now

caf2022 commented 2 years ago

Is it correct?

git clone https://git.ffmpeg.org/ffmpeg.git
cd ffmpeg

git checkout n5.0.1

./configure --enable-nonfree --enable-openssl --disable-yasm --enable-libmp3lame --enable-libx264 --enable-pic --enable-pic --enable-gpl --enable-shared --enable-decoder=aac --enable-filter=aformat --enable-filter=volume --enable-filter=aresample && make && make install

ldconfig
toots commented 2 years ago

Should be!

caf2022 commented 2 years ago

The error continue.

# ffmpeg
ffmpeg version n5.0.1 Copyright (c) 2000-2022 the FFmpeg developers

∗ installed ocamlfind.1.9.3
∗ installed base-bytes.base
∗ installed ocamlbuild.0.14.1
∗ installed uchar.0.0.2
∗ installed topkg.1.0.5
∗ installed xmlm.1.4.0
∗ installed dune.3.1.1
∗ installed csexp.1.5.1
∗ installed cry.0.6.7
∗ installed dtools.0.4.4
∗ installed menhirLib.20211128
∗ installed menhirSdk.20211128
∗ installed ppx_derivers.1.2.1
∗ installed dune-configurator.3.1.1
∗ installed ocaml-compiler-libs.v0.12.4
∗ installed sexplib0.v0.15.0
∗ installed faad.0.5.0
∗ installed fdkaac.0.3.2
∗ installed frei0r.0.1.2
∗ installed ffmpeg-avutil.1.1.3
∗ installed gen.1.0
∗ installed ladspa.0.2.2
∗ installed ffmpeg-avfilter.1.1.3
∗ installed ffmpeg-avcodec.1.1.3
∗ installed ffmpeg-swscale.1.1.3
∗ installed lame.0.3.6
∗ installed ffmpeg-av.1.1.3
∗ installed camomile.1.0.2
∗ installed mad.0.5.2
∗ installed ffmpeg-avdevice.1.1.3
∗ installed ffmpeg-swresample.1.1.3
∗ installed ogg.0.7.1
∗ installed samplerate.0.1.6
∗ installed pcre.7.5.0
∗ installed ffmpeg.1.1.3
∗ installed duppy.0.9.2
∗ installed opus.0.2.1
∗ installed flac.0.3.0
∗ installed stdlib-shims.0.3.0
∗ installed speex.0.4.1
∗ installed theora.0.4.0
∗ installed vorbis.0.8.0
∗ installed ocurl.0.9.2
∗ installed menhir.20211128
∗ installed xmlplaylist.0.1.5
∗ installed taglib.0.3.9
∗ installed mm.0.8.0
∗ installed ppxlib.0.26.0
∗ installed sedlex.2.6
∗ installed liquidsoap.2.0.4-2
Done.

<><> liquidsoap.2.0.4-2 installed successfully ><><><><><><><><><><><><><><><><>
=> ✨ Congratulations on installing liquidsoap! ✨

# liquidsoap --version
Fatal error: exception Failure("Invalid option type!")
Raised by primitive operation at Avutil.Options.opts.f in file "avutil/avutil.ml", line 579, characters 12-33
Called from Builtins_ffmpeg_filters.mk_options in file "lang/builtins_ffmpeg_filters.ml", line 324, characters 45-74
Called from Builtins_ffmpeg_filters.(fun) in file "lang/builtins_ffmpeg_filters.ml", line 453, characters 32-49
Called from Stdlib__List.iter in file "list.ml", line 110, characters 12-15
Called from Builtins_ffmpeg_filters in file "lang/builtins_ffmpeg_filters.ml", line 451, characters 4-1023
caf2022 commented 2 years ago

I got it with ffmpeg 4.4

# ffmpeg
ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers

# liquidsoap --version
Liquidsoap 2.0.4

To install ffmpeg 4.4

wget https://ffmpeg.org/releases/ffmpeg-4.4.tar.gz
tar -zxvf ffmpeg-4.4.tar.gz
cd ffmpeg-4.4
./configure.....

Thanks for the help!

toots commented 2 years ago

Cool. The problem is fixed in ocaml-ffmpeg now as well!