ビデオデータの切り出し機能

 今日はmixi内のコミュニティ“ユーザビリティの会”のオフ会でした。

 その場で、動画眼を試用してくださったKさんから、「動画の一部分を切り出すような機能があるとウレシイ」みたいな要望をいただきました。その時は、「動画ファイル自体に手を入れるのは深みにハマるからそれは難しいな†。あんまり触れたくない部分だなぁ…」と思ったりしたんですが、ふと帰りの電車の中で「案外イケるかも!」という気がしてきました。

 例によって、既存のツールを流用するアプローチです。既にあるものは利用する。それが道具眼流(笑)。

 ffmpegというオープンソースのエンコーダーがありまして、コイツはコマンドラインで色々なパラメーターを指定して様々なフォーマットで動画を変換することができます。コマンドラインでオプションを渡せるので、例えば動画眼のログから、バッチファイルを生成できれば、後は半自動で指定範囲を別ファイルに切り出したりはできるはずです。

 実は、先日hkondo氏からGrabFrame.DLLというライブラリを教えてもらって、これを組み込めば少なくとも.AVI形式のファイルに関しては簡単に静止画キャプチャはできそうだね、という話をして、実は開発版に試験的に組み込んでみたりしてました。が、このライブラリではMPEG2形式の動画から切り出すことはできず、限定的な使い方になるなぁ、と思ってました。しかし、ffmpegであればタイムコードを指定して特定フレームをJPEGなりに書き出すことはできるはずなので、静止画書き出しの問題も一挙解決?

 うん、それでいってみよう。なんでもかんでも動画眼の機能として内容する必要はない。動画眼のログから、ffmpegで一括切り出しを指示するバッチ(マクロ)を生成する、みたいなアプローチで。ffmpegならGPLだから動画眼と一緒に配布しても多分問題ないはずだし。

 というわけで、このヒラメキ(?)のための良いきっかけをくれたKさん、ありがとうございました。何かしらの形になったらお知らせします。

 

動画眼1.0RC2リリース

道具眼製ツール
 動画眼の1.0の正式リリース候補版2(RC2)をリリースしました。更新内容はいくつかのバグフィクスです。
 動画眼、動画眼Note共にマニュアルもほぼ書き上がっており、動画眼Note用の新アイコンも作ってもらってありますので、あとはそれらをインストーラーパッケージに仕立てて、正式リリースとしたいと思っています。
 動画眼Noteを作ってから、すでに3件程度の業務で使ってみましたが、クライアントさんの評判も上々です。従来、単にビデオを納品してもクライアントさんの方でも活用できず、ただ「実施しました」という“証拠品”でしかなかった訳ですが、動画眼でタスク別にすぐに頭出しができるようになっていれば、テストに同席できなかった方も少しは自分で見てみようかと思われるかと思います。ユーザテストを自身の目で見ることの重要性はことさら繰り返すまでもありませんが、その機会が増すというだけでもこのツールの価値があるかと思っています。
 正式リリース後は、開発体制をmixiの“ユーザビリティの会”コミュニティ中心に移行するか、フリーのプログラマに転身を図るkawaguti氏あたり引き継いでくれるか(彼への報酬を工面するためにシェアウェア化の可能性も)、このままちまちまとバージョンアップを繰り返すかは未定です。ご意見、ご要望などもお待ちしています。
 個人的には、ソースはスクラッチ(ゼロ)から書き直したい気分ですね。これを作り始めたことはVB始めたてだったので、ウインドウなどのオブジェクトの内部的な扱いがすごく“キタナイ”んですよ。将来的に他の誰かが引き継いでくれるようなことになった時に、今のソースはスパゲッティすぎます…

動画眼Note 0.9e(バグフィクス)

 動画眼Note 0.9eをリリースしました。
 0.9dの修正時にビデオ同期アシストの指定値がカウンタに反映されないというエンバグをしてしまいました。
 ケアレスミスが多くて済みません。直しました。

dgMSヘルパー、バグ修正リリース

