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.
debian
command-line
audio
recording
Tak seorangpun
sumber
sumber
~/.asoundrc
. Mungkin Anda bisa menghindari ini entah bagaimana.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.Jawaban:
Umm begitu melihat dokumentasi pulseaudio.
man pulseaudio
Kami memiliki variabel lingkungan berikut
Mudah-mudahan ini memungkinkan Anda untuk mengganti pulseaudio sink, dan jika ini tidak cukup jalankan server pulseaudio sekali pakai kami sendiri.
Mengacu pada halaman ini ( /ubuntu/60837/record-a-programs-output-with-pulseaudio ), kami mencari tahu tentang perintah
parec
/pacat
(mereka alias) yang dapat merekam dari dan menulis ke sinks dan stream.Menyatukan ini kita memiliki pembungkus berikut (yang saya belum benar-benar berjalan - meskipun saya berhasil mendapatkan metode ini untuk bekerja secara ad-hoc)
sumber