Keresés

Részletes keresés

locsemege Creative Commons License 2010.10.16 0 0 60
Egy teljes Skype beszélgetést valahogy így lehet rögzíteni:

#!/bin/bash

outfile="$1"
vin=6
vout=1
format='-b16 -c2 -esigned-integer -r44100'
pacat -rd "`pactl stat | grep '^Default Sink:' | cut -d' ' -f3`.monitor" |\
    sox -m -t raw $format -v"$vout" - -t raw $format -v"$vin" "|pacat -r" -t raw $format - lowpass 8k |\
        oggenc --ignorelength -Qro "$outfile" -
exit 0

locsemege Creative Commons License 2010.10.12 0 0 59
A konkrét példában a hangeszköz megfelelő helyettesítés után:

pacat -rd 'alsa_output.pci-0000_00_14.2.analog-stereo.monitor' >valami.raw
Előzmény: locsemege (58)
locsemege Creative Commons License 2010.10.12 0 0 58
Jelen hozzászólásom akár a FAQ-ba is mehetett volna, mégis ide írom, mert ontopic. Bár nem gond, inkább megoldás.

Előfordulhat, hogy szükségünk van audio stream mentésére. Tegyük fel, azért, mert egy adott honlapon erre nem adnak közvetlen lehetőséget irigységből - politikailag korrekt megfogalmazás szerint jogvédelmi okokból. Ilyen lehet például a Magyar Rádió hangtára. (Ennek használatához tegyük whitelist-re a *radio.hu címet a Flashblock-ban.)

Az eljárást PulseAudio hangszerver használatával, Fedora 14-en kipróbálva adom meg.

Derítsük ki, honnan is rögzíthetünk:

pactl stat | grep '^Default \(Sink\|Source\):'
Default Sink: alsa_output.pci-0000_00_14.2.analog-stereo
Default Source: alsa_input.pci-0000_04_02.0.analog-stereo


Általánosságban a rögzítés igen egyszerű:

pacat -rd 'hangeszköz.monitor' >valami.raw

A header nélküli hanganyagot konvertálhatjuk, tömöríthetjük, de akár közvetlenül le is játszhatjuk:

pacat -p valami.raw

Természetesen a kimenetet rögtön pipe-olhatjuk a lame vagy az oggenc eszközök valamelyikének, így röptében is tömöríthetjük a hanganyagot.

Nézzünk példát arra, ha az éppen lejátszás alatt lévő - tehát hangszóróra menő - stream-et szeretnénk rögzíteni egy wav file-ba:

pacat -rd "`pactl stat | grep '^Default Sink:' | cut -d' ' -f3`.monitor" --file-format audio.wav

Rögzítés után a file lejátszható:

paplay audio.wav
el Papi Creative Commons License 2010.07.30 0 0 57
azt elhiszem, de azert irtam oda az elejere, h akik nem azzal akarnak szenvedni h osszelojek a SIP kliensuket a pulseaudioval es szeretnenek hasznalni egyet out-of-the-box, azoknak jo ez.
Ekiga, Qutecom illetve Xlite ezek nalam mind elhasaltak. utobbi 2-nel altalaban ugy hogy a kb. fel percig birtak a beszelgetest utana megadtak magukat.
Előzmény: locsemege (56)
locsemege Creative Commons License 2010.07.30 0 0 56
A korrekt az lenne, ha használná a pulseaudio-t.
Előzmény: el Papi (55)
el Papi Creative Commons License 2010.07.30 0 0 55
Nem. :-)
Helyette hasznalja az alsa-t rendesen (anelkul h osszeakadna a pulseaudioval).
Előzmény: locsemege (54)
locsemege Creative Commons License 2010.07.30 0 0 54
Tehát mi van a Twinklével? Használja a PulseAudio szervert rendesen?
Előzmény: el Papi (53)
el Papi Creative Commons License 2010.07.30 0 0 53
Egy tipp azoknak akik SIP kliens szeretnenek hasznalni linux alatt de gondjaik vannak azzal a Pulseaudio miatt es lustak annak konfiguralasaval/kihajitasaval bajlodni: Twinkle
locsemege Creative Commons License 2010.07.22 0 0 52
Én inkább úgy sejtem, hogy a TV-vevő bekapcsolódik, inicializálatlan, aztán amikor a firmware-e, vagy a hozzá tartozó kernel modul, vagy akinek ez dolga, eljut oda, akkor elnémítja a hangkimenetét.
Előzmény: suto (51)
suto Creative Commons License 2010.07.22 0 0 51
Köszi!

