Jonouchi Kouyo's Blog

カテゴリ:mac

ffmpegを使って動画を切り取る(trim:トリムする)ときに、キーフレーム(keyframe:Iフレーム)を使う方法をメモしておく。

実行環境
MacOSX 10.8.5
ffmpeg ver 2.4.2
bash ver 3.2.53

今回使用した動画の形式
コンテナ mp4
動画コーデック h264
音声コーデック aac

何故キーフレームを選択するかというと、キーフレーム単位で動画を切り取ると動画の再エンコードが必要ないので、元の画像・音声を劣化せずに切り取れるからである(詳細は"動画 GOP"で検索)。またエンコードが無いため処理が一瞬で終わる。

逆にキーフレームを指定しない場合は再エンコードが発生して処理に時間がかかる。キーフレーム以外の任意の位置から切り取りを開始したい場合は、必ず後者の処理を行うことになる。

1.切り取りに使うffmpegのコマンド


ffmpeg -ss "開始時刻" -i input.mp4 -ss 0 -t "切り取り時間" -c:v copy -c:a copy -async 1 -strict -2 output.mp4

この"開始時刻"と"切り取り時間"に、キーフレームの時刻(時間)を設定する。

最初の「-ss "開始時刻"」でffmpegに切り取りの開始位置をシークさせ、2番目の「-ss 0」で開始時刻から切り取りを実行する。

「-i」の前に「-ss "開始時刻"」をつけるだけで十分な気もするが、これだとffmpegが開始時刻を正しくシークしてくれない。結果、切り取った映像の最初の1〜4秒間くらいがグレー画面になったり、フレームが飛ばされたりと酷い映像が出来上がる。なので「-i」の後ろにもう一度「-ss 0」と設定する事により、シークした時刻から正確に切り取り開始するようになる。

どうも無劣化で切り取る場合(copyを使った場合)に発生するffmpegの仕様(バグ?)のようで、上記で述べた再エンコードを行う場合はこの事象は発生しない。

尚、このコマンドで「-t」の代わりに「-to "終了時刻"」を使おうとすると、「-to」が無視されて「-t」に自動的に変換される。どうやら最初に「-ss」を持ってきた場合に限り「-to」が無視されるようだ。

2.キーフレームを調べる


まず対象の動画のキーフレームを調べるために、以下のコマンドを実行する。

ffprobe -show_frames -pretty input.mp4

実行すると、動画と音声のフレーム単位の詳細な情報が出力される。

[FRAME]  ← 1フレームの動画情報
media_type=video
key_frame=0
pkt_pts=864064
pkt_pts_time=0:00:54.004000
pkt_dts=864064
pkt_dts_time=0:00:54.004000
best_effort_timestamp=864064
best_effort_timestamp_time=0:00:54.004000
pkt_duration=533
pkt_duration_time=0:00:00.033313
pkt_pos=3041277
pkt_size=358
width=604
height=340
pix_fmt=yuv420p
sample_aspect_ratio=1360:1359
pict_type=B
coded_picture_number=1617
display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
[/FRAME]
[FRAME]  ← 1フレームの音声情報
media_type=audio
key_frame=1
pkt_pts=1193982
pkt_pts_time=0:00:54.148844
pkt_dts=1193982
pkt_dts_time=0:00:54.148844
best_effort_timestamp=1193982
best_effort_timestamp_time=0:00:54.148844
pkt_duration=1024
pkt_duration_time=0:00:00.046440
pkt_pos=3047553
pkt_size=355
sample_fmt=fltp
nb_samples=1024
channels=2
channel_layout=stereo
[/FRAME]

今回必要なのは動画情報のみ(media_type=video)なので、オプションに「-select_streams -v」を追加して動画のフレーム情報のみ抽出する。

ffprobe -show_frames -select_streams -v -pretty input.mp4

