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  2014-03-30 03:21:18

  morfik - Cenzor wirtualnego świata

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

Nagrywanie dźwięku z aplikacji

Tak sobie szukam jak tu zastąpić nagrywanie tego co jest w głośnikach i znalazłem nawet zadowalające rozwiązanie w postaci modułu:

Kod:

modprobe snd-aloop

i dodatku do asound.conf

Kod:

pcm.!default {
  type asym
  playback.pcm "LoopAndReal"
  #capture.pcm "looprec"
  capture.pcm "hw:0,0"
}

pcm.looprec {
    type hw
    card "Loopback"
    device 1
    subdevice 0
}


pcm.LoopAndReal {
  type plug
  slave.pcm mdev
  route_policy "duplicate"
}


pcm.mdev {
  type multi
  slaves.a.pcm pcm.MixReale
  slaves.a.channels 2
  slaves.b.pcm pcm.MixLoopback
  slaves.b.channels 2
  bindings.0.slave a
  bindings.0.channel 0
  bindings.1.slave a
  bindings.1.channel 1
  bindings.2.slave b
  bindings.2.channel 0
  bindings.3.slave b
  bindings.3.channel 1
}


pcm.MixReale {
  type dmix
  ipc_key 1024
  slave {
    pcm "hw:0,0"
    rate 48000
    #rate 44100
    periods 128
    period_time 0
    period_size 1024 # must be power of 2
    buffer_size 8192
  }
}

pcm.MixLoopback {
  type dmix
  ipc_key 1025
  slave {
    pcm "hw:Loopback,0,0"
    rate 48000
    #rate 44100
    periods 128
    period_time 0
    period_size 1024 # must be power of 2
    buffer_size 8192
  }
}

Odpaliłem audacity i po ustawieniu odpowiedniego mica, audacity nagrywa to co leci w głośnikach. ALe ja chciałbym zrobić dodatkowo kilka rzeczy.

1. zapis dźwięku automatycznie do pliku, może być w mp3, może być w innym formacie
2. wybranie aplikacji, której dźwięk się będzie nagrywać.
3. nagranie mica i głośników i zapisanie tego do pliku, mogą być nawet i osobne pliki

Obecnie to zgrywa wszystko co jest na głośnikach i trzeba do tego używać audacity lub innego programu do nagrywania dźwięku.

Istnieje jakiś sposób by zapisać do pliku dźwięk z określonej aplikacji?

EDIT:

Niby jest takie coś:

Kod:

pcm.teemp3 {
    type file
    format "raw"
    slave.pcm "default"
   file '|/usr/bin/lame -S -r -s %r --bitwidth %b -m j - /tmp/asound-$$.mp3'
}

I po ustawieniu urządzenia teemp3 w programie, nawet zapisuje do pliku, problem jest taki, że nie zawsze chciałbym nagrywać coś a to przełączanie się może być trochę upierdliwe.

Może da radę to jakoś wyciągnąć z tego loopbacka?

Ostatnio edytowany przez morfik (2014-03-30 03:30:53)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.009 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00012 SET CHARSET latin2
0.00007 SET NAMES latin2
0.00213 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.12.154.121' WHERE u.id=1
0.00135 UPDATE punbb_online SET logged=1716237525 WHERE ident='3.12.154.121'
0.00035 SELECT * FROM punbb_online WHERE logged<1716237225
0.00057 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=25523 AND t.moved_to IS NULL
0.00029 SELECT search_for, replace_with FROM punbb_censoring
0.00114 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=25523 ORDER BY p.id LIMIT 0,25
0.00094 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=25523
Total query time: 0.00696 s