Elég volt a store, a visszatöltés automatikusan megy. Most már van hangerő a bemeneten, nem kell állítgatni, mielőtt elindítom a tv progit.

Mellékhatás: ismét fehér zaj hallható pár másodpercig a display manager indulásakor és bejelentkezés után szintén. Logikus, hiszen hangot adtam a line-in -nek. Olyankor valamiért bekapcsolhatja a tv-vevőt pár másodpercre.
Előzmény: locsemege (50)
locsemege Creative Commons License 2010.07.21 0 0 50
Miután beállítottad az alsamixerrel igény szerint, root joggal tedd ezt:

alsactl store

A /etc/rc.d/rc.local file-ba pedig tégy egy ilyen sort:

[ -f /etc/asound.state ] && alsactl restore

Ha leálláskor ad esetleg egy FAILED üzenetet a rendszer, az azért lehet, mert sima felhasználóként próbálna menteni talán az asound.state file-ba, amely a root által írható. Ezen régen elgondolkodtam, akkor tudtam, miért van, logikus, most hagy ne kelljen végiggondolni. Az a lényeg, hogy adhat hibát, de ez nem baj, mert pont az a lényeg, hogy ne az az állapot kerüljön mentésre, ami utoljára volt, hanem az, amit az alsactl store paranccsal mentettél. Tehát ha a gép leállásakor hibát ad, az nem hiba ebben az esetben. :)

Arra figyelj, hogy mielőtt az alsactl store parancsot root joggal kiadod, minden, ideértve a keverőt, elsősorban jelszintek, hangerő vonatkozásában egy általánosan használt kellemes, kívánt szintre legyen beállítva.
Előzmény: suto (49)
suto Creative Commons License 2010.07.21 0 0 49
Már megint gondjaim vannak a hanggal. Na nem nagy gondok, csak kis bosszantóak. Most Fedora 13 alatt.

Korábbi (F12 és előtte) telepítéseknél az volt a gondom, hogy rendszerindításkor fehér zajt szólaltatott meg a hangbemenetre (line in) kötött tv-kártyáról.

Most ez megoldódott. Ugyanis a hangbemenet alapból némítva van. Elég hatásosan, ugyanis hiába piszkálom a hangbeállításokat (konkrétan a bemenetnél kiválasztottam a line-in-t és ott állítgattam a hangerőt, meg a némítást ki-be), nem történik semmi.

Viszont az alsamixer -c0 -t indítva meg tudtam szüntetni a némítást és tudtam hangerőt állítani a line-in-nek. Csak ezt nem jegyzi meg. Ha jól rémlik, az alsactl használható erre.

Na, majd kipróbálom, legfeljebb visszajön az indításkor hallott fehér zaj.
locsemege Creative Commons License 2010.05.30 0 0 48
Értem, köszönöm. Tehát a szükséges kernelmodulok betöltése volt a megoldás.
Előzmény: hg7juv (47)
hg7juv Creative Commons License 2010.05.30 0 0 47
Ok, a lényeg:

Debian Squeeze testing, kernel 2.6.32.-3-trunk
Hangkártya: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50)

A hiba oka:
a rendszer betöltésekor nem töltődött be a hangkártya meghajtó, így nem kerültek létrehozásra az eszközök. A portaudio-val csak bizonyos alkalmazások működnek együtt. Amit én szerettem volna használni az egy konzolos VoIP szerver alkalmazás. (SvxLink)

A probléma megoldása:
A /etc könyvtárban lévő modules fájlba beírásra került az snd-via82xx sor azaz a hangkártya drivere. Így rendszerbetöltéskor létrejönnek a hiányzó hangeszközök.
adsp, audio, dsp, mixer.

Röviden ennyi.
Előzmény: locsemege (46)
locsemege Creative Commons License 2010.05.29 0 0 46
Leírnád, hogyan? Hátha tanulságos másnak is.
Előzmény: hg7juv (45)
hg7juv Creative Commons License 2010.05.29 0 0 45
Probléma megoldva! :)

