[ALSA] Stream met loopback klinkt te traag.

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • om3ega
  • Registratie: Maart 2001
  • Laatst online: 16:36
Hoi allen,

Ik heb de volgende situatie :

Raspberry PI 2B (de snelle variant)
Raspian Linux raspberrypi 4.1.7-v7+ #817 SMP PREEMPT Sat Sep 19 15:32:00 BST 2015 armv7l GNU/Linux

Ik heb een software pakket dat audio opwekt en dit naar een ALSA output kan sturen.

hw:0,0 bcm2835 ALSA)
hw:0,1 bcm2835 IE95 HDMI
hw 1,0 loopback PCM
hw 1,1 loopback PCM
hw 2,0 USB Audio (zit er nu even in maar is voor dit niet interresant)
hw 3,0 DUmmy PCM

Momenteel staan de instellingen voor de software als volgt :

Input hw:3,0 Dummy (moet ergens op staan, maar gebruik ik niet, vandaar de dummy)
Output hw:1,1 PCM Loopback

Via darkice of liquidsoap (beide hebben het zelfde fenomeen) stream ik naar een icecast server.

Als ik de output van de software naar hw0,0 zet en via de speaker luister klinkt het prima.

Als ik de output van hw0,0 input naar de USB hw2,0 redirect met een externe kabel klinkt het zachtjes (met ruis) maar verder prima (hiermee weet ik zeker dat de stream software verder goed werkt)

hw 1,1 Loopback is connected met hw 1,0 loopback (dit is volgens mij gewoon standaard hoe een loopback werkt)

Als ik darkice of liquidsoap gebruik om te streamen naar icecast met input hw1,0 dan lijkt het alsof alles te langzaam afspeelt. Alsof het aantal toeren van de plaat te langzaam draait.

Omdat ik dacht dat dit aan darkice lag heb ik via liquidsoap het zelfde geprobeerd te bereiken. Ik heb gespreeld met bit-streams 8,16,128 , samplerates 8000,16000,22050, 44100, 96000

niets lijkt te helpen. Het lijkt op een timing probleem. Ik weet niet echt meer in welke richting ik het moet zoeken.

Iemand ervaring met soortgelijke setup?

Mijn vermoeden is dat het een timing probleem is binnen de loopbacks of een incompatible setting.. Maar ik weet niet waar ik moet zoeken of wat ik kan proberen.

Ik heb ook andere codecs geprobeerd (OGG Vorbis) maar die hebben het zelfde probleem.
Aangezien ik ook niet enorm bekend ben met de mogelijkheden binnen ALSA en geluid op Linux hoop ik dat dit fenomeen jullie bekend voorkomt.

Hier nog wat verdere info :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
pi@raspberrypi ~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 1: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
  Subdevices: 7/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 2: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: Dummy [Dummy], device 0: Dummy PCM [Dummy PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7


Stukje liquidsoap config

code:
1
2
3
4
5
set("log.file.path","/tmp/liquidsoap.log")
input_stream = mksafe(input.alsa(bufferize=true ,device="hw:1,0"))
external_server = output.icecast(host="192.168.150.20",port=8000, password="*****")
encoding = %mp3(bitrate=16,samplerate=8000, mono=true, internal_quality=0,id3v2=true)
external_server(encoding, input_stream, mount="raspi")


code:
1
2
3
4
5
6
7
8
9
pi@raspberrypi / $ cat proc/asound/cards
 0 [ALSA           ]: bcm2835 - bcm2835 ALSA
                      bcm2835 ALSA
 1 [Loopback       ]: Loopback - Loopback
                      Loopback 1
 2 [Device         ]: USB-Audio - USB PnP Sound Device
                      USB PnP Sound Device at usb-3f980000.usb-1.4, full speed
 3 [Dummy          ]: Dummy - Dummy
                      Dummy 1


code:
1
2
3
4
5
6
7
8
9
pi@raspberrypi / $ cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
snd-aloop


Verdere info die wellicht interessant is kan aangeleverd worden.

Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Kan de rPI het wel aan?

Verder kan ik je niet zo helpen, geen verstand van de materie. :/
Ik denk dat het wel mogelijk is om een audio/video sync optie te gebruiken bij ALSA, maar je kunt dit ook bij de (uiteindelijk) uitvoer toepassen. Tenminste ik neem aan dat de stream wordt opgevangen in een player, bij SMplayer en VLC kun het dan laten 'rechtzetten'.

Is dit niet wat je bedoeld, dan heb je niks aan deze informatie. ;)

Acties:
  • 0 Henk 'm!

  • om3ega
  • Registratie: Maart 2001
  • Laatst online: 16:36
Ja de rPI heeft geen issues qua CPU snelheid. Sterker nog, die staat bijna uit zijn neus te eten :) .. Het is een Quadcore rasPI. Ook het feit dat als ik via de USB soundcard input audio stream gaat het prima. Ik vermoed dus dat het ergens in de loopback foutgaat.

De players die ik heb getest zijn : VLC direct naar de Icecast server (zonder opties met syncen, waar die dan ook mogen zitten) en een webplayer via <audio> </audio> maar beide hebben het zelfde resultaat.

Evengoed bedankt voor je feedback :)

Acties:
  • 0 Henk 'm!

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
Ik weet dat het bij VLC erin in zit, dacht onder de tab Audio of Video. Bij SMplayer (+mpv), die ik fijner vind dan VLC, staat het ook ergens tussen.. Gewoon even Googelen dus. ;)

Quad-core zegt helaas niets als de app daarmee niet kan omgaan.
Maar als inderdaad de load 'normaal' blijft, dan ligt het niet aan de load. Wel zijn de USB-poorten niet top (van de rPi), maar dat wist je waarschijnlijk al. :p

Succes. :)