Hi all!

We're now 2 months away from the release of liquidsoap 1.4.3 and I wanted
to share a little update about where the project was at regarding the
on-going development branch.

The next major release will definitely be super exciting with tons of new,
incredible features that we previously thought impossible. However, it'll
be a long run to get all them in, stabilize and, eventually, release.

We have some really exciting new features in store, in particular with
video. On a higher level, with the coming release, we should be able to
enable pretty much anything that ffmpeg can do but with the flexibility and
power of the full script language.

In particular:

   - Receive and send data without re-encoding
   - Encode data once and share it with multiple outputs
   - First class support for video, including HLS, SRT, OBS client etc.


One feature that is on the roadmap but that we're not sure if we'll get to
is native support for RTMP input. The RTMP protocol is a mess and a huge
amount of work. We might, however, be looking at compensating an external
contributor for it, in case anyone is interested. We'll post about this
soon.

Please note that the documentation is currently out of sync. As we get more
and more breaking feature in, we will eventually revisit the documentation
and rewrite it extensively. For now, any interested tester is suggested to
come to us on slack, look at PR descriptions or script tests.

In order to facilitate testing, I'm happy to report that we have re-enabled
the windows build as part of our regular CI workflow here:
https://github.com/savonet/liquidsoap/actions This and the regular
debian packages
and docker images should allow for quick testing of the progress.

Here's a breakdown of the features that already, in flight or pending. You
can also track them via the github project at:
https://github.com/savonet/liquidsoap/projects/2
Currently available:Ffmpeg:

   - Ffmpeg encoded content, allowing to copy data without re-encoding!
   See: https://github.com/savonet/liquidsoap/pull/1286
   - Ffmpeg raw content, avoiding data copy between liquidsoap and ffmpeg
   when possible
   - Support for ffmpeg filters (using ffmpeg raw content)


I/O:

   - HLS now supports video and mp4 container!


Language:

   - Errors throw and catch:

e = error.register("my error")

# Catch all errors:
try
  error.raise(e);
  "bla"
catch err do
  error.kind(err)
end

# Only a sub-set:
try
  error.raise(e);
  "bla"
catch err in [e, ...] do
  error.kind(err)
end



   - Modules and methods.

s = playlist(...)

s.on_metadata(fn)

s.skip()



   - Splat and destructuring:

# let [x, _, z, ...t] = [1,2,3,4];;
x : int = 1
z : int = 3
t : [int] = [4]

# x = [1, ...[2, 3, 4], 5, ...[6, 7]];;
x : [int] = [1, 2, 3, 4, 5, 6, 7]



   - Support for nullable values:

x = null()
y = x ?? 1234 # 1234


In-flight:

   - Support for liquidsoap as Live Video HEVC (h.265) SRT Server. See:
   https://github.com/savonet/liquidsoap/issues/1368


Pending:

   - Support for inline encoding and decoding, making it possible to share
   a single encoding accross multiple outputs:

s = ffmpeg.encode(%ffmpeg(format="mp3", %audio(codec="libmp3lame", ..))

output.file(%ffmpeg(format="mp3", %audio.copy, ..), ..., s)

output.icecast(%ffmpeg(format="mp3", %audio.copy, ..), ..., s)


   - Support for native RTMP input. See above.
   - Support for HLS input.
   - Support for scriptable playlists, allowing for more flexibility with
   CUE playlists and etc.
_______________________________________________
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to