libfaac の音質がイマイチなので Nero AAC Encoder を。と言っても OS X 用は無いので Wine 経由で。
必要なもの
- Wine
- Nero AAC Codec (http://www.nero.com/jpn/company/about-nero/nero-aac-codec.php)
Nero AAC Codec は /usr/local
あたりに解凍しておく。
AppleScript で変換用アプリを作成する
アプリアイコンをクリックすると Finder の選択項目を Nero AAC Codec で変換するアプリを作成する。
do shell script
内に AppleScript の変数を埋め込むのは面倒なので関数を作成して引数で渡す。- Nero AAC Codec 用の WINEPREFIX を作成する。
- リスト選択ダイアログで品質設定をするようにすると面白いかも。
-- 空のリストを作成 set aList to {} -- Finder の選択項目を取得し、クオート付き POSIX パスでリストに追加 tell application "Finder" to repeat with f in selection as alias list set end of aList to quoted form of POSIX path of f end repeat -- デリミタをスペースに変更 set text item delimiters of AppleScript to space -- スクリプトを作成し、引数にリストの値を設定する set cmd to " func (){ export PATH=/opt/local/bin:/opt/local/sbin:$PATH export WINEPREFIX=$HOME/.neroaac for f do [ -f \"${f}\" ] && echo ${f} || continue /opt/local/bin/wine /usr/local/neroaacenc/neroAacEnc.exe -q 0.5 -if \"${f}\" -of \"${f}\".mp4 || return done exit } func" & space & aList -- ターミナル.app を呼び出してコマンドを実行させる tell application "Terminal" to activate (do script cmd)
sh
の -s
オプションで引数渡してヒアドキュメントでシェルスクリプトを書いてもいいかもしれない。
set cmd to "<<'__EOS__' exec sh -s" & space & aList & " export PATH=/opt/local/bin:/opt/local/sbin:$PATH export WINEPREFIX=$HOME/.neroaac for f do [ -f \"${f}\" ] && echo ${f} || continue /opt/local/bin/wine /usr/local/neroaacenc/neroAacEnc.exe -q 0.5 -if \"${f}\" -of \"${f}\".mp4 || return done exit __EOS__"
AppleScript & Python 版
AppleScript 内でシェルスクリプトなどを書くときは "
(ダブルクオート)の扱いが不便。Python ならシングルクオートだけで書けるのでちょっと楽かも。
set aList to {} tell application "Finder" to repeat with f in selection as alias list set end of aList to quoted form of POSIX path of f end repeat set text item delimiters of AppleScript to space set cmd to "<<'__EOS__' exec python -" & space & aList & " import os import subprocess import sys wine = '/opt/local/bin/wine' nero = '/usr/local/neroaacenc/neroAacEnc.exe' q = '0.5' os.environ['PATH'] = os.path.dirname(wine) + os.getenv('PATH') os.environ['WINEPREFIX'] = os.path.expanduser('~/.neroaac') for f in sys.argv[1:]: src = f dst = os.path.splitext(f)[0] + '.mp4' cmd = [wine, nero, '-q', q, '-if', src, '-of', dst] print src, '->', dst subprocess.call(cmd) __EOS__" tell application "Terminal" to activate (do script cmd)

- 作者: 永井勝則
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2007/12/25
- メディア: 大型本
- 購入: 2人 クリック: 27回
- この商品を含むブログ (9件) を見る

- 作者: 月村潤,本間雅洋,堀田直孝,原一浩,足立健誌,尾花衣美,堀内康弘,寺田学
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2008/01/29
- メディア: 単行本(ソフトカバー)
- 購入: 8人 クリック: 240回
- この商品を含むブログ (23件) を見る

- 作者: Jesse Russell,Ronald Cohn
- 出版社/メーカー: Book on Demand Ltd.
- 発売日: 2012/08/18
- メディア: ペーパーバック
- この商品を含むブログを見る