2013年3月30日土曜日

Retinaディスプレイの壁紙

15.4インチRetinaディスプレイ搭載のMacBook Proを購入して1ヶ月ちょっと経った。本当に美しいディスプレイだ。だが、意外と知られていない事実がある気がする。このディスプレイの解像度は2880ピクセル×1800ピクセルだが、作業領域は従来のMacBook Proと変わらない1440ピクセル×900ピクセルだということだ。

実は、これこそが美しいディスプレイを実現している理由なのだ。Retinaディスプレイでは、システム環境設定で解像度をRetinaディスプレイに最適に設定している場合、従来の1画素は縦横それぞれ2画素、つまり4画素を使って表示される。結果として見かけ上の解像度は144ppiになる。

では、壁紙はどんなサイズを選べば良いのだろう? 壁紙を提供しているサイトにはディスプレイの解像度を表示してくれるものがある。こういうサイトではRetinaディスプレイを搭載したMacBook Proのディスプレイ解像度は1440ピクセル×900ピクセルだと表示される。では、言われる通りで良いかというとそうではない。壁紙サイトにある壁紙は、多くの場合解像度が72dpiだからだ。

勿体ぶっていないで正解を言おう。72dpiの画像であれば144÷72=2なので1440ピクセル×900ピクセルをそれぞれ2倍した2880ピクセル×1800ピクセルの画像が最適である。なければ、それに近いサイズであればあるほど良い。

実はこのことをAppleの自称エキスパートに問い合わせたことがある。ロジックとして割り切れる前で混乱していたためだった。担当者は、ご丁寧にHT5266をググれと指示した。そしてそこにある通り、解像度が2880ピクセル×1800ピクセルだから、そのサイズの壁紙が最適だと言った。しかし、これがエキスパートだから分かったのではないのは後々明らかになる。次回はBoot Camp上のWIndows 7でのRetina DIsplayについて取り上げる。

2014.12.30追記
ただし、2880ピクセル×1800ピクセルのような高解像度画像は滅多に存在しない。筆者の趣味の話になって恐縮だが、日本のグラビアアイドルの画像などは最も大きいものでも2000ピクセルx1600ピクセル程度だ。これ以上のサイズの画像は、合成されているか、画像の再サンプリングによって作り出されたまがい物である。

2013年3月20日水曜日

ffmpegで字幕ファイルを焼き込む方法

MacでX11を導入せずにffmpegを用いて外部字幕ファイルを動画に焼き付ける方法を説明したい。

このブログエントリは、FFmpegで動画に字幕を付けてみるおよびMac の X11 環境のユーザーフォントについて調べてみる、そしてASS 仕組みと書き方を参考に作成したものである。

Mac OS X 10.8.x Mountain LionからX11はオプショナルインストールになった。ffmpegもMac OS X用バイナリが配布されている。本来X11に依存する訳ではないのに字幕焼き付けのためだけにX11を導入するのは無駄である。以下に説明する手順を踏めばX11を導入することなく字幕焼き付けが可能である。

  1. fonts.confファイルの作成
    適当なディレクトリ(例:/Users/アカウント名/.config/fontconfig/)に、下記内容のfonts.confファイルを作成する。
    実行コマンド例

    cd /Users/Accout_Name/
    mkdir .config
    cd .config
    mkdir fontconfig
    cd fontconfig
    nano fonts.conf
    

    記述内容

    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
      <dir>/System/Library/Fonts</dir>
      <dir>/Library/Fonts</dir>
      <dir>~/Library/Fonts</dir>
    </fontconfig>
    

    もし新しくフォントを追加した場合はセーフブート(shiftキーを押しながら起動)&再起動でフォントキャッシュをクリア&再構築する。

  2. 「.profile」ファイル作成(すでにある場合は、記述を追加)
    実行コマンド例

    cd /Users/Accout_Name/
    nano .profile
    

    記述内容

    export FONTCONFIG_PATH=/Users/Accout_Name/.config/fontconfig
    

    作成したら、プロファイルを反映させるためにターミナルを一度閉じて新しいウインドウを開く。

  3. 字幕ファイルがSRTフォーマット(拡張子がsrt)の場合、ASSフォーマット(拡張子がass)に変換する。(オプション)

    ffmpeg -i subtitle.srt subtitle.ass
    
  4. ASSファイルを適当なテキストエディタで開き「ScriptType: v4.00+」以降に次の記述を追加する。(すでに記述がある場合は不要)

    PlayResX: 384
    PlayResY: 288
    

    記述例

    [Script Info]
    ScriptType: v4.00+
    :
    :
    PlayResX: 384
    PlayResY: 288
    
  5. ffmpegを用いて字幕を動画に焼き付ける。

    ffmpeg -i Movie.mp4 -preset slow -crf 18 -filter:v "ass=Subtitle.ass" -c:a copy -f mp4 Movie_with_Subtitle.mp4
    

