2011年1月21日金曜日

昔のガラケーで録った動画をiPhotoに取り込む 

昔々Vodafon時代のシャープの携帯電話で撮った写真と動画をディスク上に発見した。2003〜2005年頃のモノのようだ。貴重な思い出の品なので、iPhoneやデジカメでそうしているように写真、動画共にiPhotoに取り込むことにしたが、動画だけは取り込むことができない。さてさて…。

まず動画のフォーマットを調べてみる。mediainfoの結果は以下のとおり。拡張子はASFである。

General
Complete name                    : MOL009.ASF
Format                           : Windows Media
File size                        : 428 KiB
Duration                         : 8s 717ms
Overall bit rate                 : 402 Kbps
Maximum Overall bit rate         : 458 Kbps
Encoded date                     : UTC 2005-05-03 04:46:58.000

Video
ID                               : 1
Format                           : MPEG-4 Visual
Codec ID                         : M4S2
Codec ID/Hint                    : Microsoft
Description of the codec         : ISO MPEG-4('M4S2')
Duration                         : 8s 733ms
Bit rate                         : 346 Kbps
Width                            : 320 pixels
Height                           : 240 pixels
Display aspect ratio             : 4:3
Frame rate                       : 15.000 fps
Color space                      : YUV
Chroma subsampling               : 4:2:0
Bit depth                        : 8 bits
Bits/(Pixel*Frame)               : 0.300
Stream size                      : 368 KiB (86%)

Audio
ID                               : 2
Format                           : ADPCM
Codec ID                         : 45
Codec ID/Info                    : G.726
Codec ID/Hint                    : Microsoft
Description of the codec         : G.726
Duration                         : 8s 717ms
Bit rate                         : 32.0 Kbps
Channel(s)                       : 1 channel
Sampling rate                    : 8 000 Hz
Bit depth                        : 4 bits
Stream size                      : 34.1 KiB (8%)

動画のフォーマットはiPhotoがサポートしているmovコンテナに乗りそうなので、ffmpegを使ってコンテナのみロスレス変換(ASF⇛MOV)してみることにした。

for i in *.ASF ; do ffmpeg -i $i  -acodec copy -vcodec copy ${i%.*}.mov; done

変換は終了したが、QuickTime Playerで再生しても音声が鳴らない。ADPCMはサポートしない?

今度は動画はそのままで、音声をAACにエンコードしてmovにしてみた。

for i in *.ASF ; do ffmpeg -i $i  -acodec libfaac -ac 1 -ab 48000 -vcodec copy ${i%.*}.mov; done

今度はうまくいったようだ。ちなみにオーディオのビットレート48000は、それ以上にするとエラーになるぎりぎりの値にしてある。

iPhotoに取り込む前にタイムスタンプを元の動画にそろえておこう。

for i in *.ASF ; do touch -r $i ${i%.*}.mov ; done

うまくiPhotoに取り込むことができた。目的達成である。