道具眼製Palmware
 動画ファイルをPSPやPDAなどで再生するために、メモリカードの\MP_ROOT\100MNV01\などの特定フォルダに\M4V00001.MP4のような特定ファイル名でコピーしなければならない手間を軽減するドロップレット、dgMSヘルパーのバグ修正版をリリースしました。
 .mp4ファイルをコピーする際、同名の.THM(サムネイル用静止画)が存在する場合に一緒にコピーする処理の中で、.mp4が小文字の場合に.THMファイルではなく.mp4ファイルを.THMとしてコピーしてしまい、メモリカードが溢れてしまうという問題を修正しました。元動画ファイルが.mp4でも.MP4でも正しく動作するようになったはずです。
 ちなみに問題は把握していたのですが時間がとれず、先日発売されたPSPマル裏活用マニュアルというムック本で紹介され、見本が贈られてきたので、慌てて対応しました(^^;)。
 どうもご迷惑をおかけしました。

動画眼も色々改良。1.0RC1へ。

 更に動画眼の方も色々いじってみました。
#動画眼Noteに対し、こっちも動画眼○○みたいな名前にしないとややこしい?
 詳細は更新履歴をご覧下さい。
 ポイントとしては、ログを追加読み込みできるようにしたので、複数の動画眼Noteやシミュレータで吐いたログなどを直接マージできるようになった辺りです。
 あと、窓3つが横並びで画面幅をとっていたので、右にいた動画操作パネルは動画窓の下に持ってきました(機能的なゾーニングを考えてもこの方が真っ当。そもそもなんであんな配置にしたんだろ。>自分)。
 それと環境設定がちゃんと機能するようにして、ようやく「実際のタイムコードより一定秒数手前から再生する」機能が動くようになりました。
 また、ログファイルと動画ファイルの関連付けも強化。動画ファイル”hoge.mpg”を開いた時に、もし”hoge.txt”が一緒に存在すれば自動的にログとして読み込みます。「名前を付けて保存…」のデフォルトもこのルールです。つまり、動画ファイルと同フォルダに拡張子違い(.txt)で保存するのが動画眼の標準ルールということにしたいと思います。
 さて、そろそろマニュアルとインストーラーを整備したら1.0正式版としてリリースしても良いかという気になってきましたので、本バージョンをRC(Release Candidate)1としました。特にバグ報告がなければ実行ファイルはこのままフィーチャーフリーズかなと。といいつつアイコンに動画ファイルをドロップして起動できるようにしようか、とか思ってたり。まぁ、どうせ一人でちまちま作成してるツールなので、別に正式版とか1.0とかどうでもいいんすけどね。単に気分の問題w。
 ともあれ、ご興味ご関心のある方は是非お試し下さい。コメント、バグレポートもお待ちしています。

動画眼Noteにビデオ同期アシスト機能を追加

道具眼製ツール

 動画眼Noteにちょっとした機能を追加しました。名付けて「ビデオ同期アシスト」機能です。PCやHDDレコーダーなど直接動画ファイルを記録する録画装置限定なんですが、先に録画をスタートさせておいて、5秒目なら5秒目で録画カウンタを見ながらエイっと計時開始ボタンを押せば、動画眼Note側も5秒からカウントを開始してくれるというものです。


 録画ソフトのカウンタが実際に生成されるファイルのそれとキッカリ同期していることが前提ですが、実際どうなんでしょうね?
 しかも、このツールの計時は内蔵時計から現在時刻を秒単位で取得して時間計算をしているので、OKボタンを押したタイミングによっては1秒近くの誤差が生じてしまいます。これはちゃんとVBのTimerコントロールを使えば解決できそうですが、今のところ1秒程度の誤差が問題になる類のソフトでもないので放置しています。
#つーか、Timerコントロールから経過時間を取得する方法がわからんかっただけ…

動画眼補助ツール「動画眼Note」リリース

