[Mac] コマンドラインで動画から音声を抽出する

環境:macOS Catalina Version 10.15.6(英語環境)

(1)ffpmeg をインストールすると ffprobe が一緒にインストールされる。これを使って動画のコーデックを調べる。

 1$ ffprobe input.mov
 2  Metadata:
 3	major_brand     : qt  
 4	minor_version   : 0
 5	compatible_brands: qt  
 6	creation_time   : 2021-01-27T21:52:04.000000Z
 7	com.apple.quicktime.location.accuracy.horizontal: 65.000000
 8	com.apple.quicktime.location.ISO6709: +35.1261+136.9381+016.488/
 9	com.apple.quicktime.make: Apple
10	com.apple.quicktime.model: iPad Pro
11	com.apple.quicktime.software: 14.4
12	com.apple.quicktime.creationdate: 2021-01-28T06:52:04+0900
13  Duration: 00:00:09.54, start: 0.000000, bitrate: 24398 kb/s
14	Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 24227 kb/s, 59.96 fps, 59.94 tbr, 600 tbn, 1200 tbc (default)
15	Metadata:
16	  creation_time   : 2021-01-27T21:52:04.000000Z
17	  handler_name    : Core Media Video
18	  encoder         : H.264
19	Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 91 kb/s (default)
20	Metadata:
21	  creation_time   : 2021-01-27T21:52:04.000000Z
22	  handler_name    : Core Media Audio
23	Stream #0:2(und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
24	Metadata:
25	  creation_time   : 2021-01-27T21:52:04.000000Z
26	  handler_name    : Core Media Metadata
27	Stream #0:3(und): Data: none (mebx / 0x7862656D), 0 kb/s (default)
28	Metadata:
29	  creation_time   : 2021-01-27T21:52:04.000000Z
30	  handler_name    : Core Media Metadata
31	Stream #0:4(und): Data: none (mebx / 0x7862656D), 69 kb/s (default)
32	Metadata:
33	  creation_time   : 2021-01-27T21:52:04.000000Z
34	  handler_name    : Core Media Metadata

今回は iPad で撮影した動画だったが、音声は aac だと分かった。

(2)ターミナルで以下を実行。-vn は動画部分を無効化するオプション。-acodec copy でそのまま音声をコピーすることになる。

$ ffmpeg -i 'input.mov' -vn -acodec copy input.aac

これで音声のみを無劣化で抽出できた。

参考:
動画のコーデックを調べる in linux – Qiita
https://qiita.com/mzmttks/items/120e6712c4ef3d32b144

FFmpegで動画から音声だけ無劣化抽出(分離) | SlackNote
https://slacknotebook.com/ffmpeg-extract-audio-from-video/