Tnx!
Előzmény: hg7juv (44)
hg7juv Creative Commons License 2010.05.29 0 0 44
No, hülyeséget írtam reggel. :) Nem pulseaudio hanem portaudio.
Változás nincs, ellenben a /dev/snd könyvtárban van pár fájl:

pcmC0D0c
pcmC0D0p

Csak azért írtam ezt a kettőt, mert ezek tünnek hangeszköznek, de hiába állítom be bármelyiket is a program konfigjába ez az eredmény:

root@debian:/etc# svxlink
SvxLink v0.11.0pl1 (Mar 7 2010) starting up...

Using configuration file: /etc/svxlink.conf
--- Using sample rate 16000Hz

Starting logic: SimplexLogic
SNDCTL_DSP_GETCAPS ioctl failed: Oda nem illő ioctl az eszközön
SNDCTL_DSP_GETCAPS ioctl failed: Inappropriate ioctl for device
*** Error: Could not open audio device for receiver "Rx1"
open audio device failed: No such file or directory

Valami ötlet?
hg7juv Creative Commons License 2010.05.29 0 0 43
Ok, köszönöm a javaslatot, megnézem mind a kettőt!
Előzmény: locsemege (42)
locsemege Creative Commons License 2010.05.29 0 0 42
Javaslom ennek valamint ennek az oldalnak a tanulmányozását!

Can I get OSS and ALSA applications to work with PulseAudio?

Yes, you can! OSS applications are handled using the padsp utility shipped with PulseAudio:

padsp myapp <arguments to myapp>

ALSA applications are handled using the PulseAudio backend for alsa-lib. Documentation and the backend itself are shipped in the alsa-plugins package as part of the ALSA project.


A pulseaudio alapvetően nem úgy használható, mint az OSS, viszont van wrapper rétege ehhez.
Előzmény: hg7juv (41)
hg7juv Creative Commons License 2010.05.29 0 0 41
Sziasztok!

Meg tudná valaki mondani, hogy Pulseaudio a /dev könyvtárban milyen néven találom meg a hangeszközt? dsp, audio néven semmi. Futtatni akarok egy VoIP alapú szervert és a konfigban meg kell adni az eszközt.
Rendszer: Debian Squeeze testing.
Egyébként hang van, mert más hangeszközt használó programok futnak rendesen, van hang.

Köszi a segítséget!
locsemege Creative Commons License 2010.04.16 0 0 40
Tapasztalataim szerint a PulseAudio még mindig több sebből vérzik. Végrehajtottam egy olyan kísérletet, amelyben két gép lokális hálózaton van, az egyiken audacious2 játszik le zenét, a PulseAudio RTP Multicast hálózatra teszi a stream-et, a másik gép PulseAudio hangszervere felszedi azt, s a lokális hangkártyáján hallhatóvá teszi.

A kísérlet ugyan sikerült, most másodjára stabilan megy egy órája, ugyanakkor első nekifutásra sikerült egy olyan állapotot előidéznem, hogy szaggatottan játszott le, és valahogy furcsán vinnyogva. Mintha teszem azt, minden második hangmintát küldene a hangkártyára, vagy nem 44.1 kHz mintavételi beállítást használna, persze úgy, hogy közben elfelejt resampling-et csinálni. Aztán emiatt kiszalad a buffer, megvárja, míg feltöltődik, aztán megint gyorsabban játszik le. Fura volt, s mintha az idő előrehaladtával nőtt volna a szünet ideje, s csökkent a vinnyogva lejátszás ideje.

További problémám, hogy erős gépeken - a stream-et küldő egy 2.5 GHz-es 2 magos AMD, a stream-et fogadó egy 3 GHz-es 4 magos AMD - képes eközben a PulseAudio 14%-os, illetve 10%-os CPU használatot összehozni.

