Closed vitoyucepi closed 2 months ago
Thanks. I think that theora encoder should be removed tbh. What do other people think?
Hi @toots,
What do other people think?
May I ask you to tag them explicitly?
Well I mean you, @smimram, @gAlleb but also anyone using video.
It seems to me that theora is super outdated at this point. We can keep supporting it but most people using video will want a different codec.
And we'd still support it via ffmpeg
if needed.
imho
Can't say anything good or bad about theora
. Of course, it's open source and royalty-free if compared to h.264 or others alike.
We have now VP9, A1 etc. While theora
still works and might be usable in specific scenarios, due to its limitations and lack of ongoing development I wouldn't consider it a good option either.
And we'd still support it via ffmpeg if needed.
Well, it's a very valid option. Lots of factors have led to theora's
stagnation. While it holds historical significance it could be kept within ffmpeg
but it is no longer a primary choice for video compression.
Initial analysis of the bug shows weird reproduction conditions. I have one video that works and one that does not and, so far, I have not been able to identify any difference that would explain it.
Both videos work with the ffmpeg encoder.
One thing to note re: ffmpeg, however, is that ffmpeg (like many other tools) is terrible at handling the (admittedly pretty bad) specs for ogg track chaining.
It'd be nice to fix the theora encoder but it would be foolish to spend hours on it..
Description
Liquidsoap won't start when using the
%theora
encoder.Log
``` 2024/08/27 20:38:14 >>> LOG START 2024/08/27 20:38:13 [ffmpeg.filter.bitstream:3] No valid mode found for filter pgs_frame_merge! 2024/08/27 20:38:13 [main:3] Liquidsoap 2.3.0+git@59de576ec 2024/08/27 20:38:13 [main:3] Using: alsa=0.3.0 angstrom=0.16.0 ao=0.2.4 asetmap=0.8.1 asn1-combinators=0.2.6 astring=0.8.5 base=v0.16.3 base.base_internalhash_types=v0.16.3 base.caml=v0.16.3 base.shadow_stdlib=v0.16.3 base64=3.5.1 bigarray=[distributed with Ocaml] bigarray-compat=1.1.0 bigstringaf=0.9.1 bjack=0.1.6 bos=0.2.1 bytes=[distributed with OCaml 4.02 or above] ca-certs=v0.2.3 camlp-streams camomile.lib=2.0 cohttp=5.3.1 cohttp-lwt=5.3.0 cohttp-lwt-unix=5.3.0 conduit=6.2.3 conduit-lwt=6.2.3 conduit-lwt-unix=6.2.3 cry=1.0.3 cstruct=6.2.0 ctypes=0.22.0 ctypes-foreign=0.22.0 ctypes.stubs=0.22.0 curl=0.9.2 domain-name=0.4.0 domain_shims dssi=0.1.5 dtools=0.4.5 dune-build-info=3.16.0 dune-private-libs.dune-section=3.16.0 dune-site=3.16.0 dune-site.private=3.16.0 duppy=0.9.4 eqaf=0.9 eqaf.bigstring=0.9 eqaf.cstruct=0.9 faad=0.5.2 fdkaac=0.3.3 ffmpeg-av=1.2.0 ffmpeg-avcodec=1.2.0 ffmpeg-avdevice=1.2.0 ffmpeg-avfilter=1.2.0 ffmpeg-avutil=1.2.0 ffmpeg-swresample=1.2.0 ffmpeg-swscale=1.2.0 fileutils=0.6.4 flac=0.5.1 flac.decoder=0.5.1 flac.ogg=0.5.1 fmt=0.9.0 fpath=0.7.3 frei0r=0.1.2 gd=1.1 gen=1.1 gmap=0.3.0 hkdf=1.0.4 inotify=2.0-62-g5e58536 integers ipaddr=5.6.0 ipaddr-sexp=5.6.0 ipaddr.unix=5.6.0 irc-client irc-client-unix ladspa=0.2.2 lame=0.3.7 lastfm=0.3.4 lilv=0.2.0 liquidsoap-lang=2.3.0 liquidsoap-lang.console=2.3.0 liquidsoap_alsa=rolling-release-v2.3.x-3-g59de576 liquidsoap_ao=rolling-release-v2.3.x-3-g59de576 liquidsoap_bjack=rolling-release-v2.3.x-3-g59de576 liquidsoap_builtins=rolling-release-v2.3.x-3-g59de576 liquidsoap_core=rolling-release-v2.3.x-3-g59de576 liquidsoap_dssi=rolling-release-v2.3.x-3-g59de576 liquidsoap_faad=rolling-release-v2.3.x-3-g59de576 liquidsoap_fdkaac=rolling-release-v2.3.x-3-g59de576 liquidsoap_ffmpeg=rolling-release-v2.3.x-3-g59de576 liquidsoap_flac=rolling-release-v2.3.x-3-g59de576 liquidsoap_frei0r=rolling-release-v2.3.x-3-g59de576 liquidsoap_gd=rolling-release-v2.3.x-3-g59de576 liquidsoap_irc=rolling-release-v2.3.x-3-g59de576 liquidsoap_ladspa=rolling-release-v2.3.x-3-g59de576 liquidsoap_lame=rolling-release-v2.3.x-3-g59de576 liquidsoap_lastfm=rolling-release-v2.3.x-3-g59de576 liquidsoap_lilv=rolling-release-v2.3.x-3-g59de576 liquidsoap_lo=rolling-release-v2.3.x-3-g59de576 liquidsoap_mad=rolling-release-v2.3.x-3-g59de576 liquidsoap_ogg=rolling-release-v2.3.x-3-g59de576 liquidsoap_ogg_flac=rolling-release-v2.3.x-3-g59de576 liquidsoap_optionals=rolling-release-v2.3.x-3-g59de576 liquidsoap_opus=rolling-release-v2.3.x-3-g59de576 liquidsoap_osc=rolling-release-v2.3.x-3-g59de576 liquidsoap_oss=rolling-release-v2.3.x-3-g59de576 liquidsoap_portaudio=rolling-release-v2.3.x-3-g59de576 liquidsoap_posix_time=rolling-release-v2.3.x-3-g59de576 liquidsoap_prometheus=rolling-release-v2.3.x-3-g59de576 liquidsoap_pulseaudio=rolling-release-v2.3.x-3-g59de576 liquidsoap_runtime=rolling-release-v2.3.x-3-g59de576 liquidsoap_samplerate=rolling-release-v2.3.x-3-g59de576 liquidsoap_sdl=rolling-release-v2.3.x-3-g59de576 liquidsoap_sdl_log_level=rolling-release-v2.3.x-3-g59de576 liquidsoap_shine=rolling-release-v2.3.x-3-g59de576 liquidsoap_soundtouch=rolling-release-v2.3.x-3-g59de576 liquidsoap_speex=rolling-release-v2.3.x-3-g59de576 liquidsoap_sqlite=rolling-release-v2.3.x-3-g59de576 liquidsoap_srt=rolling-release-v2.3.x-3-g59de576 liquidsoap_ssl=rolling-release-v2.3.x-3-g59de576 liquidsoap_stdlib=rolling-release-v2.3.x-3-g59de576 liquidsoap_stereotool=rolling-release-v2.3.x-3-g59de576 liquidsoap_theora=rolling-release-v2.3.x-3-g59de576 liquidsoap_tls=rolling-release-v2.3.x-3-g59de576 liquidsoap_vorbis=rolling-release-v2.3.x-3-g59de576 liquidsoap_xmlplaylist=rolling-release-v2.3.x-3-g59de576 liquidsoap_yaml=rolling-release-v2.3.x-3-g59de576 lo=0.2.0 logs=0.7.0 logs.fmt=0.7.0 logs.lwt=0.7.0 lwt=5.7.0 lwt.unix=5.7.0 macaddr=5.6.0 mad=0.5.3 magic-mime=1.3.1 mem_usage=0.1.1 memtrace=0.2.3 menhirLib=20231231 metadata=0.3.0 mirage-crypto=0.11.3 mirage-crypto-ec=0.11.3 mirage-crypto-pk=0.11.3 mirage-crypto-rng=0.11.3 mirage-crypto-rng.unix=0.11.3 mm=0.8.5 mm.audio=0.8.5 mm.base=0.8.5 mm.image=0.8.5 mm.midi=0.8.5 mm.video=0.8.5 ocplib-endian ocplib-endian.bigstring ogg=0.7.4 ogg.decoder=0.7.4 opus=0.2.3 opus.decoder=0.2.3 osc osc-unix parsexp=v0.16.0 pbkdf portaudio=0.2.3 posix-base=5a7f328 posix-socket=5a7f328 posix-socket.constants=5a7f328 posix-socket.stubs=5a7f328 posix-socket.types=5a7f328 posix-time2=5a7f328 posix-time2.constants=5a7f328 posix-time2.stubs=5a7f328 posix-time2.types=5a7f328 posix-types=5a7f328 posix-types.constants=5a7f328 ppx_compare.runtime-lib=v0.16.0 ppx_hash.runtime-lib=v0.16.0 ppx_sexp_conv.runtime-lib=v0.16.0 prometheus=1.2 prometheus-app=1.2 ptime=1.1.0 ptime.clock.os=1.1.0 pulseaudio=0.1.6 re=1.11.0 result=1.5 rresult=0.7.0 samplerate=0.1.7 saturn_lockfree=0.4.1 sedlex=3.2 seq=[distributed with OCaml 4.07 or above] sexplib=v0.16.0 sexplib0=v0.16.0 shine=0.2.3 soundtouch=0.1.9 speex=0.4.2 speex.decoder=0.4.2 sqlite3=5.1.0 srt=0.3.1 srt.constants=0.3.1 srt.stubs=0.3.1 srt.stubs.locked=0.3.1 srt.types=0.3.1 ssl=0.7.0 stdlib-shims=0.3.0 stereotool=rolling-release-v2.3.x-3-g59de576 str=[distributed with Ocaml] stringext=1.6.0 theora=0.4.1 theora.decoder=0.4.1 threads=[distributed with Ocaml] threads.posix=[internal] tls=0.17.4 tsdl=v1.0.0 tsdl-image=0.5 tsdl-ttf=0.6 unix=[distributed with Ocaml] unix-errno=52c6ecb unix-errno.errno_bindings=52c6ecb unix-errno.errno_types=52c6ecb unix-errno.errno_types_detected=52c6ecb unix-errno.unix=52c6ecb uri=4.4.0 uri-sexp=4.4.0 uri.services=4.4.0 vorbis=0.8.1 vorbis.decoder=0.8.1 x509=0.16.5 xmlm=1.4.0 xmlplaylist=0.1.5 yaml=3.2.0 yaml.bindings=3.2.0 yaml.bindings.types=3.2.0 yaml.c=3.2.0 yaml.ffi=3.2.0 yaml.types=3.2.0 zarith=1.13 2024/08/27 20:38:13 [main:3] 2024/08/27 20:38:13 [main:3] DISCLAIMER: This version of Liquidsoap has been compiled from a snapshot of the 2024/08/27 20:38:13 [main:3] development code. As such, it should not be used in production unless you know 2024/08/27 20:38:13 [main:3] what you are doing! 2024/08/27 20:38:13 [main:3] 2024/08/27 20:38:13 [main:3] We are, however, very interested in any feedback about our development code and 2024/08/27 20:38:13 [main:3] committed to fix issues as soon as possible. 2024/08/27 20:38:13 [main:3] 2024/08/27 20:38:13 [main:3] If you are interested in collaborating to the development of Liquidsoap, feel 2024/08/27 20:38:13 [main:3] free to drop us a mail atSteps to reproduce
main.liq
compose.yaml
ffmpeg -f lavfi -i testsrc=duration=10:size=1280x720:rate=30 -f lavfi -i "sine=frequency=1000:duration=10" test.mp4
docker compose up
Expected behavior
Liquidsoap starts with the
%theora
encoder.Liquidsoap version
Liquidsoap build config
Installation method
From official container image
Additional Info
This problem was described in #4115. The
%theora
encoder doesn't work in 2.1+.