その時々

その時々で違うんです。特に決まっていないんです。

Canon Ivis HF S11の動画ファイル取り込み (Ubuntu)

UbuntuにてデジタルビデオカメラのCanon Ivis HF S11のファイルを取り込む方法が見当たらなかったので
pythonでファイル取り込み用のスクリプトを書いてみました。

取り込みというよりも、手動コピー → ファイル名変換といったものですけどね。

PIXELA Transfer UtilityがUbuntuにインストール出来ないので似たようなものが欲しいと思ったんです。<使い方>
1.ビデオカメラをUSBで接続
2.SDカードまたは本体からcpiファイルとmtsファイルをローカルの一つのディレクトリにコピー
3.このスクリプトにそのディレクトリパスを引数として渡して起動

起動例

$ python canon.py '/home/hoge/video/canon'

そうするとディレクトリ内にcpiやmtsファイルの作成日付のyyyymmdd形式のディレクトリを作成し
cpiとmtsファイルをyyyymmddHHMMSS.cpi、yyyymmddHHMMSS.mtsというファイル名に変換してコピーします。


canon.py

#!/usr/bin/python
# _*_ coding: UTF-8 _*_
'''
 Canon デジタルビデオカメラのmtsとcpiファイルのコピー

 Ver1.0
'''
import os, time, sys, shutil

'引数のチェック'
argvs = sys.argv
if (len(argvs) != 2):
    print 'Usage: # python %s filename' % argvs[0]
    quit()

'カレントディレクトリの移動'
os.chdir(argvs[1])

print os.getcwd()

'ファイルコピー処理'
filelist = os.listdir(argvs[1])

for fl in filelist:
    ext = fl.split('.')[1].lower()

    if ext == 'cpi' or ext == 'mts':
        fs = os.stat(fl)
        prefix_dir = time.strftime('%Y%m%d', time.localtime(fs.st_mtime))
        prefix_file = time.strftime('%Y%m%d%H%M%S', time.localtime(fs.st_mtime))

        print prefix_file

        if not os.path.exists(prefix_dir):
            os.mkdir(prefix_dir)

        shutil.copy(fl, '%s/%s.%s' % (prefix_dir, prefix_file, ext))


<課題>

  1. 起動したら本体かSDカードか聞いてくるようにして選択することによりローカルに一度コピーしなくても動くようにしたい
  2. 既存の作成日付のものは処理をスキップしたい