Opus
Basic bindings to libopus
to encode/decode Opus streams. Opus is a low-latency yet high-quality audio codec with an impressive set of features and very simple API. Note that a common surprise with Opus is that it supports a very limited set of samplerates. Do yourself a favor and just resample any audio (with, for example, a polyphase resampler from DSP.jl
) you have to 48 KHz before encoding.
Basic usage is to use load()
and save()
to read/write Opus streams to/from file paths, IO streams, etc., but the real fun to be had is in an IJulia notebook with OpusArrays
. These thin wrapper objects contain a writemime()
implementation allowing you to output raw audio as Opus to a reasonably modern browser. To try it out, put the following in an IJulia notebook:
using Opus
# Create a seconds worth of 440Hz
t = linspace(0,1,48000)
audio = sin(2*π*440*t)
z = OpusArray(audio)