2014.9.2 追記:

  1. 元にするSRTファイルの文字コードはUTF-8にする必要がある。
  2. -filter:v "ass=Subtitle.ass"に記述するASSファイルは、カレントディレクトリにあるか、絶対パスで記述する必要がある。(例えばDesktop上にファイルがあれば、Terminal.appもDesktopにするか、/Users/ユーザー名/Desktop/Subtitle.assにする。~/Desktop/Subtitle.assではエラーになる)

2013年3月12日火曜日

VirtualBoxとのファイルやり取り方法

Boot CampはインテルMacでWindowsを動作させることができる素晴らしいアイディアだ。しかし、MacとWindowsとの切り替えでいちいち各OSを再起動しなくてはいけないのがネックだ。そこでVirtualBoxなどのエミュレータが存在価値を発揮する。

ここではVirtualBoxの共有フォルダ機能を用いた、Macとのファイルやり取り方法を説明したい。

VirtualBoxには、Macとの間でファイルをやり取りするための手段として共有フォルダ機能が用意されている。VMware FusionやParallels Desktopが、Macとのファイルのやり取りでドラッグ&ドロップを実現しているのに対して寂しいように思えるが、無料なのだし、Version 4.2ではゲストOSがLinuxの場合に限ってドラッグ&ドロップを実現している。今後のアップデートで他のゲストOSに対してもサポートする予定だとのことなので期待したいところでもある。

話がそれてしまった。VirtualBoxの共有フォルダ機能の話に戻る。ちなみに共有フォルダの作り方は知っている前提とする。共有フォルダに一工夫を加えると、とても便利に使えるのだ。ここでは共有フォルダを下図ようなフォルダ構成で作っているとする。

Vbox_Root_Folder
VirtualBox VMフォルダ内に共有フォルダを配置

アプリケーション > ユーティリティ > ターミナル.appを(またはLaunch Padでユーティリティ(10.8.x未満)、その他(10.8.x以降)からターミナルをクリックして)起動し、以下のコマンドを実行する。

cd VirtualBox\ VMs/VBX_Shared_Folder/
ln -s /Users/AccountName/ ./
ln -s /Volumes ./

これらは、Macのユーザーのホームディレクトリと外部装置が接続されるVolumesという名前のディレクトリのシンボリックリンクを共有フォルダ内に作ることを意味する。結果Macでは下図のようなフォルダ構成となる。

VBox_Shared_Folder
共有フォルダ内のシンボリックリンク

Windowsのエクスプローラーで見ると下図のようになる。

explorer
エクスプローラーで見た状態

何が便利なのかというと、これによってユーザーのホームディレクトリおよび外付け機器にあるすべてのファイルにアクセスできるのだ。読み込みだけでなく書き込みもできるので複製(コピー)だけでなく移動・削除もできる。Boot Campでできなかった書き込み(移動・削除)ができるのがポイントだ。

2013年3月4日月曜日

書類のロックを一括で解除する方法

Mac OS X Lion(10.7.x)では、システム環境設定のTime Machineパネルに最後の編集から2週間(変更可能)経つと書類を自動的にロックするというオプションがあった。だがMac OS X Mountain Lion(10.8.x)では不採用になった。

しかしMountain Lionにアップグレードしたからといってロックされた書類が元に戻る訳ではない。Lionでロックされた書類はロックされたままなのだ。

ロックされた書類がそのままで良いと思う場合は構わないが、このLionのおせっかいな機能から解放されるためには、ちょっとだけターミナルのコマンドを使う必要がある。(アプリケーション > ユーティリティ > ターミナル.appを開き、以下のコマンドを実行する)

  1. 書類のロックを一括で解除するコマンド

    cd /
    sudo chflags -R nouchg *
    
  2. Preferencesのロックファイルを削除するコマンド(各ユーザーレベルおよびシステムレベル)

    cd ~/Library/Preferences
    rm *.lockfile
    
    cd /Library/Preferences
    sudo rm *.lockfile
    

書類のロックを一括解除とシステムレベルのPreferencesのロックファイル削除のコマンドではsudo(SUper User DO)をつけてコマンドを実行する必要がある。このコマンドを実行すると管理者ユーザーのパスワードを要求されるので、入力してやる必要がある。