You are not logged in.

#1 2016-03-06 19:19:19

miomio
Member
Registered: 2016-01-17
Posts: 167

PulseAudio RTP and cVLC Transcoding

My original thread is here: https://bbs.archlinux.org/viewtopic.php?id=209124
However, this is no longer about FFmpeg. So posting a new thread.

My laptop speakers do not work so I installed PulseAudio and followed the Freedesktop documentation to transcode the raw PulseAudio RTP stream into MP3 with VLC out over the network, then using VLC on my phone to open up the stream to play my laptop's audio. However, the problem I'm having now is that despite having followed this documentation to the dot I am ironically no better off than when I was searching for the answer with ffmpeg: https://www.freedesktop.org/wiki/Softwa … /#index6h2

As described in the documentation l have uncommented the following in `/etc/pulse/default.pa`, as described:

### Load the RTP sender module (also configured via paprefs, see above)
load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
load-module module-rtp-send source=rtp.monitor destination_ip=127.0.0.1 port=47777 loop=1

The only difference here is that in the documentation (link above) there is no `destination_ip`, only `destination`. I believe the RTP how-to doc to have been written prior to PulseAudio 4.0 since the module page describes the switch as being `destination_ip` and not `destination`: https://www.freedesktop.org/wiki/Softwa … #index38h3

Anyway, after saving the `default.pa` config file and restarting pulseaudio I then begin transcoding with cVLC to stream the RTP stream as MP3 for lower bandwidth consumption, as described in the Freedesktop doc linked above:

cvlc rtp://@127.0.0.1:47777 ":sout=#transcode{acodec=mp3,ab=256,channels=2}:duplicate{dst=rtp{dst=225.0.0.1,mux=ts,port=47778}}"

After this, I can confirm UDP sockets for pulseaudio on port 47777 and cVLC on port 47778 (I have no idea why port 47779 was opened):

$ ss | grep 4777
udp    ESTAB      0      0      127.0.0.1:59568                127.0.0.1:47777                
udp    ESTAB      0      0      192.168.0.3:60226                225.0.0.1:47778                
udp    ESTAB      0      0      192.168.0.3:60227                225.0.0.1:47779

Sure enough there is a stream headed out to the multicast address on port 47778:

# tcpdump -n net 225.0.0.0/8 -c 10
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlp3s0, link-type EN10MB (Ethernet), capture size 262144 bytes
14:48:52.016950 IP 192.168.0.3.60226 > 225.0.0.1.47778: UDP, length 1328
14:48:52.017000 IP 192.168.0.3.60226 > 225.0.0.1.47778: UDP, length 1328
14:48:52.017009 IP 192.168.0.3.60226 > 225.0.0.1.47778: UDP, length 1328
14:48:52.017018 IP 192.168.0.3.60226 > 225.0.0.1.47778: UDP, length 1328
14:48:52.017028 IP 192.168.0.3.60226 > 225.0.0.1.47778: UDP, length 1328
14:48:52.017038 IP 192.168.0.3.60226 > 225.0.0.1.47778: UDP, length 1328
14:48:52.234093 IP 192.168.0.3.60226 > 225.0.0.1.47778: UDP, length 1328
14:48:52.234182 IP 192.168.0.3.60226 > 225.0.0.1.47778: UDP, length 1328
14:48:52.234219 IP 192.168.0.3.60226 > 225.0.0.1.47778: UDP, length 1328
14:48:52.234262 IP 192.168.0.3.60226 > 225.0.0.1.47778: UDP, length 1328
10 packets captured
12 packets received by filter
0 packets dropped by kernel

Now, from here I use my mobile phone with the VLC app to open the RTP stream with:

rtp://@225.0.0.1:47778 --rtp-caching=1000

