Archive for the 'mp4AudioExportKit' Category

2015/11/09 ムービーからオーディオのみ抽出してm4aで保存

Cocoaの機能を用いて、指定のQuickTimeムービーから音声のみ抽出してM4A(MPEG-4 Audio)で保存して指定のメタデータを付与するAppleScriptです。

Alex Nichol氏の「MP4Audio」をFramework化した「mp4AudioExportKit」を作って、それをAppleScriptから呼び出しています。

ただ、ビルド時に「それはもうdeprecatedだよー」というwarningが大量に出ているので、OS X 10.12以降で使えるかどうかは未知数です。

meta2.png
▲出力した音声データ(audiotest1.m4a)のmetadataをTerminal.app上で確認したところ。たしかに指定のデータが入っている

本Scriptでは、常識的な処理をひととおり試しているだけです。Sampling Rateを変更したりといったことは行っていません。

例によって、OS X 10.10以降用にビルドしたバイナリをあげておきますので、興味のある方は、アーカイブを展開して~/Library/Frameworksに入れてお試しください。

→ Download mp4AudioExportKit.framework

AppleScript名:MP4Audioのじっけん(ムービーからオーディオのみ抽出してM4Aで保存)
– Created 2015-11-09 by Takaaki Naganoya
– 2015 Piyomaru Software
use AppleScript version “2.4″
use scripting additions
use framework “Foundation”
use framework “mp4AudioExportKit” –unixpickle/MP4Audio
–https://github.com/unixpickle/MP4Audio

–Open Original Movie
set aFile to POSIX path of (choose file of type {“com.apple.quicktime-movie”} with prompt “Choose a QuickTime movie to export as MP4 audio”)
set aPath to current application’s NSString’s stringWithString:aFile
set aMovie to current application’s ANMovie’s alloc()’s initWithFile:aPath

–Select Export File Name
set bFile to POSIX path of (choose file name with prompt “Input Export file name”)
set bPath to current application’s NSString’s stringWithString:bFile
if (bPath’s hasSuffix:“.m4a”) as boolean = false then
  set bPath to bPath’s appendString:“.m4a”
end if

–Export as MP4 audio
with timeout of 3600 seconds
  aMovie’s exportAACToFile:bPath
  
aMovie’s |close|()
end timeout

–Add Metadata
set aMetaData to current application’s ANMetadata’s alloc()’s init()
aMetaData’s setTitle:“戦場の絆ポータブル リプレイムービーNY音声編(1)”
aMetaData’s setAlbum:“戦場の絆ポータブル”
aMetaData’s setYear:“2015″
aMetaData’s setArtist:“Bandai Namco Entertainment”
aMetaData’s setTrackNumber:(current application’s ANMetadataTrack’s alloc()’s initWithTrackNumber:5 tracks:12)

set bMovie to current application’s ANMovie’s alloc()’s initWithFile:bPath
bMovie’s setMovieMetadata:aMetaData
bMovie’s |close|()

★Click Here to Open This Script