High-quality audio conferencing

I've tried a lot of videoconferencing programs, including Skype and Hangouts. They all have problems, the most important of which is the crappy sound quality.

I was looking for a program that would allow me to make professional-sounding interviews through the Internet. Of course there's always the option of doing a double-ender, but that requires more logistics work and some technical ability on the part of your interviewee. I figured that in the age of broadband Internet, there must be an easy way to do live high-quality audio conferences.




After considerable trial and error, I finally found what I was looking for: a videoconferencing program called Linphone. Here's what makes it so great:
  • It uses the Opus audio codec for amazing crystal-clear audio, far better than any other codec. Skype and Hangouts sound like crap compared to this. (Of course you also need a proper microphone and recording environment.)
  • It allows easy recording in the native format (no transcoding), so you keep all the quality for post editing.
  • It is SIP-compatible, so it's open and compatible with any other SIP device or program (at least in theory; in practice the other party should also use Linphone to avoid unpleasant surprises, like the other software not supporting the Opus codec).
  • It is available on all platforms, so the other party can use whatever OS he likes (but for pity's sake, please have him use a real microphone).
I recommend disabling all the audio codecs except Opus to be sure that no other codec sneaks in when the bandwidth varies. If the sound gets bad with Opus, that's because the connection is too slow.

Screen sharing

The only down side to Linphone is that it lacks a screen sharing function, but here's a convenient work-around that uses your screen as a webcam:
  • $ sudo apt-get install 4l2loopback-dkms
  • $ modprobe v4l2loopback
  • $ ffmpeg -f x11grab -r 15 -s 1366x768 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -vf hflip -threads 0 -f v4l2 /dev/video0 (replace 1366x768 with your display's resolution)

Install on Linux

Your repository probably doesn't have the latest version of Linphone, so I recommend you install using Flatpak, like so:
flatpak --user install --from https://linphone.org/flatpak/linphone.flatpakref
  • Launch Linphone from the application menu (you might have to log out for it to appear in the menu. When you launch it, at first nothing happens, you have to wait a while for Linphone to load the first time).
P.S. I know that Hangouts and other WebRTC apps are supposed to support the Opus codec, but for some reason the sound quality is still bad. Besides, WebRTC web apps don't give you any control on the configuration, they're unstable, and lack many features, such as call recording (recording to Youtube doesn't count).

Comments

Popular posts from this blog

Classical Latin text-to-speech (tts)

Recording from more than once microphone in Linux