
For the
latest Apple presentation, we decided to expand our text translations and add a real-time audio podcast. At first we wanted to find some ready-made solution, but we could not find anything that could accommodate several people from different parts of the continent, so we had to find another way. How to make a live broadcast of an audio podcast (like Radio T :-) using one laptop, one server and Skype -
read on.
We configure server
The main thing to take care of is a wide channel. We had about 150-200 listeners at the peak and about 10 Mb / s with 64kb / s quality, so it’s quite simple to calculate the channel if you know the approximate number of connections.
We rented a cloud server in Selectk for the duration of the broadcast, it cost us about 25 rubles, the channel is potentially up to 1 gigabit, but we have to pay for it. By the way, the hard disk is not needed volumetric, just a few gigabytes is enough, we will record on the client.
')
Let's start with (we have, by the way, debian) that we install Icecast 2 - free software for broadcasting audio to the network. We recommend to get acquainted with the
documentation , there is not very much, but you can imagine what opportunities are opening up.
Installation:
apt-get install icecast2
Here we posted a config with comments, but you need to edit it. By the way, you can
set up the broadcast so that in the absence of a signal from the source, it is not interrupted, but transferred to a spare source, which, for example, constantly plays music.
Run icecast:
service icecast2 start
The only big disadvantage of Icecast is that it cannot mix streams on the server side, and indeed, in fact, it simply takes the incoming stream from the client and redirects it to listeners, counting the number of connections, providing channel redundancy, etc.
Therefore, we will do this on your computer. As the main workstation, which eventually connects to the server, we used a Macbook, so here are instructions on the example of Mac OS X, but similar actions can be done using Windows and Linux.
Mix sound
To send audio to the server, we need special software, you can choose from those listed
here . I used
nicecast - shareware, but at the same time it has fantastic capabilities, for example, it can impose effects and mix audio channels only from certain interfaces of different applications. Fortunately, we can use the program for free for an entire hour, after which the application must be restarted, and the broadcast will be interrupted. There is a completely free analog
butt , but its possibilities are much more scarce.
We also need some kind of audio application for broadcasting background music - it allows you to drown out some noises, and is also a good sign that the broadcast was not interrupted and goes, just everyone leading is silent about something enthusiastically :-) We used
mixxx , basically because it is free and quite powerful. By the way, for background music we need a special
podsafe track, the license of which allows you to use it in podcasting.

So, now you can try to connect: open Nicecast, select the microphone in the Source tab, set the mono channel to Quality (still the microphone is mono-channel) and the quality is around 64-96 kilobits per second, which is more than enough. Press ⌘4 to set up recording to a local disk. Now the most interesting thing: click on the ⌘2 keyboard, in the window that opens, add our server:

Click the cherished Start Broadcast button and go to the address (for our settings this
stream.tjournal.ru:8000/tjournal
stream.tjournal.ru:8000/tjournal
) in the browser, with a slight delay, we should hear what is happening around. Now we can connect to our server at
stream.tjournal.ru:8000/
stream.tjournal.ru:8000/
and watch the active streams and the number of listeners they have. Hooray!
After making sure that the server is working, we will try to combine several streams: background music and our voice from the microphone. To do this, in the Source tab, select Silence Input (silence) and go to the Effects tab, in which the magic begins.
Add an Application Mixer effect and select the mixxx app (or even iTunes). Then add the VoiceOver effect - this is our microphone. You have to play a little with the settings so that the voice is not too loud, and also that some noises are filtered by the program (Auto Ducking). We added two more filters - Monomizer and Menu Bar Meters, but in fact there are a lot of them and you can experiment for a long time.
We start the broadcast
It remains the most simple, call someone on Skype and add another Application Mixer to the effects, pointing it to Skype. By the way, you can not take sound from the entire application, but only from certain channels. To create virtual channels, we used the
Soundflower application. They will allow us to send sound from mixxx to a virtual audio channel and not listen to it in headphones, and the sound from this virtual channel will be shot nicecast.
Window with effects:

It remains to test the entire bundle and put the player on the site (it can be limited to a link, but this is too hardcore). By the way, this broadcast works great on mobile devices. We used
uppod to have a pretty player on the page instead of a simple tag.
.
<div id="audioplayer" style="width: 100%; height: 60px"></div> <script type="text/javascript" src=«/path/to/uppod.js"></script> <script> var player = null; $(function(){ player = new Uppod({m:"audio",uid:"audioplayer",file:"http://stream.tjournal.ru:8000/tjournal", comment:"TJournal Live"}); setInterval(function() { if (typeof player != 'undefined' && player != undefined && player != null) { if (player.Played() == 100) { player.Stop(); player.Play(); } }}, 10000); }); </script>
TJournal long-polling . nicecast, , , , . 10 live streaming audio , , .
. . !
.
<div id="audioplayer" style="width: 100%; height: 60px"></div> <script type="text/javascript" src=«/path/to/uppod.js"></script> <script> var player = null; $(function(){ player = new Uppod({m:"audio",uid:"audioplayer",file:"http://stream.tjournal.ru:8000/tjournal", comment:"TJournal Live"}); setInterval(function() { if (typeof player != 'undefined' && player != undefined && player != null) { if (player.Played() == 100) { player.Stop(); player.Play(); } }}, 10000); }); </script>
TJournal long-polling . nicecast, , , , . 10 live streaming audio , , .
. . !