(NOTE: switch `--rtp-caching=1000` is additional and I learned of it to reduce delay from here: https://forum.videolan.org/viewtopic.php?t=51322)

The result is low volume static noise coming out of my phone. No audio from the laptop despite firing up YouTube to make some noise.

Checking the `pactl` for sink and source info to confirm config I can see the following:

$ pactl list | grep -A2 'Source #' | grep 'Name: .*\.monitor$' | cut -d" " -f2
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
rtp.monitor
$ pactl list | grep -A2 'Sink #' | grep 'Name:'
	Name: alsa_output.pci-0000_00_1b.0.analog-stereo
	Name: rtp

I'm not too sure how loading these modules actually works since firstly the documentation for module-null-sink states "all data written to this sink is silently dropped" (https://www.freedesktop.org/wiki/Softwa … /#index3h3) and secondly the documentation for module-rtp-send states that this module "...reads audio data from an existing source and forwards it to the network encapsulated in RTP" (https://www.freedesktop.org/wiki/Softwa … #index38h3). So following this through then:

1. What am I doing opening a sink device to drop anything written to it? Additionally, what is being written to it?
2. what source device is feeding `module-rtp-send`?
3. Dafuq. Why is this difficult. And why is the documentation incorrect.

In simple terms I'm simply wanting to send audio coming from (presumably) `alsa_output.pci-0000_00_1b.0.analog-stereo.monitor` to loopback (again, presumably) with `module-rtp-send` where it is dealt with by that module and sent as a raw RTP stream to loopback where then I use cVLC to transcode the raw stream and send out over the network to a multicast address as MP3...

Oddly, when I restart my laptop systemd journal entries are flooded with:

Mar 06 19:02:28 X220 pulseaudio[611]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused
Mar 06 19:02:28 X220 pulseaudio[611]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused
...
Mar 06 19:04:41 X220 pulseaudio[611]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused
Mar 06 19:04:41 X220 pulseaudio[611]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused
Mar 06 19:04:41 X220 pulseaudio[611]: W: [pulseaudio] sap.c: sendmsg() failed: Connection refused

All help appreciated.

Offline

#2 2016-03-07 09:54:33

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,427

Re: PulseAudio RTP and cVLC Transcoding

The way I gather it you should now have an RTP sink to which you can switch your outputs to (e.g. in pavucontrol switch whatever you want to play to the RDP sink, your analog_stereo monitor should be irrelevant (TM))  cvlc grabs whatever is incoming on that RTP sink and transcodes it and sends it to a different port

Last edited by V1del (2016-03-07 15:20:37)

Offline

#3 2016-03-07 18:53:49

miomio
Member
Registered: 2016-01-17
Posts: 167

Re: PulseAudio RTP and cVLC Transcoding

V1del wrote:

...you should now have an RTP sink to which you can switch your outputs to (e.g. in pavucontrol switch whatever you want to play to the RDP sink...

I see no way this is configurable in pavucontrol. I simply have two output devices: Built-in analogue stereo, and RTP Multicast Sink.

Offline

#4 2016-03-07 19:11:13

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,427

Re: PulseAudio RTP and cVLC Transcoding

yeah and what happens if you switch to the RTP Multicast sink? does something start to get written to it? (you have to have an application using pulseaudio open and choose the rtp sink on the application) Can you do that and post an untruncated

pacmd list-sinks
pacmd list-sink-inputs

Last edited by V1del (2016-03-07 19:12:16)

Offline

#5 2016-03-07 20:08:59

miomio
Member
Registered: 2016-01-17
Posts: 167

Re: PulseAudio RTP and cVLC Transcoding

V1del wrote:

yeah and what happens if you switch to the RTP Multicast sink? does something start to get written to it? (you have to have an application using pulseaudio open and choose the rtp sink on the application) Can you do that and post an untruncated

pacmd list-sinks
pacmd list-sink-inputs

Since my last post I've been thinking more about why I'm getting socket errors in Systemd journal (as above). I read here https://wiki.archlinux.org/index.php/PulseAudio#Running that some desktop environments autostart services. So I have temporarily removed the file `/etc/xdg/autostart/pulseaudio.desktop` thinking that maybe one process is trying for the same socket as the first process of pulseaudio causing an error since it is in use. Turns out I'm still receiving socket errors in the journal entries. Was worth a try, but I'm not placing the autostart file back as I don't see the point of having the desktop environment try to load pulseaudio when systemd is dealing with it. That said, seems like the XFCE4 mixer system tray app may have required that since I'm no longer seeing the single "pulseaudio" playback control (volume slider).

>>> list-sinks
2 sink(s) available.
    index: 1
	name: <rtp>
	driver: <module-null-sink.c>
	flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: IDLE
	suspend cause: 
	priority: 1000
	volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 3.69 ms
	max request: 1 KiB
	max rewind: 1 KiB
	monitor source: 2
	sample spec: s16be 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 1
	configured latency: 7.26 ms; range is 0.50 .. 2000.00 ms
	module: 9
	properties:
		device.description = "RTP Multicast Sink"
		device.class = "abstract"
		device.icon_name = "audio-card"
  * index: 2
	name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
	driver: <module-alsa-card.c>
	flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: IDLE
	suspend cause: 
	priority: 9959
	volume: front-left: 18901 /  29% / -32.40 dB,   front-right: 18901 /  29% / -32.40 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 1145.83 ms
	max request: 344 KiB
	max rewind: 344 KiB
	monitor source: 3
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 0
	linked by: 0
	configured latency: 2000.00 ms; range is 0.50 .. 2000.00 ms
	card: 0 <alsa_card.pci-0000_00_1b.0>
	module: 6
	properties:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "CX20590 Analog"
		alsa.id = "CX20590 Analog"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "0"
		alsa.card = "0"
		alsa.card_name = "HDA Intel PCH"
		alsa.long_card_name = "HDA Intel PCH at 0xf2520000 irq 30"
		alsa.driver_name = "snd_hda_intel"
		device.bus_path = "pci-0000:00:1b.0"
		sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
		device.bus = "pci"
		device.vendor.id = "8086"
		device.vendor.name = "Intel Corporation"
		device.product.id = "1c20"
		device.product.name = "6 Series/C200 Series Chipset Family High Definition Audio Controller"
		device.form_factor = "internal"
		device.string = "front:0"
		device.buffering.buffer_size = "352800"
		device.buffering.fragment_size = "176400"
		device.access_mode = "mmap+timer"
		device.profile.name = "analog-stereo"
		device.profile.description = "Analog Stereo"
		device.description = "Built-in Audio Analog Stereo"
		alsa.mixer_name = "Conexant CX20590"
		alsa.components = "HDA:14f1506e,17aa21da,00100002 HDA:80862805,80860101,00100000"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-pci"
	ports:
		analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: no)
			properties:
				device.icon_name = "audio-speakers"
		analog-output-headphones: Headphones (priority 9000, latency offset 0 usec, available: yes)
			properties:
				device.icon_name = "audio-headphones"
	active port: <analog-output-headphones>
>>> list-sink-inputs
0 sink input(s) available.

Also, is there a way to exit pacmd without it killing the pulseaudio process? I.e. if you enter pacmd you drop to the pacmd CLI shell. When you enter 'exit' pulseaudio is killed.

Last edited by miomio (2016-03-07 20:23:22)

Offline

#6 2016-03-07 21:09:05

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,427

Re: PulseAudio RTP and cVLC Transcoding

You can exit pacmd with Ctrl-D (most programs dropping you into a similar shell really), you are never dropped to the input shell if you directly pass the corresponding command as an argument

You aren't playing anything in that output, you have to actually open an application you expect to have sound with and move it to the RTP sink, it does look like the sink itself has initialized properly (haven't tried myself so I might just be talking out of my ass here)

