Linuxで再生されている音を録音する方法色々

Windowsはよく知りませんが、Linuxでは簡単に再生されている音を録音することができます。

方法1. parecコマンドを使う

$ parec > rec.raw

f:id:ohac:20180902105944p:plain

こんな感じでpavucontrolからどれを録音するか選択できます。

この例ではNull出力を使っています。

~/.config/pulse/default.paで以下のように指定すればNull出力が使えるようになります。

load-module module-null-sink

これならオーディオインターフェイスがなくてもいけますね。

あと、録音用のNull出力を別系統にしたい場合は以下のようにして名前を変えてやれば増やすことが可能です。

load-module module-null-sink sink_name=parec sink_properties="device.description=Null2"

動的にやるなら以下のコマンドで。

$ pactl load-module module-null-sink sink_name=parec sink_properties="device.description=Null2"

f:id:ohac:20180902110622p:plain

方法2. PulseAudio+ffmpegを使う

$ ffmpeg -f pulse -i default -y rec.flac

f:id:ohac:20180902110823p:plain

ffmpegなので好きな形式にエンコードすることができます。 PulseAudioありでビルドされている必要がありますが、Debianパッケージならありになっています。

方法3. JACK+timemachineを使う

JACKを開始後、timemachineを起動。

$ timemachine

f:id:ohac:20180902111338p:plain

f:id:ohac:20180902111348p:plain

PulseAudio JACK Sinkの出力をtimemachineに接続。 あとはボタンを押せばRAWで録音開始となります。 ファイル名は現在日時をベースとしたものになります。

これも録音用を別系統にしたければ別名のJACK Sinkを作成すればよいです。

$ pactl load-module module-jack-sink client_name=pulse2

f:id:ohac:20180902111858p:plain

f:id:ohac:20180902111910p:plain

方法4. JACK+ffmpegを使う

方法3とほぼ同じですが、timemachineではなくffmpegを使う方法。

$ ffmpeg -f jack -i ffmpeg -y `date +%Y%m%d_%H%M%S`.flac

ファイル名はなんでもいいですが、ここではdateコマンドで現在日時を使うようにしています。