Értem én, hogy a feladatnak van nehézsége, hiszen minden merev időzítésű. Maga a hanganyag 44.1 kHz mintavételű, a hangkártya ugyanígy fogadja be az adatot, de fizikailag másik gép, így másik órajel. Ha a tunkoló oldal siet, akkor lassan, de hízik a buffer, ha a stream-et fogadó oldal siet, akkor idővel buffer underflow lesz. Nem véletlen az, hogy elvileg a telefonos hálózatok a maguk 8 kHz mintavételével - CCITT G.711 - az egész világon szinkronban járnak, s az eszközök PLL-el ráhúznak a központ órajelére frekvenciában. Tehát átérzem a feladat nehézségét.

Amit szerintem csinálni lehet, hogy buffer overflow esetén néha egy-egy hangmintát el kellene dobni - aligha hallatszik ez meg -, buffer underflow esetén pedig egy-egy extra hangmintát be kell szúrni - célszerűen az utolsót megismételni. Vagy valamilyen metóduson keresztül biztosítani a szinkront. Hiszen máris nem olyan merev a lejátszás, ha az időzítést a hangkártya adja, a hálózatra meg nem forszírozva mennének az adó oldalon a csomagok, hanem akkor, amikor a vevő bufferében már csak kevés hanganyag van.

Mindegy is, a szösszenetem lényege, hogy noha működésre bírható, ugyanakkor egyelőre bugzik a PulseAudio. Továbbra is tartom magam ahhoz a megfigyeléshez, hogy ha valamiért úgy jönnek össze a fázisviszonyok, hogy a PA sok futásidőt visz, akkor nagyon vacak, recseg-ropog a hang, ha viszont kevés futásidőt emészt fel, jól működik. Fura módon erős gépen a Skype nagyon sok futásidőt visz, de olyankor a PulseAudio is. Szokott is ropogni, akadozni a hang.
locsemege Creative Commons License 2010.02.10 0 0 39
A SuSE tűzfalán masquerade-et kell beállítani, s akkor lesz net a vistás gépen is.
Előzmény: cwpa (38)
cwpa Creative Commons License 2010.02.07 0 0 38
Vágyni és tudni nem ugyanaz. Nem tudom hogy kell.
Amúgy a DNS régóta ennyi.
Egyébbként a következő konfigurációm van:
T mobiel net => PC (suse 11.2) ==UTP crossover==> laptop (vista).
Tudom, hogy kellene egy router, az UTP kábel viszont sokkal olcsóbb (3G route 30e Ft). A net nem megy át a vistás géphez.
Ha leíród a szerveres megoldást, légyszives ezt vedd figyelembe, hátha megoldódik ez is.
Előzmény: locsemege (37)
locsemege Creative Commons License 2010.02.07 0 0 37
Jó, jó, de nem az igazi. Ez egészen addig működni fog, amíg a szolgáltatód nem változtatja meg a DNS szerverének IP címét. Látom, nem nagyon vágysz indítani egy DNS szervert a gépeden, amely ki is szolgálna téged a loopback device-on...
Előzmény: cwpa (35)
cwpa Creative Commons License 2010.02.06 0 0 36
Ez a megoldás bevállt. Köszi.
Előzmény: locsemege (34)
cwpa Creative Commons License 2010.02.06 0 0 35
Úgynézem ez bevált- egyből megtalálta. Köszi.

Különben a Banshee szuper jól megy az Amarok meg nem. Ez csak mellékes most már, szól a zene Banshee-böl és az elég.
Előzmény: locsemege (34)
locsemege Creative Commons License 2010.02.06 0 0 34
Egyébként az is megoldás lehet, ha a 84.2.44.1-et fixen bedrótozod DNS-nek.
Előzmény: cwpa (32)
locsemege Creative Commons License 2010.02.06 0 0 33
Azt mondom, hogy amikor azt hiszed, hogy nincs net, akkor is van. Csak névfeloldás nincs. Indíts már egy névszervert a saját gépeden, aztán add meg DNS-nek a 127.0.0.1-et, és jó lesz.
Előzmény: cwpa (31)
cwpa Creative Commons License 2010.02.06 0 0 32
Nem tette ki a képet. Megpróbálom újra.internet konfig.
Előzmény: cwpa (31)
cwpa Creative Commons License 2010.02.06 0 0 31
Itt a konfiguráció amikor van net. Amikor nincs, akkor az elsődleges és másodlagos DNS-nél nincs semmi.
Előzmény: locsemege (30)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!