Last edited by V1del (2016-03-07 21:15:09)

Offline

#7 2016-03-07 22:45:05

miomio
Member
Registered: 2016-01-17
Posts: 167

Re: PulseAudio RTP and cVLC Transcoding

V1del wrote:

You aren't playing anything in that output, you have to actually open an application you expect to have sound with and move it to the RTP sink

That doesn't seem feasible at all. This would mean every application I open to expect sound from needs a CLI switch or GUI preference page to change the audio device to RTP sink, if I follow you correctly.

Checking VLC, it doesn't have a GUI preference option for this. And thinking about it, why the hell would it. This should be managed by the desktop environment/kernel space/specialist sound programs (i.e. pulseaudio) surely. And more to the point (not having a go at you here) why the hell is this so difficult. The whole thing is so much trouble for something so simple. Freedesktop provided documentation for me to follow and yet I cannot achieve this simple task... and they wrote what to do!

Mad. I'm really not happy. I've been over to Reddit, pulseaudio IRC channel on freenode, here and back for two weeks straight.

I appreciate your feedback though.

Last edited by miomio (2016-03-07 22:48:04)

Offline

#8 2016-03-08 00:15:29

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,427

Re: PulseAudio RTP and cVLC Transcoding

You are misunderstanding pulseaudio, you can set your rtp sink to be the default for every application by setting the option in pavucontrol (the set as fallback device button)  or

