2008 年 9 月 のアーカイブ

大量のMTS(AVCHD)形式のファイルをaviに変換する




















Windows上ではK-Lite Mega Codec Packを入れてあるので再生できるのだが、Macで見たいとか言われたので、PanasonicのHDC-SD5で録画した166個のMTSファイルを一括変換すべく色々やってみた。

思いついた変換方法は、MTS→Avisynthスクリプト作成→VirtualDubで読み込み→AVI保存

とりあえずavsはファイル数分作ることにした。さっくりとPythonスクリプトで作成。(後述)

VirtualDubでジョブ処理をさせるためにjobsファイルを作成する。これもどうせ途中で止めたりしないので、1ファイルに「ファイルオープン」~「AVI保存」~「クローズ」までを処理数分繰り返して記述することにした。

カレントディレクトリにtemplate.avs、template.jobs、createJobs.pyを作成。中身はそれぞれ以下の通り。

template.avs

DirectShowSource("..$1")
BilinearResize(1920,1080)

template.jobs

VirtualDub.Open(U"D:datasmovieshogeavs$1.MTS.avs");
VirtualDub.SaveAVI(U"D:datasmovieshogeavi$1.avi");
VirtualDub.Close();

createJobs.py

import os
path=’./MTS’
filelist = os.listdir(path)
output_jobs = ”
for i in range(len(filelist)):
    item=os.path.join(os.path.normpath(path),filelist[i])
    filename = os.path.basename(item)
    filebase = filename.replace(‘.MTS’, ”)
    f = open(‘./template.avs’, ‘r’)
    output = ”
    for line in f:
        line = line.replace(‘$1’, item)
        output = output + line
    f.close()
    fo = open(‘./avs/’ + filename + ‘.avs’, ‘w’)
    fo.write(output)
    fo.close()
    f_jobs = open(‘./template.jobs’)
    for line in f_jobs:
        line = line.replace(‘$1’, filebase)
        output_jobs = output_jobs + line
    f_jobs.close()

fo_jobs = open(‘./all.jobs’, ‘w’)
fo_jobs.write(output_jobs)
fo_jobs.close()

あ、MTSファイルはMTSフォルダに入れておくのと、aviフォルダ、avsフォルダを作っておく。

あとはPythonスクリプトを実行するだけで、all.jobsが出来上がるので、VirtualDubのファイルメニューからRun Scriptを実行するだけ。VirtualDubの保存時のエフェクトやCODECはあらかじめVirtualDub上で設定しておく。


Polycom VSX 7000Aの接続先ローカル名でハマる




















テレビ会議システムPolycom VSX 7000Aをブラウザから管理していたときにハマった内容のメモ。需要なさそー。

ホーム画面で簡単に通話が始められるように、接続先の名前(ローカル名)をディレクトリに登録できるのだが、アルファベット5文字+日本語5文字入れたら、マルチバイト文字の境界に対応してないらしく、機器側に最後の文字がバックスラッシュで表示されてしまった。

あぁ、ダメなのか、と思って再び編集しようとしたら、リストが出てこない!

ブラウザ換えてみたりしたけどダメなので、管理画面のユーティリティを見たら、「ディレクトリのインポート/エクスポート」というのがあったので、とりあえずPC側にエクスポート。

CSVをエディタで開いて見ると、エスケープされた該当部分が見つかったので修正してインポート。

そしたら見事に上書きされて正常に動作するようになった。よし。

まぁ、機器側なら削除→新規作成ができるとは思うのだけど。


9arrowsをApache2+passengerで動かす




















成功したのでメモ。

何がしたかったかというと、既存の.htpasswdで9arrowsをBasic認証させたかったのが始まり。

基本的にはこの辺参考。OSはdebian。Rubyは1.8。

[Ruby]9arrowsを入れてみたよ

とりあえず、9arrows標準のWEBrickで動かそうと思ってすでに色々はまる。
rakeが動かないとかでgem本体のアップデートやら色々したのだけど、ちょっとその辺忘れてしまった。

一応TCP Port 3000で動作することを確認。

で、passengerをgemでインストール。

rails/【passenger】Apacheで手軽に作るRailsの実行環境 – PukiWiki

passengerの説明としてはこっちも詳しい。

Redmine.JP | Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用

データベースをdevelopmentで作ったので、passengerの環境も合わせておく。

Apacheのconfに以下を記述。

<VirtualHost xxx.xxx.xxx.xxx:80>
ServerAdmin webmaster@localhost
ServerName 9arrows.dev
RailsEnv development

DocumentRoot /path/to/9arrows-read-only/public
<Directory /path/to/9arrows-read-only>
  AuthUserFile /path/to/.htpasswd
  AuthGroupFile /dev/null
  AuthName system
  AuthType Basic
  <Limit GET POST>
    require valid-user
  </Limit>
  Options FollowSymLinks
  AllowOverride All
</Directory>

ServerSignature Off
</VirtualHost>

500エラーが出てはまったのは.htaccessのせい。

#AddHandler fastcgi-script .fcgi
#AddHandler cgi-script .cgi
#Options +FollowSymLinks +ExecCGI

先頭の方にある3行をとりあえず全部コメントアウトしておく。
それだけでOK。

とりあえず問題なく動いている模様。