Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2015-05-28 11:00:57

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Nadawanie właściwości grupie strumieni audio

Problem raczej znany, pulseaudio + skype = mute wszystkich aplikacji za wyjątkiem samego skype, przynajmniej w ogromnym skrócie. Sam "problem" udało mi się rozwiązać bez większego problemu ale pojawił się za to inny. Generalnie rzecz biorąc wszystko sprowadza się do właściwości strumieni audio, które trafiają do serwera pulseaudio, a te z kolei można nadawać zgodnie z rozpiską, która jest pod http://0pointer.de/lennart/projects/pulseaudio/doxygen/proplist_8h.html . innymi słowy, jeśli chcemy zmienić smplayerowi media.role na video, to odpalamy go via:

Kod:

PULSE_PROP='media.role=video' smplayer film.mp4

Nie chce mi się tego typu linijek wpisywać w każdy skrót wszystkiego co potrafi odtwarzać dźwięk, zatem jest pytanie: jak najlepiej zebrać te wszystkie aplikacje A/V i nadać im określone właściwości?

Offline

 

#2  2015-05-28 11:17:35

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Nadawanie właściwości grupie strumieni audio

Dużo masz tych programów AV?

Bo może wystarczy przeedytować skróty w [b]~/.local/share/applications[/b]
i porobić aliasy w powłoce.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2015-05-28 12:21:59

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Nadawanie właściwości grupie strumieni audio

Aplikacji nie jest dużo ale zawsze trzeba brać pod uwagę, że mogą dojść nowe i przydałoby się opracować taki system by uwzględniał ewentualne zmiany w liście zarządzanych programów.

Chcę unikać edycji skrótów czy tworzyć nowych, to ma być generalnie niezależne od sposobu wywoływania procesu (konsola, własne skróty na panelach, pliki xdg, autostart, shell) . Da radę przy inicjacji procesu, np na podstawie jego nazwy, nadać mu odpowiednie opcje dla pulse? To są zwykłe zmienne systemowe przecie.

Offline

 

#4  2015-05-28 12:33:56

  Pavlo950 - człowiek pasjonat :D

Pavlo950
człowiek pasjonat :D
Zarejestrowany: 2012-02-20
Serwis

Re: Nadawanie właściwości grupie strumieni audio

A ja mam pytanie.

Czy pulse / apulse dla Skype to konieczność?

Offline

 

#5  2015-05-28 12:37:46

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Nadawanie właściwości grupie strumieni audio

W powłoce to chodzi trochę inaczej, w środowisku graficznym trochę inaczej, nigdy mi aliansy powłoki nie chciały brykać w środowisku graficznym.

Chyba, ze by zrobić własne skrypty, które odpalają program ze zmiennymi, i ustawić w xdg - żeby je wywoływał przy odpowiednim typie pliku, a w konsoli po nazwie skrypta.

Jak zapiszesz sobie np [b]/usr/loca/bin/smplayer[/b] to będzie w powłoce startował zamiast oryginalnego Smplayera (to zależy od kolejności ścieżek w zmiennej $PATH w  /etc/profile).

[quote="Pavlo950"]Czy pulse / apulse dla Skype to konieczność?[/quote]
Konieczność, Skype ma wyłączone wyjście Alsy, można w nim ustawić tylko PA.
Przy czym z Apulse działa grzecznie.

Ostatnio edytowany przez Jacekalex (2015-05-28 12:39:59)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#6  2015-05-28 13:09:27

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Nadawanie właściwości grupie strumieni audio

Nie było by problemu gdyby ludzie te swoje aplikacje dostosowywali do pulseaudio.

Przykładowo jest amarok i ts3. One mają prawdopodobnie ustawione rolę na music i phone. Nie mam pojęcia jak to sprawdzić, a że mam zdefiniowane póki co trzy -- music, video i phone -- to skoro działa, znaczy, że raczej takie mają przypisane role. xD

Do wyboru jest trochę więcej:

Kod:

    "video": for movie/video streams from media players
    "music": for music streams from media players
    "game": for audio from games
    "event": for event sounds (i.e. button clicks, ...)
    "phone": for phone data (i.e. voip speech audio)
    "animation": for animations (i.e. Flash)
    "production": for audio production applications.
    "a11y": accessibility applications (i.e. screen readers, ...) This is a property of the actual streamed data, not so much the application. However usually it is still safe to simply set a process-global environment variable.