pacmd set-default-sink rtp

(for addition insurance: load module-stream-restore restore_device=false) and vlc doesn't have an option for this because pulseaudio does a good job of handling it. You still haven't established if the basic functionality works have you ever tried what I told you and did you get any errors or did it actually work and you are now complaining about a non-issue?  I understand your frustration but if you intend to get help with this it would be helpful to go with a more analytical approach and exhaust all options:

All I know right now is that it theoretically works, but you haven't attempted to put it into practice at all.

Your first post shows some excellent research, I don't know why you  would want to give up now, while you are seemingly so close

FWIW your original intent of having the RTP use your analog monitor should also be possible, but then you have to define the analog source in the module definition, like so:

load-module module-rtp-send source=alsa_output.pci-0000_00_1b.0.analog-stereo.monitor destination_ip=127.0.0.1 port=47777 loop=1

Note the adjusted source= line. Depending on where the line is positioned you might have to add it after the if..udev detect block.

BUT, since your speakers aren't working anyway, you are only introducing an unnecessary middleman compared to using it as a standalone sink and telling your applications to play to it

Big edit: This interested me enough to try it  myself and I've confirmed it to be working this way here. Using the same configuration  you posted at the start.

    
pacmd list-sinks
index: 6
        name: <rtp>
        driver: <module-null-sink.c>
        flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: RUNNING
        suspend cause: 
        priority: 1000
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 3.52 ms
        max request: 1 KiB
        max rewind: 1 KiB
        monitor source: 8
        sample spec: s16be 2ch 44100Hz
        channel map: front-left,front-right
                     Stereo
        used by: 1
        linked by: 4
        configured latency: 7.26 ms; range is 0.50 .. 2000.00 ms
        module: 37
        properties:
                device.description = "RTP Sink"
                device.class = "abstract"
                device.icon_name = "audio-card"

pacmd list-sink-inputs

    index: 29
        driver: <protocol-native.c>
        flags: START_CORKED 
        state: RUNNING
        sink: 6 <rtp>
        volume: front-left: 34078 /  52% / -17.04 dB,   front-right: 34078 /  52% / -17.04 dB
                balance 0.00
        muted: no
        current latency: 110.00 ms
        requested latency: 90.00 ms
        sample spec: s32le 2ch 44100Hz
        channel map: front-left,front-right
                     Stereo
        resample method: copy
        module: 10
        client: 15 <Amarok>
        properties:
                phonon.streamid = "{4d9d25aa-b0fb-44b6-bab7-63e3fb0e3219}"
                media.role = "music"
                media.name = "»I'm Not Surprised« durch »Rory Gallagher«"
                application.name = "Amarok"
                native-protocol.peer = "UNIX socket client"
                native-protocol.version = "30"
                application.version = "2.8-git"
                application.icon_name = "amarok"
                application.process.id = "735"
                application.process.user = "videl"
                application.process.host = "arch-videl"
                application.process.binary = "amarok"
                application.language = "de_CH.UTF-8"
                window.x11.display = ":0"
                application.process.machine_id = "ef708790c5d340338fecf6c8033cfd8e"
                application.process.session_id = "c2"
                module-stream-restore.id = "sink-input-by-media-role:music"
                media.title = "I'm Not Surprised"
                media.artist = "Rory Gallagher"