[FRAME]
media_type=video
key_frame=1
pkt_pts=1772176
pkt_pts_time=0:01:50.761000
pkt_dts=1772176
pkt_dts_time=0:01:50.761000
best_effort_timestamp=1772176
best_effort_timestamp_time=0:01:50.761000
pkt_duration=533
pkt_duration_time=0:00:00.033313
pkt_pos=5994965
pkt_size=24411
width=604
height=340
pix_fmt=yuv420p
sample_aspect_ratio=1360:1359
pict_type=I
coded_picture_number=3316
display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
[/FRAME]
[FRAME]
media_type=video
key_frame=0
pkt_pts=1772704
pkt_pts_time=0:01:50.794000
pkt_dts=1772704
pkt_dts_time=0:01:50.794000
best_effort_timestamp=1772704
best_effort_timestamp_time=0:01:50.794000
pkt_duration=533
pkt_duration_time=0:00:00.033313
pkt_pos=6025150
pkt_size=535
width=604
height=340
pix_fmt=yuv420p
sample_aspect_ratio=1360:1359
pict_type=B
coded_picture_number=3319
display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
[/FRAME]

この結果の中で「key_frame=1」となっているのがキーフレームのことである。このフレームの「pict_type」をみると、このフレームが「pict_type=I」(Iフレーム)であることがわかる。

ffmpegで必要なのはこのキーフレームの時刻であるため、ここから「pkt_pts_time」を抽出する。

ffprobe -show_frames -select_streams -v -pretty input.mp4 | grep "key_frame=1" -A 3 | grep -w pkt_pts_time | cut -d= -f2 | sed -e s/000\$// > temp.txt

「grep "key_frame=1" -A 3」とは、ffprobeの結果から「key_frame=1」を抽出し、さらにその行を含む3行を抽出する。
次のgrepで「pkt_pts_time」の行だけを抽出し、cutで"="より後ろの時刻を取り出し、最後にsedで時刻の余分なミリ秒(後3桁"000")を削除してtemp.txtに書き出す。

尚、元動画の時間が長いほど、この処理に時間がかかるので暫く待つ(1分程度)

3.切り取り時間を求める


ffmpegでもう一つ必要なのは"切り取り時間"なので、このtemp.txtファイルの中から開始時刻と終了時刻を選択し、その差分(切り取り時間)をbashで求める。
#!/bin/bash

