これは何
Macで画面収録をするとマルチチャンネルで収録される。(多チャンネルのオーディオインターフェースを繋いでいる場合)
適当に画面録画したものがMac以外のデバイスでうまく再生できないことがあるので、雑にこれをステレオに変換する際のチートシート。
前提
- チャンネルはMOTU Ultralite mk5を接続して画面収録した場合のもの。
- ffmpegコマンドが使えること
ffmpeg -version
ffmpeg version N-121838-g76827a6f3b Copyright (c) 2000-2025 the FFmpeg developers
built with Apple clang version 16.0.0 (clang-1600.0.26.6)
configuration: --prefix=/usr/local/ffmpeg-custom --enable-gpl --enable-nonfree --enable-version3 --enable-shared --extra-cflags=-I/opt/homebrew/include --extra-ldflags=-L/opt/homebrew/lib --enable-libaom --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libharfbuzz --enable-libfdk-aac --enable-videotoolbox --enable-audiotoolbox --enable-libzimg --cc=clang
libavutil 60. 18.100 / 60. 18.100
libavcodec 62. 19.100 / 62. 19.100
libavformat 62. 6.103 / 62. 6.103
libavdevice 62. 2.100 / 62. 2.100
libavfilter 11. 9.100 / 11. 9.100
libswscale 9. 3.100 / 9. 3.100
libswresample 6. 2.100 / 6. 2.100
Exiting with exit code 0チャンネル構成の確認
変換対象のファイル確認
ffprobe -i input.mov各チャンネルの内容を確認
# 5秒目から10秒間を抽出する。各チャンネルの音声を確認できる
for i in {0..19}; do
ffmpeg -ss 5 -t 10 -i input.mov -af "pan=mono|c0=c$i" ch$i.wav
done必要なチャンネルだけでステレオミックス
基本パターン:特定チャンネルをステレオに
# ch0をL、ch1をRに
ffmpeg -i input.mov -filter_complex "[0:a]pan=stereo|c0=c0|c1=c1" -c:v copy output.mov複数チャンネルをミックス
# ch4,5とch8,9をミックス(シンセ+Macループバック)
ffmpeg -i input.mov -filter_complex "[0:a]pan=stereo|c0=c4+c8|c1=c5+c9" output.wav
# 音量バランスを調整(シンセ70%、Mac30%)
ffmpeg -i input.mov -filter_complex "[0:a]pan=stereo|c0=0.7*c4+0.3*c8|c1=0.7*c5+0.3*c9" output.wav倍速処理
音声のみ倍速
atempoは0.5〜2.0の範囲。それ以上は複数回適用:atempo=2.0,atempo=1.5で3倍速
# 2倍速
ffmpeg -i input.mov -filter_complex "[0:a]pan=stereo|c0=c4+c8|c1=c5+c9,atempo=2.0" -vn audio_2x.aac
# 1.5倍速
ffmpeg -i input.mov -filter_complex "[0:a]pan=stereo|c0=c4+c8|c1=c5+c9,atempo=1.5" -vn audio_1.5x.aac映像も含めて倍速
# 映像と音声を2倍速
ffmpeg -i input.mov -filter:v "setpts=0.5*PTS" -filter_complex "[0:a]pan=stereo|c0=c4+c8|c1=c5+c9,atempo=2.0" output.mov映像と音声を別々に処理する
# 音声だけ先に処理
ffmpeg -i input.mov -filter_complex "[0:a]pan=stereo|c0=c4+c8|c1=c5+c9,atempo=2.0" -vn audio_2x.aac
# 映像を倍速(音声なし)
ffmpeg -i input.mov -filter:v "setpts=0.5*PTS" -an video_2x.mov
# 合成
ffmpeg -i video_2x.mov -i audio_2x.aac -c:v copy -map 0:v:0 -map 1:a:0 output.mov互換性の高いMP4への変換
ffmpeg -i input.mov -c:v libx264 -preset medium -crf 23 -c:a aac -b:a 192k output.mp4# デバイスによる色の見え方の違いを減らしたい場合
ffmpeg -i input.mov -c:v libx264 -preset medium -crf 23 -pix_fmt yuv420p -c:a aac -b:a 192k output.mp4チャンネル構成
自分の場合は以下の通りに繋いである。
- ch0: マイク入力
- ch1: ギター/ベース ライン入力
- ch2-3: MIDIキーボード(L/R)
- ch4-5: Reface CS(L/R)
- ch6-7: 未使用
- ch8-9: Macループバック(L/R)
実際の使用例
# シンセとMacだけミックスして2倍速
ffmpeg -i input.mov -filter:v "setpts=0.5*PTS" -filter_complex "[0:a]pan=stereo|c0=c4+c8|c1=c5+c9,atempo=2.0" -c:v libx264 -preset medium -crf 23 -pix_fmt yuv420p -c:a aac -b:a 192k output.mp4Tips
-crf値: 小さいほど高画質(18=高品質、23=標準、28=低品質)