Saya ingin mengarahkan output audio suatu program ke file, pada baris perintah, seperti di
$ redirect-wrapper file.wav my-program
maka
- Saya tidak mendengar output dari program, yaitu output seharusnya hanya pergi ke file
- Saya tidak merekam apa pun selain program, yaitu hanya program khusus ini yang diarahkan ke file
- sisa sistem audio dibiarkan sepenuhnya tidak terganggu, tidak ada opsi konfigurasi yang bolak-balik atau sesuatu seperti itu
Apakah ada cara untuk melakukan ini? Ini pertanyaan terkait tidak tidak membantu, saya membutuhkan solusi baris perintah, tidak ada "klik di sana, maka ada". Ini mungkin juga terkait, tetapi juga bergantung pada pavucontrol aplikasi grafis. Saya menemukan alternatif terminal untuk pavucontrol, pacmd.
Namun ini masih hanya memungkinkan kompromi berikut:
- Dapatkan bak cuci default dan simpan apa itu. Bagaimana? Mungkin menerobos masuk
pacmd list-sinks
- Atur wastafel default ke wastafel snd-aloop dengan
pacmd set-default-sink
. - Rekam dari wastafel itu.
- Luncurkan aplikasi
- Tunggu hingga aplikasi membuka input wastafelnya:
pacmd list-sink-inputs | grep name-of-my-program
jika ini menemukan sesuatu, inputnya terbuka. - Ubah kembali ke default dengan apa itu
pacmd set-default-sink
. - Berhenti merekam begitu aplikasi ditutup.
Tapi ini masih mengubah bak cuci default untuk rentang waktu hingga beberapa menit (input bak cuci biasanya tidak dibuka sampai program benar-benar memutar suara yang tidak perlu tepat setelah diluncurkan). Saya menerapkan kompromi ini; Github .
Masih mencari jawaban yang tidak berkompromi.
pacmd list
menunjukkan sumber dan sink apa yang melekat pada program tertentu, jadi mungkin ada cara untuk mengubahnya. Coba tanyakan pada daftar pulseaudio di lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss Pemelihara / pengembang ada di sana dan sangat membantu.
~/.asoundrc
. Mungkin Anda bisa menghindari ini entah bagaimana.