Ubuntu 18.04 LTSのセットアップ8 - ffmpegとJACKで動画撮影
インストール後のメモその8です。 (もはやインストールと関係ないという話もありますが。)
ffmpegでJACKからオーディオ入力して動画を撮りたかったので、いろいろ試しました。
まず、ffmpegのJACK対応版をビルドします。
./configure --enable-libjack make -j8 make install
次にffmpegでwebcamの入力確認。video1は外部USBに接続したカメラです。
ffmpeg -f v4l2 -i /dev/video1 -pix_fmt yuv420p -f xv display
そしてJACKを使ったキャプチャと変換。 試行錯誤した結果、以下のようになりました。
ffmpeg \ -vaapi_device /dev/dri/renderD128 -hwaccel vaapi -hwaccel_output_format vaapi \ -filter_threads 3 \ -thread_queue_size 128 \ -f v4l2 -i /dev/video1 \ -thread_queue_size 128 \ -itsoffset 1.95 \ -f jack -i ffmpeg \ -video_size vga -framerate 60 -r 10 -vf 'format=nv12|vaapi,hwupload' \ -c:v h264_vaapi \ -acodec pcm_f32le \ -y ram/out.mkv
解説
- VAAPIを使うためのオプション
- スレッド数を指定
- HTをOFFにしたため、デフォルトの8コアではなく、4コアのうちの3つだけ使うイメージで。
- thread_queue_size は数を増やせとの警告が出ていたので適当に増やした。
- itsoffsetは動画と音声がずれていたので調整した。
- ramはtmpfsでマウントしたディレクトリ
だいたいこんな感じです。
CPUはパフォーマンスモードにして、HTをOFFにします。
sudo cpufreq-set -g performance sudo sh -c 'echo 0 > /sys/devices/system/cpu/cpu4/online' sudo sh -c 'echo 0 > /sys/devices/system/cpu/cpu5/online' sudo sh -c 'echo 0 > /sys/devices/system/cpu/cpu6/online' sudo sh -c 'echo 0 > /sys/devices/system/cpu/cpu7/online' cat /sys/devices/system/cpu/cpu?/online
RAMディスクもマウントしておきます。
sudo mount -t tmpfs tmpfs ram
あとはギターを録音するためにcalf-pluginsをインストール。 calfjackhostで実行。
sudo apt install calf-plugins calfjackhost &
こんな画面が表示される。
ギターのノイズを目立たなくするためのEQを選択。 あと耳障りな周波数帯を押さえたりもしておく。
メトロノームとミキサーをインストールして立ち上げ。
sudo apt install gtklick jackmixer gtklick & jack_mixer &
あとはJACKで適切につなぎあわせて、いざ録画。
最後に動画編集のPiTiViをインストール。
sudo apt install pitivi pitivi
編集してmkv形式でレンダリングすればYouTubeにアップロードできる。
Twitterに投稿する場合はffmpegで変換する必要があった。 PiTiViから直接生成する方法はよく分からなかった。
/usr/bin/ffmpeg -i input.mkv -vcodec libx264 -pix_fmt yuv420p -strict -2 -acodec aac output.mp4
下記の記事を参考にしました。ありがとうございます。
/usr/binとしているのはffmpegのビルドオプションがちょっと足りてなかったようで、 Ubuntuの標準パッケージのものを使う必要があったため。
出来上がった動画はこんな感じです。 PiTiViで文字入れとクロスフェードを使ってみました。