Ubuntu 18.04 LTSでDTM - ffmpegでデスクトップのキャプチャとQsynthなど

ffmpegでデスクトップのキャプチャができたので、その手順メモです。

以下のようなコマンドでx11grabから画面をキャプチャできます。 長いのでスクリプトにしています。

#!/bin/bash
/usr/local/bin/ffmpeg \
-vaapi_device /dev/dri/renderD128 -hwaccel vaapi -hwaccel_output_format vaapi \
-filter_threads 3 \
-thread_queue_size 128 \
-video_size 1920x1080 \
-f x11grab -i :0.0+0,54 \
-thread_queue_size 512 \
-itsoffset 0.25 \
-f jack -i ffmpeg \
-framerate 60 -r 10 -vf 'format=nv12|vaapi,hwupload' \
-c:v h264_vaapi \
-acodec pcm_f32le \
-y ram/out.mkv

前回のやつから変わったのは-video_sizeの位置とサイズ、 -f x11grabとDISPLAYの0.0とそのオフセット(+0,54)。 あと、-itsoffsetのずれ具合です。

WebCamからの動画も撮りたい場合は手抜きですが、 以下のようなコマンドで画面に表示したものをキャプチャすればよいです。

/usr/local/bin/ffmpeg -f v4l2 -i /dev/video1 -pix_fmt yuv420p -f xv display

できあがったram/out.mkvはそのままでは色々と不都合があるらしく、 vlcで表示するとうまくいきませんでした。ffplayで見ると問題ないです。

以下のコマンドでmp4に変換すればvlcでも問題なく扱えるようになり、 TwitterYouTubeへの投稿も可能になります。

/usr/bin/ffmpeg -i ram/out.mkv -vcodec libx264 -pix_fmt yuv420p -strict -2 -acodec aac $(date +%Y-%m-%d_%H-%M-%S).mp4

せっかくなのでLinuxでの音楽制作に関する動画を作成してみました。 音源はGMサウンドフォントを使用し、Qsynthでエフェクター付きで鳴らしてみました。 MIDI入力はVirtual MIDI Piano Keyboard(vmpk)を使いました。

インストールはこんな感じ。

sudo apt install vmpk qsynth

vmpkは普通のキーボードで演奏することもできます。 ベロシティがなく2オクターブしかないので、確認・打ち込み用ですが、 MIDIキーボードがなくても試せるので便利です。

youtu.be