[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/