Ver la Versión Completa : [ CONSULTA ] Grabar sonido de diferentes canales de audio
SmartPhoneLover
22/12/16, 17:18:10
Esta vez estoy intentando grabar el sonido in-call y out-call cuando se hace una llamada VoIP, pero no he logrado dar con ninguna forma hasta ahora. También me gustaría conocer el ID de cada dispositivo de audio instalado en un móvil: hay algun comando para ello?
Conocen alguna en Android?
Caravantes
23/12/16, 00:01:50
estoy intentando grabar el sonido in-call y out-call cuando se hace una llamada VoIP, pero no he logrado dar con ninguna forma hasta ahora.
No estoy seguro de entender lo que quieres decir con las expresiones "in-call" y "out-call". La acción "Grabar audio" puede tomar como "Origen" de audio los siguientes canales:
- Por defecto.
- Micrófono.
- Llamada saliente.
- Llamada entrante.
- Llamada.
Supongo que al decir "in-call" y "out-call" te estás refiriendo a llamada entrante y llamada saliente. Pero creo que eso solo es aplicable a transmisiones telefónicas convencionales, y yo diría que en las llamadas VoIP no hay línea telefónica en uso porque la transmisión se hace a través de Internet. Aunque VoIP sea un protocolo definido para comunicación de tipo "telefónico", los procedimientos y los canales son distintos a una llamada telefónica clásica.
Supongo en en llamadas VoIP, lo que procede es interceptar la transmisión de datos a través del puerto (lógico) de comunicaciones, o algo así, y grabar el stream en un archivo con formato de audio. Pero también supongo que esto no puede hacerse desde Tasker.
La alternativa es tan simple como tosca: consiste en grabar a través del micrófono, y teniendo el altavoz activado para que se capte decentemente al otro interlocutor.
He probado bastantes apps que graban llamadas (línea telefónica, nada de VoIP), con diferentes dispositivos. En muchos casos no es posible grabar de la línea telefónica (limitaciones impuestas por el fabricante del dispositivo), y hay que terminar usando el truco de grabar a través del micrófono, como te he dicho. Las apps de grabación permiten ajustar eso en la configuración de la app.
GraphicAdventure
23/12/16, 05:46:16
Sea una llamada por operadora o VoIP, si el fabricante no lo permite no puedes.
Hay módulos de Xposed para ciertos móviles que sí te permiten grabar y algunas ROMs modificadas.
Para el ID de cada dispositivo de audio, prueba en la consola:
(almacenar salida en: %id, usar root: seleccionar)
cat /proc/asound/cards
cat /proc/asound/cardx/id (x = número del dispositivo)
SmartPhoneLover
23/12/16, 21:29:18
Hola a los dos ;)
No me expliqué bien, aunque los dos habeis entendido a lo que quiero llegar.
Lo estoy intentado es poder grabar conversaciones VoIP de WhatsApp, pero hasta ahora no he podido dar con ninguna forma. He visto que probablemente con alsa (ffmpeg) se puede hacer pero como no hay repoditorios para Android (creo)...
Y lo de saber los dispositivos de audio de mi dispisitivo era para identificar la fuente de audio correcta que corresponda al minialtavoz de oreja (por el que se escucha a la otra persona), y grabar dicha fuente.
Caravantes
24/12/16, 00:13:43
Y lo de saber los dispositivos de audio de mi dispisitivo era para identificar la fuente de audio correcta que corresponda al minialtavoz de oreja (por el que se escucha a la otra persona), y grabar dicha fuente.
Me caben muchas dudas sobre la posibilidad de usar el minialtavoz o auricular como fuente para capturar audio. En algunos sistemas informáticos se separan radicalmente los periféricos de entrada y los de salida, y no es posible hacer que un elemento de salida sea usado como si fuese elemento de entrada.
También puede ocurrir que la tecnología lo permita y sean los fabricantes del dispositivo los que estén poniendo limitaciones, como creo que ocurre con las grabaciones de conversaciones telefónicas: son pocos los dispositivos que permiten grabar el audio directamente de la línea telefónica. Si se pudiera grabar audio del minialtavoz, los desarrolladores de apps que graban conversaciones telefónicas probablemente estarían ofreciendo esa posibilidad, cosa que nunca he visto.
GraphicAdventure
24/12/16, 04:40:24
Lo estoy intentado es poder grabar conversaciones VoIP de WhatsApp
Te endendí perfectamente pero te digo lo mismo. Si el Kernel no lo permite "no hay tutía".
Pero si quieres intentarlo dale:
ls /dev/snd
pcmCxDxp (p = playblack)
pcmCxDxc (c = capture)
SmartPhoneLover
24/12/16, 13:01:09
Te endendí perfectamente pero te digo lo mismo. Si el Kernel no lo permite "no hay tutía".
Pero si quieres intentarlo dale:
ls /dev/snd
pcmCxDxp (p = playblack)
pcmCxDxc (c = capture)
But Pero esos comandos solo funcionan en caso de tener alsa instalado?
Estos son los medios que me aparecen en mi dispositivo:
https://www.imagensn.com/images/2016/12/24/Screenshot_2016-12-24-13-02-28.md.png https://www.imagensn.com/images/2016/12/24/Screenshot_2016-12-24-13-07-46.md.png
SmartPhoneLover
24/12/16, 13:13:16
Y por otra parte, accediendo a los dispositivos anterior no sería posible capturar los datos con el simple comando (ffmpeg -i /dev/snd/hwCxDx ARCHIVO.extension)?
Y que tal grabar audio directamente con ffmpeg o sox? De esta manera se dejaría de usar la función interna de tasker.
GraphicAdventure
27/12/16, 21:35:56
Los comandos son inherentes al sistema, solo hay que indicar la ruta. Linux usa ALSA actualmente, OSS está obsoleto.
Si un dispositivo de audio ya está siendo usado no creo que te permita capturarlo. Pero eres libre de hacer experimentos. :-)
Grabar directamente con ffmpeg tienes el beneficio de poder elegir más codecs como MP3 pero para una eventual grabación de voz no lo veo necesario. Se usa más para video.
Para acceder al dispositivo si no permite con la ruta tendrás que usar este formato: hw:x,y (x=dispositivo, y=subdispositivo).
Tampoco te puedo decir más ya que no lo utilizo.
Suerte. ;-)
SmartPhoneLover
28/12/16, 08:32:07
mmm había visto la forma alternativa (hw:x,y) también, ver a ver que tal funciona.
Por otra parte, he intentado buscar alsa en android pero encuentro repositorios. Quizas ALSA se llamae de diferente manera en Android? o es igual?
GraphicAdventure
31/12/16, 00:06:15
A ver, Android es Linux y la arquitectura de sonido que usa es ALSA.
Para la librería de sonido que es la interfaz, puede usar libasound o tinyALSA, eso ya depende del fabricante.
Habrá móviles con la librería tinyALSA y otros con libasound pero el sonido es ALSA.
No sé que andas buscando. :pensando:
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.