Big project with pulseaudio and streaming

Kyle kyle4jesus at gmail.com
Sat Nov 10 04:02:32 UTC 2012


I cohost, or better, panel, on a podcast dealing with accessibility and 
technology. Unfortunately, I happen to be the only voice of reason when 
it comes to free software, or better, software freedom, as most of the 
other people on the podcast own Mac computers and i-devices, and the one 
other GNU/Linux user is still of the opinion that it's an OS for 
technically minded people, and isn't suitable for the average user. The 
main host of the show says he is considering switching to a Linux-based 
OS, probably Ubuntu, if I can record and stream the podcast.

I need to be able to send TeamTalk, including my voice, and possibly sox 
as well, to my local sound card, audacity and an Icecast2 server. I have 
a script based on some instructions I found at
http://www.alex.ballas.org/2010/11/08/stream-any-pulseaudio-application/
but it only sends apps to a null output and streams its monitor to the 
icecast server. It doesn't copy the monitor either to a source that can 
be recorded with Audacity or back to the local sound card, so if I want 
to listen to the audio, I must listen to the stream, which is about 30 
seconds to a minute behind the audio playback. It also won't solve the 
problem of the TeamTalk client, which will play all other voices but 
mine. It also seems to cause errors at times, so it seems to have about 
a 50% rate of success, which can be tested until working, but is not 
exactly user-friendly. Worse, I have to kill pulseaudio once I stop the 
stream, and that causes me to lose speech, which is obviously not 
desirable for someone new to GNU/Linux, even though I know how to fix it.

I need to be able to do this by tomorrow before 8:00 Eastern Time. I'm 
attaching the script I wrote to this message, leaving out the icecast 
info, in case someone here can experiment and help me. I've been looking 
for good information for some time now, and it does seem to be a bit 
hard to find, which explains why it took so long to try to get some 
help, especially since I generally like doing this kind of thing myself. 
Hopefully I'm not too late.
~Kyle
http://kyle.tk
-- 
Linux killed Kenny, bastard!
--Subject of a real e-mail to the Linux kernel mailing list
12 January, 2009

-------------- next part --------------
#!/bin/sh
# streamer
# Sets up a virtual pulseaudio sink for streaming specified apps to an icecast2 server
# Written by Kyle, based on documentation and commands at http://www.alex.ballas.org/2010/11/08/stream-any-pulseaudio-application/

# Icecast server login info goes here
host=
port=
pass=
mount=

pactl load-module module-null-sink
pactl load-module module-combine sink_name=STREAMER slaves=”`cat ~/.pulse/*-sink`,null”

gst-launch-0.10 pulsesrc device=null.monitor ! \
audioconvert ! \
audio/x-raw-int,rate=44100,channels=2 ! \
lamemp3enc bitrate=128 ! \
shout2send \
ip=$host \
port=$port \
password=$pass \
mount=$mount




More information about the Blinux-list mailing list