73833


# 知りたいこと

  * -Gオプションのidとは何を指すのか
  * idはどのようにして調べれば良いのか

# やりたいこと

  * <https://dyny001.net/soundvoice-capture/>
  * 上記に記載の通り作業し、画面の録画時に自分のマイク入力と相手の音声が録画できるようになりました(⌘+⇧+5によるキャプチャの場合)
  * 続けて、/Users/(個人ディレクトリ)/Movies/ScreenCapture/YYYYMMDD(当日の日付)内にキャプチャした動画を保存できるようにするため、また、ディレクトリがなかったら自動で生成するようにするために以下の.commandファイルを作成しました

[code]

    saveDir=/Users/(個人ディレクトリ)/Movies/ScreenCapture/"$(date "+%Y%m%d")"
    
    # saveDirが存在するかチェック
    if [ -e $saveDir ]; then
        echo $saveDir >> ~/Desktop/log.txt
    else
        echo "$saveDir NOT found." >> ~/Desktop/log.txt
        mkdir $saveDir #saveDir作成
    fi
    
    screencapture -v -D 2 $saveDir/$(date "+%Y%m%d_%s").mp4
    
[/code]

  * しかし、これでは音声が拾えないのでとりあえず-gオプションを最後のコマンドに追記しました

[code]

    screencapture -v -D 2 -g $saveDir/$(date "+%Y%m%d_%s").mp4
    
[/code]

  * これは失敗で、デフォルトの音声を拾っている(?)ためか相手の声が録音されませんでした
  * となると、上記リンク内「QuickTime Playerでの設定」にある通り、Soundflower(64ch)を指定して録音すれば良いよ考えて、-GオプションでSoundflower(64ch)を指定しようと思いました。

# 調査したこと

  * man

[code]

    -G      <id> Captures audio during a video recording using audio source
                 specified by id.
    
    -g      Captures audio during a video recording using default input.
    
[/code]

  * サウンドの環境設定など一通り目を通してidらしきものがないか確認した
  * ググって調べ尽くしたつもりだがやはり解説・回答はなし  
<https://discussions.apple.com/thread/251461223>

# HELP!

mac内部で入出力をどのように認識しているか、が肝(多分それがid)だと思うのですが結局わからないままでした・・・


CC BY-SA 4.0
2021-02-06T08:46:33.337
73830
2021-02-08T13:15:14.133
2021-02-06T08:53:00.620
43856
43856
question
macos
screencaptureコマンド(Mac)の-G<id>オプションで使用するidについて


<https://qiita.com/akabee-qiita/questions/99d853a482d90ae587f9>  
qiitaで回答いただきました。@uasiさんありがとうございました！

## 以下要約

  * AVFoundation の AVCaptureDevice クラスの uniqueID で取得できるユニーク ID のこと
  * 次のコードを実行で表示が可能

[code]

    import Cocoa
    import AVFoundation
    
    let session = AVCaptureDevice.DiscoverySession.init(deviceTypes: [.builtInMicrophone, .externalUnknown], mediaType: nil, position: .unspecified)
    
    for device in session.devices {
        print("\(device.localizedName) -> \(device.uniqueID)")
    }
    
[/code]

  * 上記のコードを devices.swift として保存して swift devices.swift を実行するとオーディオデバイス名とユニーク ID が表示される
  * swiftの実行なのでXcodeのインストールが必要かも


CC BY-SA 4.0
2021-02-06T14:29:19.510
73833
2021-02-08T13:15:14.133
2021-02-08T13:15:14.133
43856
43856
73830
answer