1 votos

Utilizar el comando Screencapture para grabar la pantalla -- ¿Cómo obtener el id de la fuente de audio?

Quiero escribir un script programado para utilizar el comando screencapture para grabar la pantalla automáticamente en segundo plano, así:

$ screencapture -v -V 60 output.mov -A xxxx

'xxxx' es el id de la fuente de audio. Tengo que especificar este parámetro para grabar el audio interno de MacOS, utilizando un dispositivo de audio virtual como Soundflower y sin la identificación de la fuente de audio especificada, los vídeos capturados siempre se silencian.

¿Cómo puedo obtener los ID de todos los dispositivos de audio de la forma más sencilla? He probado muchas aplicaciones y scripts pero no he podido encontrar la solución.

2voto

uasi Puntos 121

El -A <id> ha sido sustituida por la opción -G <id> opción. En cuanto a la identificación, podría ser SoundflowerEngine:1 o algo así. Puedes obtener todos los IDs de los dispositivos de audio ejecutando el siguiente código Swift (requiere la instalación de Xcode):

import Cocoa
import AVFoundation

let session = AVCaptureDevice.DiscoverySession.init(deviceTypes: [.builtInMicrophone, .externalUnknown], mediaType: nil, position: .unspecified)

for device in session.devices {
    print("device=\(device.localizedName), id=\(device.uniqueID)")
}

# Save it as ids.swift, and
$ swift ids.swift
device=MacBook Pro Microphone, id=BuiltInMicrophoneDevice
device=Soundflower (64ch), id=SoundflowerEngine:1

$ screencapture -v -V 60 -G SoundflowerEngine:1 output.mov

Como alternativa, puede utilizar la herramienta de línea de comandos que hice sin instalar Xcode:

$ list-av-capture-devices
[
  {
    "deviceType" : "AVCaptureDeviceTypeBuiltInMicrophone",
    "isConnected" : true,
    "localizedName" : "MacBook Pro Microphone",
    "manufacturer" : "Apple Inc.",
    "modelID" : "Digital Mic",
    "uniqueID" : "BuiltInMicrophoneDevice"
  },
  ...
]

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X