ts_get_msec()
{
	read -r h m s ms <<< $(echo $1 | tr '.:' ' ')
#	echo $(((h*60*60*1000)+(m*60*1000)+(s*1000)+ms))
	echo $(((10#${h}*60*60*1000)+(10#${m}*60*1000)+(10#${s}*1000)+10#${ms}))
}

ts_get_time()
{
	hour=$(($1/(60*60*1000)))
	min=$((($1%(60*60*1000))/(60*1000)))
	sec=$((($1%(60*1000))/1000))
	ms=$((($1%(60*1000))%1000))

	min=0$min
	sec=0$sec
	ms=0$ms

	echo "${hour}:${min:(-2)}:${sec:(-2)}.${ms:(-3)}"
}

start_pts=開始時刻 (例 0:01:24.333)
start_msec=$(ts_get_msec $start_pts)

end_pts=終了時刻 (例 0:08:45.338)
end_msec=$(ts_get_msec $end_pts)

DIFF=$((end_msec-start_msec))
duration_ts=$(ts_get_time $DIFF)

echo $duration_ts


bashで時刻の差分を計算する場合「date -d"時刻" +%s」コマンドを使って一旦ミリ秒に変換するのが簡単であるが、私の実行環境のMacはBSD UNIXをベースに作られているため「date」コマンドの「-d」オプションが使用できない。正直、Unixの〜系はほとんど意識したことがなかったので、今回はドツボにハマってかなり時間を食ってしまった。

そこでgoogle先生から「date」コマンドに頼らない自作の関数を教えてもらい、その内部でミリ秒に変換する処理を行う。(上記 ts_get_msec関数)

尚、ts_get_msec関数で最初のechoをコメントアウトしている理由は、$((計算式))で処理を行う際に文字列「08」が入ると、bashの仕様で「08」を16進数に勝手に変換して計算しようとするため、計算処理で必ずエラーが発生する。これを回避するには「08」という文字列を意図的に数値に変換してやる必要がある。

そこで2番目のecho文のように、「10#${変数}」(10は10進数という意味)としてやれば、この変数に格納された値を数値として認識してくれる。もちろん「08」が数字の「8」として認識されるようになる。

ts_get_msec関数で開始時刻と終了時刻をミリ秒に変換した後、差分を計算し、ミリ秒を時刻表記に戻す(ts_get_time関数)。min, sec, ms の先頭に「0」をつけて0埋めした後、echo出力時に分:秒.ミリ秒を2桁、2桁、3桁に調整して出力する。

上記の例で実行した場合、切り取り時間は「0:07:21.005」が得られる。

開始時刻と切り取り時間が求められたので、最後にffmpegコマンドを実行する。

ffmpeg -ss 0:01:24.333 -i input.mp4 -ss 0 -t 0:07:21.005 -c:v copy -c:a copy -async 1 -strict -2 output.mp4

4.まとめ

はっきり言って、動画を無劣化で切り取るためにffmpegを使って上記のやり方を行うのは非常に面倒である。これなら「avidemux」というフリーソフトを使ってGUI上で操作する方が遥かに簡単で早い。

但し、複数の動画の切り取り時間を事前に決めておき、バッチ処理で一気に行う場合は、上記の方法を自動化すると便利かもしれない。

例えば、複数の動画の最初10分を無劣化で取り出したいという場合は、開始時刻に「0:10:00.000」を設定しておき、その時刻に一番近いキーフレームを検索・抽出して動画の数だけ切り取りを繰り返すということもできる。

筆者の場合は「Aegisub」という字幕ソフトで切り取る動画にある字幕(ラベル)をつけておき、「ass」ファイルで保存した後、その「ass」ファイルから開始時刻と終了時刻を読み取って一気にバッチ処理で切り取るという方法を行っている。

いずれにせよ、ffmpegにこだわる必要がない場合は別ソフトを使う方が良い。
また無劣化にこだわる必要がなければ、時間指定で再エンコードする方が余計な動画を入れずに綺麗な動画が出来上がるので、そちらをお勧めする。

今までMacのディスプレイを90度回転するのに

・システム環境設定
・Option+Commandを押しながらディスプレイ
・回転で90°を選択

と、3つのステップを踏んで行っていたんですが、

24

何回もやっているとさすがに面倒になってきたので、スクリプトで行うことにしました。
以下、そのソースです。
-- ディスプレイ回転Script

property rotation00 : 1
property rotation90 : 2

tell application "System Preferences"
	quit
	delay 1
	launch
	activate
	
	tell application "System Events"
	key down {option, command}
	end tell
	
	set current pane to pane "com.apple.preference.displays"
	
	tell application "System Events"
	key up {option, command}
		
		tell process "System Preferences"
			tell tab group 1 of window "カラー LCD"
				click pop up button 1 -- "回転:" を選択
				
				tell pop up button 1
					repeat with i from 1 to 4
						if selected of menu item i of menu 1 is true then
							exit repeat
						end if
					end repeat
					
					if i is equal to 1 then
						set roteteMenuItem to rotation90
					else
						set roteteMenuItem to rotation00
					end if
				click menu item roteteMenuItem of menu 1
					
				end tell
			end tell
		end tell
	end tell
end tell

tell application "System Preferences"
	quit
end tell
このスクリプトを実行すると通常の位置から90°回転します。90°回転した状態から実行すると、通常に戻ります

key down をした後に、ちゃんと key up をしておかないと、90°回転した後に、マウスカーソルが”+”になったまま応答しなくなるので注意して下さい。σ(^ ^;

画面を90°回転させても、”ドラックパッド”の動作は回転前の状態と変わらないので、カーソルを動かすのがめちゃめちゃ難しくなります(笑)

但し、マウスを接続した場合は見た目通りに動かせますので、どうしても慣れない人はマウスを接続してみてください。 

システム環境設定

  1. 言語とテキスト
    • 「言語」タブを選択
    • 「日本語」をドラッグして一番上に移動
    • 一度ログオフしてログイン
    • 並び替えリストに使う順序を「日本語」に設定
    • 「地域」タブを選択して「地域」を「日本」に設定
  2. トラックパッド
    • 「ポイントとクリック」タブを選択
    • 「タップでクリック」のチェックをON
    • 「3本指のドラッグ」のチェックをON
  3. Dock
    • 「サイズ」の値を小さくする
    • 「拡大」のチェックをONにし、バーの値を半分くらいに設定
    • 「Dockを自動的に隠す/表示」のチェックをON
  4. Mission Control
    • 「Dashboadを操作スペースとして表示」のチェッックをOFF
    • 「最新の使用状況に基づいて操作スペースを自動的に並び替える」をOFF
    • 「Mission Control」キーを「F12」に変更
    • 「アプリケーションウインドウ」のキーを「F10」に変更
    • 「デスクトップを表示」を「F11」に変更
  5. セキュリティとプライバシー
    • 「一般」のタブを選択
    • 「スリープ解除/スクリーンセーバ解除にパスワードを要求」のチェックをOFF
    • 「すべてのアプリケーションを許可」を選択
    • 「ファイアーウォール」のタブを選択
    • 「ファイアウォールを入にする」を選択
  6. Spotlight
    • 「検索結果」タブを選択
    • 「Spotlightウインドウのキーボードショートカット」のチェックをOFF
    • 「カテゴリ」から検索対象のチェックをOFF
  7. ディスプレイ
    • 「ディスプレイ」タブを選択
    • 「変更」を選択
    • 「スペースを拡大」を選択
  8. 省エネルギー
    • 「パッテリー」タブを選択
    • 「コンピュータのスリープ」を5分に設定
    • 「ディスプレイのスリープ」を3分に設定
    • 「電源アダプタ」タブを選択
    • 「コンピュータのスリープ」を10分に設定
    • 「ディスプレイのスリープ」を8分に設定
  9. キーボード
    • 「キーボード」のタブを選択
    • 「F1、F2などのすべてのキーを標準のファンクションキーとして使用」のチェックをON
    • 「修飾キー」ボタンを選択
    • 「Caps Lockキー」を「Control」に割り当て
    • 「キーボードショートカット」のタブを選択
    • 「すべてのコントロール」を選択
    • 「キーボードと文字入力」の一覧から「前の入力ソースを選択」のチェックをOFF
  10. ネットワーク
    • 「ネットワーク環境」をクリックし「ネットワーク環境を編集」を選択する
    • 「+」ボタンを押して自分のネットワーク環境を作成する
    • 「新しいネットワークに接続することを確認」のチェックをON
    • 「詳細設定」ボタンを選択
    • 「TCP/IP」タブで「IP6の構成」を「リンクコントロールのみ」に設定する
  11. 日付と時刻
    • 「時計」タブを選択
    • 「秒を表示」をチェック
    • 「24時間表示にする」をチェック
    • 「曜日を表示」をチェック
  12. アクセシビリティ
    • 「補助装置にアクセスできるようにする」のチェックをON

Spotlightの設定

  1. ターミナルを起動し以下のコマンドを実行
    • sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist

Finderの隠しフォルダの表示

  1. ターミナルを起動し以下のコマンドを実行
    • chflags nohidden ~/Library

Finder環境設定

  1. 「一般」タブを選択
    • 「外部ディスク」「CD、DVD、およびiPod」「接続中のサーバ」のチェックをON
    • 「新規Finderウインドウで次を表示」にホームフォルダを設定
  2. 「サイドバー」タブを選択
    • 「マイファイル」「AirDrop」のチェックをOFF
    • 「ホームフォルダ」のチェックをON
  3. 「詳細」タブを選択
    • 「すべてのファイル名拡張子を表示」のチェックをON
    • 「ゴミ箱を空にする前に警告を表示」のチェックをOFF
    • 「確実にゴミ箱を空にする」のチェックをOFF
  4. メニューバーの「表示」を選択
    • 「パスバーを表示」のチェックをON
  5. Finderのウインドウを起動
    • Finder上でライブラリフォルダをサイドバーに追加する
    • 表示メニューから「表示オプションを表示」、表示順序をグリッドに沿うに設定
    • xml、txtの情報(⌘+i)を表示しMacVimに関連付け
    • 同様にmp4、flvをVLCに関連付け

ことえり環境設定

  1. 「入力文字」のタブを選択
    • 「JISキーボードの¥キーで入力する文字」を(バックスラッシュ)に変更
    • 「数字を全角で入力」のチェックをOFF
  2. 「デフォルトの半角設定」
    • defaultコマンドを使って、以下項目を常に半角に変更し、再度ログイン
    • defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add " " -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add '")"' -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add '"("' -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add '"!"' -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add '"#"' -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add '"$"' -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add '"%"' -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add '"&"' -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add "=" -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add "-" -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add "^" -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add "_" -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add "." -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add "," -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add "@" -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add ";" -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add ":" -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add '"<"' -bool no
      defaults write com.apple.inputmethod.Kotoeri zhsy -dict-add '">"' -bool no

AppleScript環境設定

  1. 「一般」タブを選択
    • 「メニューバーにスクリプトメニューを表示」のチェックをON

アプリケーションのインストール

  1. アプリケーションのダウンロード
    • Adobe Flash Player
    • Aegisub
    • AppCleaner
    • Bambooドライバ
    • Disk Inventory X
    • Dropbox
    • ffmpeg
    • brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype --with-frei0r --with-libass --with-libvo-aacenc --with-libvorbis --with-libvpx --with-opencore-amr --with-openjpeg --with-opus --with-rtmpdump --with-schroedinger --with-speex --with-theora --with-tools
    • Fire Alpaca
    • Google Chrome
    • Google 日本語入力
    • Homedrew
    • iTerm2
    • Java SE 6ランタイム
    • KeyRemap4MacBook
    • LibreOffice
    • MacTubes
    • MacVim
    • niconico-dl
    • Simple Commic
    • The Unarchiver
    • uTorrent
    • VirtualBox
    • VLC
    • V2C
    • XCode CommandLine Tool
    • XtraFinder
    • youtube-dl
    • 夜フクロウ

Terminalの設定

  1. ホームフォルダに「.bash_profile」ファイルを作成して以下を記入
    • if [ -f ~/.bashrc ] ; then
      . ~/.bashrc
      fi
  2. ホームフォルダに「.bashrc」ファイルを作成して以下を記入
    • # set editor mode vi
      set -o vi

      # set prompt
      export PS1="\u:\W $ "

      # set alias
      alias ls='ls -aFG'
      alias rm='rm -i'
      alias mv='mv -iv'
      alias cp='cp -iv'

      # open Application
      alias vl='open -a /Applications/VLC.app"'

      # check network connection
      alias net='ping -t 2 -o www.apple.com'

      # Command to toggle Wi-Fi
      alias wifion='sudo networksetup -setairportpower en0 on'
      alias wifioff='sudo networksetup -setairportpower en0 off'
      alias wifi='sudo networksetup -setairportpower en0 off; sudo networksetup -setairportpower en0 on'

MacVimの設定

  1. ホームフォルダに「.tmp」「.vim」フォルダを作成
    • mkdir ~/.tmp
      mkdir ~/.vim
  2. ターミナルを起動しホームフォルダに「.vimrc」を作成し以下を記入
    • "バックアップファイルの出力先
      set backupdir=~/.tmp

      "スワップファイル用の出力先
      set directory=~/.tmp

      "行番号を表示する
      set number

      "タブをスペースに変換しない
      set noexpandtab

      "タブを表示するときの幅
      set tabstop=2

      "タブを挿入するときの幅
      set shiftwidth=2

      "新しい行のインデントを現在行と同じにする
      set autoindent

      "新しい行を作った時に高度な自動インデントを行う
      set smarttab

      "検索パターンを入力中に入力途中のパターンにマッチする文字列を表示する
      set incsearch

      "閉括弧が入力された時、対応する括弧を強調する
      set showmatch

      "バックスペースで行頭の空白、改行、挿入モード開始位置より手前の文字を削除可能にする
      set backspace=indent,eol,start

      "入力途中のコマンドを右下に表示する
      set showcmd

      "長い行の文字を改行しない
      "set nowrap

      "IMを無効化
      set imdisable

      "変更中のファイルでも保存しないで他のファイルを表示する
      set hidden

      "クリップボードをWindowsと連携する
      set clipboard=unnamed

      "カーソル行をハイライト表示
      set cursorline

      "Kaoriyaのundoファイルを作成させない
      set noundofile

      set encoding=utf-8
      set fileencodings=ucs-bom,iso-2022-jp-3,iso-2022-jp,eucjp-ms,euc-jisx0213,euc-jp,sjis,cp932,utf-8

      "key map
      "-------------------------------
      "Ctrl-@をESCAPEに変換する(インプットモード)
      inoremap <C-@> <ESC>

      "検索結果のハイライトをEsc連打でクリアする(ノーマルモード)
      nnoremap <ESC><ESC> :nohlsearch<CR>

      "Ctrl-hjklを左下上右キーに変換する(インプットモード)
      imap <C-h> <LEFT>
      imap <C-j> <DOWN>
      imap <C-k> <UP>
      imap <C-l> <RIGHT>
  3. ホームフォルダに「.gvimrc」を作成し以下を記入
    • "透明度の設定
      set transparency=5

      "表示されるタブの設定 2:常に表示
      set showtabline=2

      "ツールバーを表示する
      set guioptions=T

      "縦幅と横幅を設定
      set lines=50
      set columns=100
  4. ターミナルで以下を実行
    • source .bash_profile

KeyRemap4MacBookの設定

  1. Change Key にて以下の項目にチェックをつける36
  2. 自分用のカスタマイズキーを追加(Customize My Key)31
    • <root>
        <appdef>
          <appname>CALC</appname>
          <equal>org.libreoffice.script</equal>
        </appdef>
        <appdef>
          <appname>VIRTUALMACHINE</appname>
          <equal>org.virtualbox.app.VirtualBoxVM</equal>
        </appdef>
        <list>
          <item>
            <name>Customize My Key</name>
            <list>
              <item>
                <name>Command+Space to Command+TAB</name>
                <appendix>(switch window)</appendix>
                <identifier>remap.command_space2command_tab</identifier>
                <autogen>__KeyToKey__ KeyCode::SPACE, VK_COMMAND, KeyCode::TAB, ModifierFlag::COMMAND_L</autogen>
              </item>
              <item>
                <name>Fn+Command_R to RightClick</name>
                <identifier>remap.fncommand_r_to_right_click</identifier>
                <autogen>__KeyToPointingButton__ KeyCode::COMMAND_R, ModifierFlag::FN, PointingButton::RIGHT</autogen>
              </item>
              <item>
                <name>Command+K to Control+TAB</name>
                <appendix>(Google Chrome/Safari only)</appendix>
                <identifier>remap.command_tab2control_tab</identifier>
                <only>GOOGLE_CHROME,SAFARI</only>
                <autogen>__KeyToKey__ KeyCode::K, VK_COMMAND, KeyCode::TAB, ModifierFlag::CONTROL_L</autogen>
              </item>
              <item>
                <name>KANA to Command_R</name>
                <appendix>(+ When you type KANA only, send KANA)</appendix>
                <appendix>(+ not perform VIRTUALMACHINE)</appendix>
                <identifier>remap.jis_kana2commandR_kana_not_virtualmachine</identifier>
                <not>VIRTUALMACHINE</not>
                <autogen>__KeyOverlaidModifier__ KeyCode::JIS_KANA, KeyCode::COMMAND_R, KeyCode::JIS_KANA</autogen>
              </item>
              <item>
                <name>Vi mode for Preview</name>
                <appendix>- Control+hjkl to Left/Down/Up/Right</appendix>
                <appendix>- Control+d to PageDown</appendix>
                <appendix>- Control+u to PageUp</appendix>
                <appendix>- Control+g to Home</appendix>
                <identifier>remap.vi_mode_for_my_app</identifier>
                <only>PREVIEW</only>
                <block>
                <autogen>__KeyToKey__ KeyCode::H, VK_CONTROL, KeyCode::CURSOR_LEFT</autogen>
                <autogen>__KeyToKey__ KeyCode::J, VK_CONTROL, KeyCode::CURSOR_DOWN</autogen>
                <autogen>__KeyToKey__ KeyCode::K, VK_CONTROL, KeyCode::CURSOR_UP</autogen>
                <autogen>__KeyToKey__ KeyCode::L, VK_CONTROL, KeyCode::CURSOR_RIGHT</autogen>
                <autogen>__KeyToKey__ KeyCode::D, VK_CONTROL, KeyCode::PAGEDOWN</autogen>
                <autogen>__KeyToKey__ KeyCode::U, VK_CONTROL, KeyCode::PAGEUP</autogen>
                <autogen>__KeyToKey__ KeyCode::G, VK_CONTROL, KeyCode::HOME</autogen>
                </block>
              </item>
              <item>
                <name>Libre Office Calc</name>
                <appendix>Libre Office Calc Enter</appendix>
                <identifier>remap.libre_office_calc_enter</identifier>
                <only>CALC</only>
                <block>
                <autogen>__KeyToKey__ KeyCode::OPTION_L, VK_COMMAND, KeyCode::FN</autogen>
                </block>
              </item>
            </list>
          </item>
        </list>
      </root>

ショートカットの設定

  1. VLC
    • 「速く」「ゆっくり」を未設定に変更
    • 「少しだけ速く」に「Shift-⌘-;」「少しだけゆっくり」に「⌘--」

MacBook with Retinaに家で眠っていたWindowsのOffice2007をインストール。
以下そのときのメモ。
用意したもの
  • iMac (officeのイメージ化)
  • USBメモリ(1GB)
  • BootCamp環境(windows7)
1.Office2007をイメージ化
  • iMacにOffice2007のディスクを挿入し、ディスクユーティリティを起動する。
  • DVDドライブを選択して、メニューの「ファイル」>「新規」>「"DVDドライブ"からのディスクイメージ」を選択する。
  • イメージフォーマットを「DVD/CDマスター」を選択して、イメージファイルを保存する。
2.イメージファイルをUSBに記録
  • iMacから先ほど作成したイメージファイルをBootCampで起動したWindows7にコピーする。
  • 拡張子をcdrからisoに変更する。
  • ISO to USBを使ってUSBメモリに起動ディスクとして書き込む。
3.USBメモリからインストール
  • USBメモリを開きsetup.exeを実行してoffice2007をインストールする。
以上。

 
 office2007_excel
office2007_word

MacBook Pro Retina 13 を購入して喜んだのも束の間、ことあるごとにインターネット接続(Wi-Fi接続)がブツプツと切れる症状が発生し、原因がMacOSX Mountain Lion にあることが分かって非常にショックを受けました。

ネットに載っている方法を色々試してみたがいっこうに解決しない・・・。

ただ一つだけはっきりしたのは、BootCampでWindows7を起動しているときは一度も切断されたことはないということです。つまり、この問題はハードウェアではなくソフトウェアに原因があることが分かりました。

もうあれこれ迷うのは時間が勿体なかったので、下記のYouTubeに載っているようにWi-FiのカーネルをLeopard版にデグレードすることにしました。

Mac OS X Lion Wi-Fi Problems



※デグレードする前にTimeMachineでバックアップをとることをオススメします。
私の経験上、デグレードして動作が不安定になることはありませんでしたが、アップグレードするとまたプツプツ切れるみたいです。そしてその度にデグレード・・・。

しかし何度かTimeMachieから復元していると、デグレードしなくてもずっと繋がることに気がつきました。

詳しい原因はまだ分かりませんが、OSを再インストールすると直るケースがあるようです。でも、インストールし直しても切れるケースもあります。

ではどこで確認するか?
再インストールして、Wifiでネットに接続した後、1時間以内に接続が切れるかどうか確認してください。

ここで既に切れている場合は、正式パッチを当てない限り、また同じように切れると思います。
1時間以上接続しても切れていない場合、この先もつながり続けると思います。

全く説得力のない文章で申し訳ありませんが、これが私が見つけた解決方法です。 

このページのトップヘ