I was successfully able to point VLC to the port and it played whatever I was playing in Amarok.

Last edited by V1del (2016-03-08 20:46:55)

Offline

#9 2016-03-09 13:58:16

miomio
Member
Registered: 2016-01-17
Posts: 167

Re: PulseAudio RTP and cVLC Transcoding

Thanks for your reply V1del.

V1del wrote:

...if you intend to get help with this it would be helpful to go with a more analytical approach

I disagree completely. I am being analytical. I didn't post "My pulseaudio isn't streaming. Please help." I was thorough and posted relevant information.

V1del wrote:

You are misunderstanding pulseaudio, you can set your rtp sink to be the default for every application by setting the option in pavucontrol (the set as fallback device button)  or

pacmd set-default-sink rtp

Very likely, and yes, that is how I would have expected to have done it. I read your previous reply before my last as "you have to change to the RTP sink in every application you use for sound". I was arguing that pulseaudio should have an option for this not every user space application. So perhaps you've misunderstood me. I did whine like a baby a bit in frustration so getting lost-in-translation a bit is expected there. Also, it appears the default sink can be set in the `/etc/pulse/client.pa` configuration file.

V1del wrote:

You still haven't established if the basic functionality works

The basic functionality as in 'is pulseaudio producing sound?' Yes, I can hear sound through headphones and alsamixer is showing pulseaudio master control as the only playback device. I'd say that's basic functionality, i.e. pulseaudio on top of ALSA.

V1del wrote:

have you ever tried what I told you and did you get any errors or did it actually work and you are now complaining about a non-issue?