動画眼Note
 とある業務で必要になったので作ってみました。
 ビデオ分析ツール“動画眼”は、動画ファイルを再生しながらメモを記入しておくと、後でメモをクリックした時に該当シーンが瞬時に頭出しされて視聴できる、というシロモノです。キーボード・ショートカットで一定秒数早戻ししたりといった機能が充実しており、ビデオ・ディクテーター(テープ起こし)などに便利です。
 ただ、残念なことに動画眼は既存の動画ファイルを再生しながらの記録を行うことしかできず、ユーザテストの本番中にメモを取っていくことができない為、イマイチ実用性に欠けていました。動画眼から直接キャプチャデバイスを制御するのが大変なんです。機種毎の互換性の問題もありますし。
 そこで発想を転換して作ったのが「動画眼Note」です。動画の再生も録画も行わずに、ただ空タイマーをまわして、メモを記録していくだけのシンプルなツールです。メモは動画眼で直接読み込める形式で保存されるので、タイマーとビデオデッキの開始だけ「せぇの」で揃えてやれば、別々に作成したログと動画ファイルを同期させることができる、というワケです。「では始めます」などと言いながらタイマーを開始。ビデオの方は少し早めに回し始めておいて、後でキャプチャする時に編集ツールで「では始めます」のところまでを切り落としてしまえば良いでしょう。
 また5つの定型文を簡単に設定、利用できるショートカットも用意しました。Alt+1~5キーで一発入力可能です。
 ロックオン機能も健在です。まずAlt+Lでタイムコードだけロックし、それからゆっくり手入力メモを書いていくことができます。
 とてもチープな実装方法ですが、おかげで以下のような使い方もできます。
 動画眼のログは単純な「タイムコード(秒)<TAB>メモ<改行>」形式のテキストファイルです。なので、複数の観察者が各個に動画眼Recorderでメモをとったログを、Excelなどでマージ&ソートしたりできます。シミュレーター側で画面遷移などのイベントログを吐かせたものを混ぜても良いでしょう。
(動画眼側でも自動ソートがかかるので、ログのサイズがあまり大きくないものであれば、単に連結するだけでも良いはずです)
 mixiのユーザビリティ屋のコミュニティで、この手のツールの要求仕様をまとめて、誰かに委託して作成してもらおう、という動きがあります。是非この手のツールを使ってみて要望があればお知らせ下さい。

2005/5/31 名称変更

 録画機能もないのにRecorderとはこれいかに、とツッコミをいただいたので、ソフトウェア名称を「動画眼Note」に変更しました。

動画眼、バグ修正

動画眼
 ビデオ分析ツールの動画眼にアホゥなバグを見つけたので直しました。保存したログを読み込んで、更に書き加えようとすると、せっかく読み込んだログがクリアされてしまうというものです。
 いやぁ、こんなバグが1年も放置されていたのは、誰も(作った本人すらw)使ってない証拠だなぁ…

RD-Style Mail for PalmをRD-Z1対応にしました

道具眼製Palmware

 東芝のHDD/DVDレコーダーにメールで録画予約をするPalmwareです。
 約1年ぶりのバージョンアップです。自宅機をデジタルチューナー内蔵のRD-Z1に買い換えたのを機に最新予約文法に対応させました。
 地デジやBSデジタルのチャンネルを指定するインターフェイスなど、改変に手間がかかる部分は手抜き実装の簡易対応ですが、一応Palmだけで全項目の指定が完了できるようになっています。
 RD-Z1用のデジタルチューナー関連の項目以外にも、X5、XS5x系、XS4x系(41以降)、XS3x系、XS2x系、H1などの最近機種で追加された画質のA1、A2設定などの項目も網羅しています。

 正直、自分でもほとんど使わないくらいで、どれくらい需要があるかわかりませんが、今でも時々ムック本などで紹介していただくので、メンテしてみました。
 ちなみに先日はこちら→の書籍で紹介していただきました。

dgMSヘルパー、PSP式対応

 dgMSヘルパー[道具眼的Palmware]にPSPやCLIE VZ90用の動画ファイル(拡張子.MP4)の処理を追加しました。拡張子.MP4のファイルをドロップすると、設定したメモリースティックドライブの\MP_ROOT\100MNV01というフォルダに、M4Vxxxxx.MP4(xxxxx部は自動振番)というファイル名でコピーします(動画形式は変換しません)。また、同一フォルダに同名のサムネイルファイル(拡張子.THM)が存在する場合は一緒にコピーします(ドラッグ&ドロップはMP4ファイルだけでOKです)。