I mając np. Skype (choć akurat tego nie mam) albo TS3, to jak ktoś zaczyna gadać i u siebie go słyszę na słuchawkach, to automatycznie amarok jest przyciszany do 60% (do zdefiniowania) max głośności, podobnie gdy ja zaczynam gadać. I to w przypadku amaroka i ts3 działa OOTB bez żadnych dodatkowych czynności i efekt jest wręcz powalający. xD

Z tego co widzę, vlc również reaguje na automatyczne przyciszanie, więc ma prawdopodobnie ustawione video. SMPlayer, mpv, mumble już nie działają i tu trzeba ręcznie ustawiać właściwości strumieni.

Może jeszcze napiszę do każdego z tych powyższych i się spytam czy może by nie zaimplementowali tej bardzo użytecznej funkcji. xD

Offline

 

#7  2015-05-28 13:55:06

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Nadawanie właściwości grupie strumieni audio

Wychodzi na to, że mpv nawet miał chyba to zaimplementowane ale wywalił bo ludzie zgłaszali, że im pulse mutuje dźwięk i potraktowali to jako bug w pulse. https://github.com/mpv-player/mpv/issues/1173 Co to się porobiło w tym świecie linuxowym.

Może się uda ich nakłonić do implementacji tego ficzera z powrotem xD

No już wiem jak sprawdzić czy aplikacja ma ustaiowną jakąś rolę -- poniżej amarok:

Kod:

May 28 14:02:11 morfikownia pulseaudio[61212]:     media.role = "video"
May 28 14:02:11 morfikownia pulseaudio[61212]:     media.name = "audio stream"
May 28 14:02:11 morfikownia pulseaudio[61212]:     application.name = "Amarok"
May 28 14:02:11 morfikownia pulseaudio[61212]:     native-protocol.peer = "UNIX socket client"
May 28 14:02:11 morfikownia pulseaudio[61212]:     native-protocol.version = "30"
May 28 14:02:11 morfikownia pulseaudio[61212]:     application.id = "org.kde.phonon.amarok"
May 28 14:02:11 morfikownia pulseaudio[61212]:     application.version = "2.8.0"
May 28 14:02:11 morfikownia pulseaudio[61212]:     application.icon_name = "amarok"
May 28 14:02:11 morfikownia pulseaudio[61212]:     application.language = "C"
May 28 14:02:11 morfikownia pulseaudio[61212]:     application.process.id = "61277"
May 28 14:02:11 morfikownia pulseaudio[61212]:     application.process.user = "morfik"
May 28 14:02:11 morfikownia pulseaudio[61212]:     application.process.host = "morfikownia"
May 28 14:02:11 morfikownia pulseaudio[61212]:     application.process.binary = "amarok"
May 28 14:02:11 morfikownia pulseaudio[61212]:     window.x11.display = ":0"
May 28 14:02:11 morfikownia pulseaudio[61212]:     application.process.machine_id = "159815709bbc46c29ef786cfc497afd4"
May 28 14:02:11 morfikownia pulseaudio[61212]:     application.process.session_id = "1"
May 28 14:02:11 morfikownia pulseaudio[61212]:     module-stream-restore.id = "sink-input-by-media-role:video"

Ktoby pomyślał, że dali mu video. xD Tak czy siak to jest log z pulse (opcja -v)

Ostatnio edytowany przez morfik (2015-05-28 14:05:56)

Offline

 

#8  2015-05-28 14:05:56

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Nadawanie właściwości grupie strumieni audio

Programy zazwyczaj mają wyjście Alsa lub OSS.
PA czy Jack jak chcą z nimi gadać, to powinny być zgodne z API Alsy, i np przy Jack-audio nie ma z tym problemu, z PA natomiast niczego nie można być pewnym.


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9  2015-05-28 14:10:04

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Nadawanie właściwości grupie strumieni audio

Już się wyjaśniło czemu mumble nie działa jak trza: xD

Kod:

module-stream-restore.id = "sink-input-by-media-role:game"

Trzeba będzie do nich napisać by to przepisali na phone. xD

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.007 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00009 SET CHARSET latin2
0.00003 SET NAMES latin2
0.00102 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.21.21.209' WHERE u.id=1
0.00081 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.21.21.209', 1732530222)
0.00048 SELECT * FROM punbb_online WHERE logged<1732529922
0.00051 SELECT topic_id FROM punbb_posts WHERE id=287608
0.00006 SELECT id FROM punbb_posts WHERE topic_id=27442 ORDER BY posted
0.00054 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=27442 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00084 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=27442 ORDER BY p.id LIMIT 0,25
0.00089 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=27442
Total query time: 0.00533 s