You are referring to your comment: ...."what happens if you switch to the RTP Multicast sink? does something start to get written to it?" before I knew that was a necessary thing to do (since the Freedesktop documentation I posted doesn't say that doing that as an extra step is required). It does make sense to switch it, but the authors at Freedesktop left that out. Did you read my (granted, lengthy) first post where toward the end I mentioned systemd's journal entries showing pulsaudio RTP socket errors? No other service I have ever used that was 100% functional since I adopted using systemd has complained about errors and still functioned as expected. Particularly alarming is the fact that I am here trying to t-shoot RTP streaming when the service is outputting RTP errors to systemd!

That said, I'm glad you have tested this like-for-like on your side and have been successful. However, following what you've said about switching the default sink still doesn't produce the goods for me. So if you don't mind, I'd like to revisit these errors:

$ journalctl -xn
-- Logs begin at Tue 2016-03-08 02:31:58 GMT, end at Wed 2016-03-09 13:34:29 GMT. --
Mar 09 13:34:28 X220 pulseaudio[726]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused
Mar 09 13:34:28 X220 pulseaudio[726]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused
Mar 09 13:34:28 X220 pulseaudio[726]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused
Mar 09 13:34:28 X220 pulseaudio[726]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused
Mar 09 13:34:28 X220 pulseaudio[726]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused
Mar 09 13:34:28 X220 pulseaudio[726]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused
Mar 09 13:34:29 X220 pulseaudio[726]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused
Mar 09 13:34:29 X220 pulseaudio[726]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused
Mar 09 13:34:29 X220 pulseaudio[726]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused
Mar 09 13:34:29 X220 pulseaudio[726]: E: [null-sink] rtp.c: sendmsg() failed: Connection refused

Can you confirm is your like-for-like setup is reporting these? (BTW for this to be like-for-like you'd needs to be using XFCE4)

Another problem I can see in the journal entries is the following line:

Mar 09 12:36:22 X220 dbus-daemon[396]: Encountered error 'Error in file /etc/dbus-1/system.d/pulseaudio.conf, line 1, column 1: syntax error
                                       ' while parsing '/etc/dbus-1/system.d/pulseaudio.conf'

That doesn't seem good.

you are seemingly so close

I hope so!
This is now working. Thank you for your help so far. I simply needed to switch the default sink. However, I'm cheesed that the Freedesktop documentation didn't say anything about this. I'm also looking for a solution to those errors I'm pointing out since they are flooding systemd logs (hundreds of thousands) and it is the same when I manually load the RTP module from pacmd.

Misc./Further notes:

I have changed port 47777 to 47778 since there was an error in the systemd journal entries about pulseaudio complaining about an odd port being used according to a specific RFC3550 (https://www.ietf.org/rfc/rfc3550.txt) which when I looked it up has the following:

11. RTP over Network and Transport Protocols
...
For UDP and similar protocols, RTP SHOULD use an even destination port number and the corresponding RTCP stream SHOULD use the next higher (odd) destination port number.

Last edited by miomio (2016-03-09 14:33:06)

Offline

#10 2016-03-09 15:25:53

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,427

Re: PulseAudio RTP and cVLC Transcoding

From what I understood  the journal errors appear only on reboot/ when first initalizing pulseaudio, as such I'd say they are a separate can of worms to be opened when we closed the first one (if it even is one, it might well be that it is a red hering and the logs just happen because of a loading race or so, I will check what happens on my setup).

Now that you clarified a bit  I know where our misunderstanding might come from

miomio wrote:

I was arguing that pulseaudio should have an option for this not every user space application.

This is exactly what pulseaudio does and what I meant, every application can be told where to play to within pulseaudio/pavucontrol without them having to worry about how to do that. As I said, and maybe why I may have sounded a bit annoyed - sorry about that - open an application that has pulseaudio support and open up pavucontrol on the outputstreams tab, it should be fairly apparent what I was meaning to say. (You will see a stream where you can configure the volume of your application and switch the output card of said application, in our case switch it to the newly created RTP sink)

...

Edit: because you updated your post while I started writing the above explanation

Nice to hear. Regarding you feeling cheesed, the "problem" here is that you dived headfirst into advanced configuration without knowing about the basics of how pulseaudio works. The concepts of sinks and sources are essential to how pulseaudio works and were likely assumed to be known at that point in the documentation, an assumption that I had myself because one usually doesn't start out with configuring network sinks (it's of course a special exception for your case but still). You will likely find more exhaustive information if you go through the docs from the beginning, looking through man pages or the arch wiki, but here's a short summary:

Pulseaudio defines sinks which are arbitrary places where audio output is written to (usually your physically present cards, but also specially defined network sinks as in our case)  which application writes into which sink is governed by pulseaudio the applications don't know or care that you play the audio over the network (the application basically connects to pulseaudio with a stream of audio, and pulseaudio makes sure that whatever comes from the applications gets written to the correct sink as defined within its (pulseaudio's) configuration. Pulseaudio by default remembers for streams it has already seen to which sink that it had played to the last time (i.e. skype will always play on my headphones, even though my speakers are set to be the default sink) for streams it hasn't seen it will initially use the default sink as defined.

Regarding the errors, they might come from faulty arguments, it is possible that the default.pa hasn't been revised in a while: If you read the module documentation for the two modules at play here, you will notice that it mentions that the null_sink doesn't take any arguments, and that the channel and rate information should be supplied with with the module-rtp-send line. It might be that this is still supported in the default.pa for legacy reasons, but still leads to the errors being thrown (if you use the commands from default.pa directly within pactl you will notice that it will fail to create the sink)

Last edited by V1del (2016-03-10 08:36:55)

Offline

Board footer

Powered by FluxBB