Bash-al hangerőt szabályozni.

Sziasztok!

Egy olyan "programot" kértek tőlem a melóhelyemen mely egész nap egy netrádiót üzemeltet, illetve bizonyos időközönként lejátszik egy 10-15mp-es információs hangot. Én erre a feladatra egy shell script + mplayer megoldást választottam(X nincs a gépen.). Ez működik is, csak van egy kis szépséghibája. Mikor lelövi a netrádiót és lejátsza a spot-ot eléggé hirtelen történik ez, néha egy apró kis csattanással egybekötve ami nem tesz túl jót az idegeknek :) Ezért gondoltam egy olyanra, hogy mielőtt leállna a webrádió a hangerőt le kéne vinni nullára szép lassan, majd újból felnyomni... Sajnos a neten nemnagyon találltam erre megoldást.. Márcsak bennetek bízom :)

Köszi..

Hozzászólások

ha alsa-d van akkor amixer a barátod pl.:

amixer cset name='PCM Capture Volume' 500

de van sok egyéb parancssoros mixer program, csodálkoznék ha
nem lenne a google első találatai között

Celeron-M 1400Mhz, 768M, Debian SID, 2.6.22

"BASHd+, halkítsd má' le azt a hangfalat!"

Nem tudom milyen hangkartyad van, de nekem asus alaplapon onboard hangkartyaval hiaba modositom a master erteket (alsamixerben az elso oszlop) nem modosul a hang. A PCM-t kell modositanom ahhoz, hogy tenyleg modosuljon a hangero. Ugyhogy ha a -v opcioval nem mukodik ne ilyedj meg. A PCM talan a -w, de igy fejbol nem vagyok benne teljesen biztos. De mint ahogy emlitettek "man aumix" :}}

Kicsit reszletezned ezt picit? Ez az aumix-nek egy parameter, vagy alsa-ban kell allitani?

Miert is kerdem. Egy ismerosomnek is szinten a kovetkezo gondja van: Adott egy logitech billentyuzet rajta nehany multimedia gomb-al. KDE szepen le is kezeli, es beallitja a hang le-fel huzogatasra. Csakhogy a le-fel huzogatast a master csatornan vegzi (alsamixerben az elso oszlop), ami sem nalam, sem az ismerosomnel nem hasznal semmit, nem modosul vele a hangero.
Emiatt kerdem, hogy be lehet allitani alsa-ban, hogy melyik legyen a mixer csati? Vagy milyen sorrendben jelenjenek meg a kulonbozo csatornak?
KDE-ben nem talaltam olyan beallitast, hogy a multimedia billentyukre megadhassam milyen csatornat kontrollaljanak.

Remelem erthetoen fogalmaztam, es elnezest hogy nem teljesen var a topic temajaba :}}

Hmm, ALSAban most igy hirtelen nemtudom ense. Inkabb a programnak tudod megmondani hogy melyik csatornat hasznalja mixernek. amixerrel viszont betudod allitani hogy mit allitson
(pl. nekem igyvan a bill-es hangero tekero blackbox alatt: [execute] (logitech_volup) {amixer set PCM 5%+ > /dev/null 2>&1})

Sziasztok!

Közben adódott még1 problémám.. és mivel 1szer már sokat segítettetek így talán most is tudtok..
Szóval a fentebb már leírt webrádió szépen múűködik már csak 1 gond van.. ha elindul egy komolyabb letöltés 1-2 perc után leáll a rádió és nem is indul újra. Az Mplayer-ben nem találtam erre megoldást.. esetleg van arra lehetőség, hogy a hangkártya kimeneti jelszintjét vhogy figyeljem?

Csak kerül ilyenkor valami hibaüzenet a /var/log/messages logfájlba...
Ha igen, akkor greppeljen az "őrző szkripted" arra.

Ha mégsincs a logban semmi árulkodó bejegyzés, akkor bizonyos időközönként akár a szkripted is ellenőrizheti a stream-et: indíthat rá egy lejátszót, aztán figyeli annak az üzeneteit. Ha az aszongya, nincs stream, akkor a szkript restartolhatja a stream szervert.

Lehetőség mint a tenger, még akkor is, ha nem akarod a letöltéseket sávkorlátozni - ami szerintem is a jobbik megoldás lenne.

---
Mondjon le!

Mplayer meg a syslog - csak egy kis humor akart lenni, igaz-e? :-)

Tényleg a letöltéseket kellene korlátozni. Végülis a médiaszerverként való működés "üzleti folyamat", míg a letöltések egyáltalán nem cégkritikusak (gondolom nem fogtok attól csődbe menni, mert egy 100 megás anyag nem 1 hanem mondjuk 5 perc alatt ér át).

Szerintem a hiba megoldása a Linux tűzfal beüzemelése lesz. Ha fontos a médiaszerver,akkor szerezz időt rá. Ha nem fontos senkinek, hagyd az egészet a fenébe.

És azt ki mondta neked, hogy itt az mplayer-t kellene kilőni?
Az mplayer nehezen fog neked stream-et "szórni" a netre. Ő csak helyi média lejátszói funkciót lát el, a helyi funkciójában pedig aligha fogja zavarni a hálózati sávszélesség szűkössége. Nyilván a stream szervere (icecast, ices, vagy akármi) akad ki.

Vagy csak vicceltél amikor az mplayert emlegetted?

---
Mondjon le!

Akkor megsúgom, hogy a médiaszerverek sem azok a logolós típusok. Kb. mint apache (legalábbis icecast ilyen, ez biztos). De a médiaszerver felépítése miatt sem lehet érzékeny a megszakadásra.

A kollega azt mondta, hogy az mplayer-rel van gond, *cast-ot nem is említett, így feltételeztem, hogy az mplayer közvetlen szolgáltatja az adót (akár valamilyen patch segítségével). Meg a *cast szerverek általában passthru dolgoznak, így ha elakad a lejátszás, az inkább a forrás hibája lehet. Ha pedig a sávszéllel van gond, akkor pedig a letöltés lehet a probléma - erre megoldás a tűzfal.