動画眼のソースコードをGitHubで公開しました

Pocket

久しぶりに要望があったので動画眼のソースコードをGitHubに公開しました。

https://github.com/do-gugan/Do-gagan

Issue(機能要望やバグ報告)なども書き込めますのでよろしければご利用くださいませ。

急ごしらえしたのでファイルが足りているかわかりませんが、新規クローンでビルドできたので多分大丈夫だと思います。

15年も前のVB.NETコードに継ぎ足し、というかツギハギしてきたものなので小っ恥ずかしいですが、、、

そろそろC#にしてXamarin.FormとかでmacOSでも動くようにできたらなぁとは思いつつ、なかなか本業が忙しくて着手できずにいます。どれくらいニーズがあるのかもあんまりよくわからないので、本気で欲しいという方はお知らせいただければと思います。声が多ければ腰を上げる可能性が高まります(笑)。

 

動画眼に検索機能を追加しました

Pocket

初期バージョンリリースから13年を経て今更ながら動画眼に検索機能をつけました。今までなかったのかよ!と(笑)。今回Watsonによるテキスト起こしデータを流し込んでみて初めて気付きました。本来は自分でテキストを入力していくものというイメージだったのが、そうでないテキストデータを流し込んでビューワー的に使うコンテクストになって、これは検索ないと不便だぞと。

一応逐次検索と一括全選択(件数報告付き)ができるようにしてみました。

その他、.NET Frameworkを4.7にしてHiDPI(高解像度)なモニタの機種でフォントが綺麗になったかも知れません(実感できておらず)。またWindows10でフォーカス色が濃い青になり黒い文字と相性悪かったので色を薄くして水色にしてみました。

アップデートはCliceOnceでお願いします。手順がよくわからない方はこちらを参考にしてください。証明書は相変わらずついてないです、ごめんなさい。

IBM Watsonを使ってUT発話記録を書き起こして動画眼で眺めてみた

Pocket

普段、自分の業務ではあまり必要になったことないんですが、先日業界の飲み会で割とUT記録の書き起こしして、そして苦労してるんだなと感じたので、ちょうどいま別件でWatsonを活用する仕事に関わってるのでAPIの勉強がてらツールをプロトタイピングしてみました。
UTの動画ファイルから音声を分離し、Wasonにアップ、返ってきたJSON形式のテキストを見やすいタブ区切りテキストに変換し、拙作のフリーソフト動画眼(タイムスタンプ付きテキストをクリックすると動画の頭出しをしてくれる)に元の動画といっしょに食わせるところまで成功。

その様子がこちら(文字が読めるよう全画面表示でご覧いただくことをオススメします)。

精度としては感覚的に6割以下ってところですかね。モデレーターの「よろしくお願いします」みたいなはっきりかつ頻出なフレーズはちゃんと拾えるけど、被験者の思考発話は途中で途切れたり文章として成立しない場合も多いので、AI補完が入って語尾が勝手にかわったりしがち。単語も全然違ったりしてます。アスキングのコメントは少しマシですかね。まぁ、それでも、

  • 動画からあるシーンを探し出して見返したいというスポッティング作業の効率向上
  • ゼロから手で起こすより、これを直していった方が早いのでは仮説(対応してくれる業者いるのかしら)

とか場面を限定すれば実用性はありそう。

費用感ですが、本ツールを無償で公開したとして、WasonのSpeech To Text APIの利用料が(辞書登録など音声モデルのカスタマイズをした場合で)$0.03/分なので、60分のセッションを丸起こしさせたとして200円くらい?音声ファイルの長さで計算されるのか、変換にかかった時間なのか不明あやふやですが、実際変換はほぼ実時間くらいかかるのでどちらでもそう変わらないかと。結果がいまいちで、そのタスクや業界固有の用語を辞書に追加したりして何度かやり直しかけたりしてもまぁそんなにスゴい値段にはならないかと。

以下ざっくりステップ毎に解説。

0. WatsonのID取得

先日無償化が発表されましたがSpeech-to-Textは対象に含まれず。執筆時点で30日無料体験もあります。

1. 音声ファイルの用意

ICレコーダーで録ったならそのまま使える。ビデオカメラやスマホカメラの場合、音声だけ抽出してwavやmp3、ogg、WebM、flacなどにする必要があります。後述のCurlを使うアップロード方法(Sessionless)だと100MBまでしか一度に送れないので、mp3やflacのような圧縮率の高い形式にするのがヨサゲ。可逆の方が精度は出るだろうからflacがいいかも知れない(そういえばFLACで直接録音できるICレコーダーってないのかな?)。まぁコーデックやビットレートでどれくらい差が出るかはちゃんと検証できてないです。

今回は1万円ちょっとするPegasysのTMPGEnc Video Mastering Works 6を使用しましたが、カット編集が不要ならフリーでいくらでもあると思います。>音声分離

2.音声ファイルをWasonにアップロード

専用ツールを開発しない場合、黒い画面で使うCurlというテキストブラウザが使える(ブラウザからでもできると思うけど一括自動かという意味で)。CurlはmacOSなら標準搭載。Windowsだと自分でダウンロード&インストールが必要。そしてコマンドラインオプションとして、アップするファイル名、モデルと言語指定、出力ファイル名、タイムスタンプをつけるオプション、話者識別記号をつけるオプションだと、100文字以上の呪文になる(コード例1)ので、今回ツール1として、Windows向けフォームアプリを作成(画面写真1)。ちょうやっつけGUIですが、音声ファイルをドラッグ&ドロップし、IBM CloudのID&PWを設定したら送信ボタンを押すだけで、結果がテキストファイルに保存されます。認識にはほぼ実時間かかるので、複数ファイルをまとめて逐次処理できるようにしています。

コード例1. Curlによる送信例

↑これが↓こう。

画面写真1. 作成したプロトアプリ

CurlのフロントエンドUIを作っただけなので、Sessionlessなままで100MB制限が残る。もうちょっと真面目に作ってSessionあり(常時通信)で実装しなおせばそこら辺はとっぱらえるし、その気になればリアルタイムでテキストが落ちてくるような形もできるはず。

また辞書登録は未実装。WatonのAPIとしては、例えばサンプルでは「安藤」が「&」に認識いされちゃってるけど、そういうのを狙った表記に寄せられる。また「アイトリプルイー」とか出てきたら「IEEE」と書け、いったことにも使える(とマニュアルに書いてある)。

あと作ってからlibcurlの存在に気付く。これを使う用にすれば別途Curlをインストールすることなしに配布できるのかな?ちょっとライセンス周りを勉強しておきます。C#用のラッパーも見つけました

3. JSON形式からの変換

Watsonからの戻りデータはWebエンジニアさんにはお馴染みのJSONなので普通に眺めるには辛い。

こんな感じ。

単純にtranscriptを抜き出せば良さそうですが、これにはタイムスタンプがついてきません。ので手前の「よろしく」についてる17.8秒という情報を使います。またそのタイムスタンプで誰がしゃべってるかをspeaker_labelsオブジェクトから探してきて、speakerプロパティを抽出する必要がありました。ちなみにcondidenceは信頼度、つまりWatsonの自信度合いで0〜1の値がつきます。

で、これを自動でタブ区切りテキストに変換するため、ツール2としてC#でコマンドラインツールを作成。Visual Studio for Macで作ってmacOSで動いてますが、まぁ前後ツールの関係で実質はWindowsで使うことになりますかね?ただ自分でWatsonに投げられて、Excelで読めればいいやって向きにはMac版のニーズもあるかも知れません。VS for Macが吐いた.exeファイルをVS無しで単体で実行可能にする方法をまだ調べてない…(それよかツール1をMacに対応させた方が早いかもしれません。Xamarin.Formとか使えば両方で動くものにできるんじゃないかと)

ツール2はコマンドラインツールですが、使い方は変換するファイル名をオプションでつけるだけ。ただ後も先も.txtファイルなのでファイル名をどうしようか思案中。今は末尾に.txtをついかしてるので、hoge.txt.txtみたいになってしまう。動画眼で使うなら動画ファイル名と同名拡張子違いが一番都合がいいので、アップローダーで保存するファイル名を、hoge.watson.txtになるようにして、こっちで.watsonを抜く、とかがいいかな。

・タイムスタンプ

Watsonに投げる時に timestamps=true オプションをつけると、上記例の通り単語というか音節ごとにタイムスタンプがついてきます。残念ながら文章単位ではない。そこでひとまとまりの文章の中の最初の固まりの先頭タイムスタンプをとってきて文章とセットにする、という処理をしている。

・話者認識

同様に speaker_labels=trueオプションをつけると話者情報(speaker_label)がついてきます。デモ動画の中では「」の前にある0とか2が話者コードです。最初の登場人物から順に0からふられてくぽい。この動画では二人しか出てこないはずなんですが、なにかが一瞬1と誤認され、以降0さん(被験者)と2さん(モデレーター)になってしまいました。これも文章単位ではなく音節単位でしかも末尾にまとめて付加されるので処理が面倒でした。また全体としては1つの文章として認識してるのに、話者コードが途中で入れ替わることもあります。片方の発話を遮るようにもう一人がしゃべりだしたりするとそうなりがち。結局transcroptionプロパティを捨てて、alternative1つずつを拾ってつないでいきつつ、話者コードを調べて切り替わった時点で手動で文章も切り離すという処理にし、実装にえらい苦労しました…
数字を名前に置換する機能とかあるといいんでしょうけど、認識してみないと誰が何番になるかわからないので、このJSON変換ツールでというより動画眼なり後段階のツールの仕事にするのがいいかなと思っています。

4. 動画眼(既存ツール)

動画眼はタイムコードとメモがタブ区切りペアになったテキストファイルと、動画または音声ファイルをセットで読み込んで、メモ(発話内容や行動)をダブルクリックすると、そのシーンが頭出し再生される、もしくは再生しながらメモを書き込むとタイムスタンプ付きで記録してくれる、というUT見返し用の拙作フリーソフトウェアで、こちらで配布しています。

今回3.のツール2の出力はこれと互換性があるので、元になった動画/音声ファイルとツール2が出力したタブ区切りテキストを読み込ませることで、サンプル動画のようなことが可能になる。なお、青いフォーカス行が移動してるのは手動で操作してるからです。動画の進行にあわせて自動で進んでくわけではありませんのであしからず。

あとこうなってくると検索機能が欲しいよなってことで、初リリースから十余年を経てついに実装しました(何故か考えたことすらなかったw)。近日リリースします。

まとめ

とまぁ書き起こしてみると大変そうだけれど、一度セットアップしてしまえばそれなりの手軽さでここまでできるよっていう技術デモです。驚愕するほどの認識精度ではないですが、実際にセッションを見ていたモデレーターや見学者が、概要思い出したり、特定のシーンを探す手助けくらいにはなるんじゃないかと。また書き起こしをする際のドラフトに使ったらゼロから手で起こすよりは楽になるんじゃないかとか。精度は録音状態にも大きく左右されますね。今回は10年以上前にとったもので撮影機材は定かではないですが、DVだったような気がします。取り込んだ動画の音声はPCMでしたが途中不可逆圧縮を経たか不明。いずれにせよアップロード段階でMP3にしちゃいました。WAVのままで短い区間で試したサンプルはもうちょいマシだったような気もしますが定量的には比べてないです。別件で携わっている教室のディスカッション起こしは別グループの声とかノイズが多いので話者毎に口元マイクを使って別トラックでとるということをして、精度を追求していますが、UTの実務現場ではなかなか現実的ではないかなと。なるべく高音質に録って、そのままWatsonにいれるのが良さそう。その意味でツール2をセッションレスからセッション通信に再実装して100MB以上のアップができるようにしておきたいところです。

ツール1、2はもう少し整備してから公開しようと思っています。コードが汚いと叩かれそうだけどソースごとGitHubにあげましょうかね。誰かが活用&改善してくれることを願って。まずは多少のセットアップはいとわないので試してくれるクローズドβテスターさんがいたらお声がけください。

謝辞

本記事のトライアルにあたっって、羽山さん(@storywriter)の記事を大変参考にさせていただきました。この場を借りてお礼申し上げます。また今度是非Watsonトークしましょう!

ClickOnce形式で配布するアプリのセットアップ手順

Pocket

開発ツールの都合で、動画眼はじめ当サイトで配布するWindows向けツールの配布方法を従来のSetup.exeインストーラーを利用する形式から、ClickOnceというブラウザからインストールする形式にシフトしていこうと思います。そこで、馴染みのない方向けに簡単な説明をば。

ClickOnceの特徴

ClickOnceはMicrosoftの開発ツールVisual Studioに含まれる配布形態で、以下のような特徴があります。

■配布者側

  • 開発ツールからメニュー一発で直接配布サーバーに登録でき、圧縮やアップロードの手間が省ける。

■ユーザ側

  • ブラウザ上の「インストール」ボタンからインストールでできる(後述のブロック解除手順は必要)
  • 更新版の自動確認機能がある
  • 前バージョンに戻す機能もある

など双方にメリットがある方法となっています。

インストール手順

動画眼を例にとって説明します。配布ページのインストールリンクを辿っていただくとこんなページが出ると思います。

clickone1

「インストール」ボタンをクリックするとsetup.exeがダウンロードされ実行されます(ブラウザの設定によっては警告が出ると思いますが、実行を許可してください)。

続いてこれまたWindowsのバージョンやセキュリティ設定、対策ソフトの状況にもよるのですが、未署名配布なので警告がでると思われます。Windows10の場合を例にとると、こんなダイアログが出るはずです。

clickone2

「詳細情報」リンクをクリックしてもらうと、下のように「実行」ボタンが現れます。

clickone3

インストーラーであるsetup.exeと、インストール後の実アプリの初回実行時の計2回この操作が発生します。お手数ですがご勘弁ください。2回目の実行を許可していただくと、従来通りの画面が起動すると思います。

更新手順

アップデート版がサーバーに公開された場合、起動時に「利用可能な更新があります」というダイアログが表示され、「OK」ボタンを押せば最新版がダウンロードされます。いちいちブラウザで当サイトにアクセスして最新版をダウンロードする手間がありません。もちろんそこで「スキップ」もできます。

ロールバック手順

一度最新版にしたものの不具合があるので前バージョンに戻したいという場合、Windowsのコントロールパネル「プログラムと機能」から1つ前のバージョンに戻すことができます。下のように「道具眼」を右クリックして「アンインストールと変更(U)」を選びます。

clickone4

そうするとこんなダイアログが出ます。この例では前バージョンが保存されていないのでグレーアウトしてますが、存在する場合は「アプリケーションを以前の状態に復元します。が」が選択可能になっているはずです。

clickone5

当面、問題が指摘されてない限り、順次このClickOnce方式にしていこうと思います。

ようやくiOSアプリ第一弾AccentViewer公開

Pocket

最初にdefault languageの設定を間違え、Appleに修正依頼をするも梨の礫。結局半年分のライセンスを諦めて別アカウントを取り直してみるも契約情報が既に存在するというエラーが出て有料アプリ設定ができず、これまたサポートに出して返事がない。結局日本のサポートに電話したところ、iTunes Connect設定は日本の部署では触れないが、要求は翻訳して本国に伝えるというのでまたまた待つことしばし。なんだかんだで二ヶ月ほど遅れてしまいましたが先ほどようやく公開にこぎつけました。

一本目はAccentViewerという文字通り日本語のアクセントを調べるアプリ。Twitterでとある現役の声優さんから頼まれて作ってみました。元々大辞林には見出し語の脇に小さくアクセント位置を示す数字が記載されてるんですが、これを視覚的に見やすい形で変換して表示するものです。Yahoo!辞書が大辞林のデータでひけるのでそれを利用してます。声優とかアナウンサーとか特定業種の人や日本語を学んでいる外国人の人などニッチ向けなんであんまり売り上げは期待してないです。むしろ知ってる声優さんがブログやTwitterで触れたりしてくれたら密かにニヤニヤして満足って感じ(笑)。

AccentViewer - 道具眼 (do-gugan)

 

また道具眼謹製iOSアプリの専用サイトを開設しました。

//do-gugan.com/iosapps/

またTwitterアカウントも専用のものを作りました。アプリ情報だけチェックしたいという方はこちらをフォローしていただくと良いかと思います。

http://twitter.com/do_gugan_apps

 

第二弾はもう少し一般向け(でもないか?)な動画プレーヤーアプリになると思います。一応完成してるので後は紹介文や画面写真などを用意してなるべく間を置かず公開したいと思います。

どうぞよろしくお願いします。

動画眼が映像の静止画保存に対応しました

Pocket

静止画キャプチャできないかというお問い合わせをいただいたのでちょっと手抜きですが対応してみました。Ver 1.5.1から対応になります。ダウンロードはこちらからどうぞ。

何年か前に検討した時に見つけた方法はどなたかが作ったライブラリを埋め込んで対応するやり方で、そのライブラリを含めた時の頒布条件が不明確だったので採用はしませんでした。で、今聞かれてふと思いついたのは、オープンソースの汎用映像変換ツールffmpegを利用する方法です。動画眼の裏でffmpeg.exeを起動し、タイムコードやファイル名を渡してやれば、後はffmpegが勝手にやってくれます。ただしこのやり方には多少問題点もあって、

1. ffmpeg.exeの同梱配布の許諾関係がよくわからない

オープンソースで無償利用可能ではありますがGPLというライセンスで配布されているので、これを利用すると動画眼もまたGPLで公開しなければならないなどの制約が生まれます。別にソースコードを公開する事自体は構わないのですが、更新の度にそれをサイトにアップするのも面倒らし、ライセンス条文をパッケージに含めなければならないのかとか、詳しいことが勉強不足でよくわかってません。

なので、とりあえずdgMP4Muxer等と同様、ffmpeg.exe自体は別途ダウンロードしてご自分で動画眼のインストールフォルダにコピーしていただく、という方式を採ってみました。お手間ですがご了承下さい。ダウンロードできるURLはマニュアルに示してあります。将来的に時間が取れたらちゃんと勉強してインストーラーに同梱する方向で考えてみたいと思います。

2. 動画眼と対応動画形式が異なる

動画眼はWindows Media Playerコンポーネントを利用して動画を扱います。今回の機能はそれとは全く独立にタイムコード(秒数)をffmpegに渡して処理をおまかせしています。なので、動画眼(=Windows Media Player)で読み込めてる動画形式が必ずしもffmpegで扱えるとは限りません。一般にはffmpegの方が扱える範囲は広いはずではありますが。また同じ秒数を指定しているのに微妙にズレたところが切り出されるといった可能性もないとは言い切れません。この辺り、まだほとんど検証ができてませんので、上手くいかなかったらごめんなさい、ということで。連絡いただければこちらで検証してみられるかも知れません(結局はffmpeg次第なのでどうしようもないかも知れませんが)。

3.やや処理が遅い

動画眼で表示している映像とは別に、裏でffmpegがその動画を開き、当該秒数のコマを静止画に保存するので、若干処理に時間がかかります。特に、DVD-Rに焼いてある映像ファイルを直接開いている場合などは顕著かも知れません。実際には「カシャーッ」とシャッター音がしてから2,3秒は裏で処理をしていると思って下さい。100行のメモ欄を一括選択して出力するとヒドく時間かかるかも知れません。またそういう場合のプログレスバー表示なども未実装です(すみません…)。

とまぁ、手抜き且つ実験的な実装ですが、それでもないよりはあった方が嬉しいという人もいるかと思い、最低限の手間で実装できる範囲でリリースしてみます。ご意見、ご要望などあればお知らせ下さい。

動画眼にちょこっと機能追加 MP4チャプター化支援

Pocket

動画眼にちょっとした機能を追加しました。

動画眼で作成したログ(タイムスタンプ付きメモ)を、MP4コンテナの動画に埋め込めるQuickTimeチャプター形式のテキストファイルとしてエクスポートする機能です。

■チャプター付きMP4コンテナ動画を作るとどうなるか?

MP4コンテナは三洋のXactiシリーズなど動画対応デジカメやiPhone、iPadといったiOSデバイスで中心的に使われているコンテナで、この形式は動画ファイル単体で音声トラックを複数保持したり、字幕やチャプターを保持したりといったことができます。

なので、動画眼で記録したログをチャプター情報としてファイルに埋め込んでしまえば、今までのように動画ファイルとログファイルをセットにしてやりとりする必要がなくなります。また動画眼なんていうよくわからないツールを先方にインストールしてもらわなくても(笑)、より一般的な再生ツールで閲覧してもらうことができます。

具体的な動作の様子をご覧に入れます。

まずはWindowsでもMacでもLinuxでも動作し、フリーで、もっとも多くの形式に対応したプレーヤーであるVLCでの例(各画面写真はクリックで拡大)。動画眼のログ単位でツールバーの「|<」、「>|」ボタンでスキップしたり、メニューで一覧を表示してそこから選んだりして頭出しをすることができます。

VLC_Sample 

こちらはAppleのQuickTime Playerで表示した例。タイムスライダーの脇にチャプター名が表示され、そこがそのままポップアップメニューになって一覧から選ぶことができます。ただし、QuickTime Playerで開く場合は動画の拡張子を.m4vに変更してあげないとチャプターを認識してくれません。またこちらは「|<」、「>|」ボタンは機能しません。

しかし、QuickTime Playerは今時はiTunesと一緒に入るし、仮に相手の環境に入ってなかったとしても、名の知れた大手企業のツールなので頼みやすいですよね。

QTP_Sample

お次は、(まぁ、役に立つかわかりませんが)iPhoneでの例。

IMG_0525 IMG_0526

チャプターが埋め込まれた動画を再生すると、矢印の位置にボタンが出現します。これをタップすると右の画面に遷移し、一覧からチャプター名で選ぶことができます。

残念ながらiPadのファームウェア3.2.1ではスキップはできるものの一覧は表示されません。おそらく2010年秋のiOS4で対応するんじゃないかと思います。iPadならプロジェクターにも出せるし、プレゼンとかでも使えそうですね。

とまぁ、クライアントさんに動画眼で区切った映像データを渡すのに、動画眼依存から脱却しより汎用性のあるフォーマットに移行できることはメリットがあるのではないでしょうか?

■実際の手順

今回動画眼が対応したのは、ログをMP4に埋め込む為の規定の書式に変換して書き出すところまでです。実際にMP4ファイルに埋め込むところは後述の別のツールを用います。規定の書式といってもファイル形式自体はテキストファイルなので、区別するために、.chapters.txtという二重拡張子のファイル名を用います。

作成はメニュー一発。「ファイル」->「chapters.txt形式でエクスポート…」を選ぶだけです。規定では動画ファイルと同じ場所に、動画ファイル名の拡張子違いのファイルが保存されます。「hoge.mp4」を開いていた場合は「hoge.chapters.txt」となります。この拡張子違いのファイル名で同じ場所にあることがポイントなので下手に変更しないで下さい。

さて、実際にchapters.txtをmp4の中に埋め込む作業がちと面倒ですが、慣れればどうってことないと思いますので、最初だけ頑張っておつきあい下さい。

・「パソコンとはDOS時代からの付き合い。コマンドプロンプト操作はへっちゃら」という人向けの乱暴な説明

こちらからmp4v2 tools trunkというアーカイブをダウンロードし、解凍してmp4chaps.exeというアプリケーションを適当な場所に保存します。で、実行はコマンドプロンプトで、

mp4chaps.exe –i –z 動画名.mp4

とするだけです。パスは適宜補完して下さい。動画名しか指定しないので、ここで同じ場所に拡張子違いでチャプターファイルを置いておくことが活きてくるワケです。-zオプションは「最適化」だそうで無くても平気かも知れません。

・「コマンドプロントは怖い。GUIでやりたい」という人向けに簡単なツール起こしました

dgMP4Muxerというツール作ってみました。元々個人の趣味用なので作りが雑だし、インストーラーもないですが一応GUIで上記作業ができます。ただし第三者のツールを裏で使うので、それぞれを拾ってきて解凍するなどの準備が若干必要です。具体的な手順はこちらのマニュアルをご覧下さい。チャプターを埋め込む分には、Audio欄やOther欄は空のままでOKです。Video欄、Chapter欄、Output欄だけが埋まってる状態で「Go!」を押せばできあがりです(普通はVideo欄に動画ファイルをドラッグ&ドロップすれば後は勝手に埋まります)。

■もし反響があれば、、、

やろうと思えば、動画眼から直接MP4ファイルにチャプターを書き込んでしまう機能を追加することはそう難しくはないです。逆にMP4ファイルを開いた時にチャプタ
ー情報があればログに変換して読み込む、といったことも可能でしょう。もはやMP4内のチャプターを直接編集するツール、といった装いです。XactiなどMP4形式がメインの人はその方が便利かも知れませんね。

MP4(内部映像H.264 AVC、音声AAC)はYouTubeやiPhone/iPadが採用したことで、多くの変換ツールや対応ハードが出回ってきています。グラフィックボードの演算能力を利用して高速に変換するソフトもあります。画質の割に小さなファイルサイズに縮みますし、こうしたチャプターや字幕といった付加データも自由に追加できるなど汎用性も高いです。PC上での動画ファイル形式として当面の主流になってくんじゃないでしょうかね。

あと、チャプターではなく字幕として埋め込みたい、なんてのもたぶん1日仕事くらいで対応できるんじゃないかと予想してます。こちらも要望があればチャレンジするかも知れません。

■オマケ:動画眼はMP4に対応してるの?

今回のバージョンアップで、動画を選択するファイルダイアログに置いて、.mp4と.m2ts(AVCHD形式のビデオカメラが使用)を対象として追加しました。時代的にこの2つはニーズが高いだろうと。

ただし実際に開けるかどうかはお使いのPCの環境に依存します。マニュアルにも繰り返し書いていますが、動画眼の動画再生周りはWindows Media Playerコンポーネントを利用しています。Windows Media Playerで開けるものは動画眼でも開けます。そしてWindows Media Playerがどの形式を扱えるかというのは、インストールされたコーデックによるのです。バージョンにもよります。Windows7に付属のWindows Media Player 12であればもしかするといきなりMP4が開けるかも知れません。逆にXP/Vista等に付属するWMP 8~11だと、別途コーデック(DirectShowフィルタ)をダウンロードして入れる必要があるでしょう。ウチはほとんどのマシンがWindows 7になってしまってますし、後から色々なソフトを入れてるので、もはや何と何を入れれば開けます、ということを調査するのは難しい状況にあります。場合によっては既存環境に影響も与えるので、そう気軽に「これを入れればOKですよ」と保証できないって側面もあります。ただ直感的には、ffdshowあたりが有力ではないかなと。

動画眼 v.1.3.9、地味な機能追加

Pocket

動画眼に地味めな機能追加を2点ほど。

■行編集にキーボードショートカット追加

従来、右クリックしてポップアップメニューから呼び出す必要があった行修正と行削除をメインメニューからもいけるようにし、そこにキーボードショートカットを追加してみました。

  • 行を修正 –> Ctrl+R
  • 行を削除 -> Deleteキー

Delete一発で行が消えてしまうのもどうかと思いましたが、まぁUndoあるしと思ってとりあえず確認無しにしています。ただ、動画眼のUndoはヒストリー型ではないので、ご注意下さい。

(ヒストリーってどういうアルゴリズムで実装すればいいんでしょうね。単にx個分のデータを保存するだけならいいんですが、途中まで戻って別の修正をした場合どうすんのか、とか考えると結構ややこしそう…)

■タイムスタンプ修正時の繰り上げ、繰り上げ処理

で、その行修正時に、タイムスタンプも修正できるように最近なったんですが、その際、秒カウンターを59以上に回すとちゃんと分カウンタが増えて、秒カウンタが0に戻る、というような動作を組み込みました。00秒や00分をまたいで増減するのがちょびっと楽になったと思います。

動画眼 Ver.2的なものへの着想

Pocket

えー、ぶっちゃけ最近仕事があんまなくてヒマなので、動画眼のVer.2製作に向けてアイデア出しと技術修練を始めてみました。 現時点の基本コンセプトは、

  • セッション中の記録を重視 (=動画眼Noteの強化)
  • 複数セッションの記録を集中管理
    • 同一タスクにおける他のセッションの記録を閲覧できる
  • 気になった現象から即座にカウンターを作成し、以後のセッションで発生回数を記録
  • タイムスケジューリング支援
  • タブレット等を使い手書きメモも書き込める
  • 簡易レポート出力

など。単に発生した事象を網羅的に記録するのではなく、観察者がセッションを追う毎に共通して発生する(=重要な)現象に気付き、そこを深掘りしていくという思考フローを支援するような作りを重視したいと思っています。

専任観察者が利用することが理想ですが、そういうリッチな現場ではなく、モデレーター(進行役)自身が利用することも考えて、時間管理用のバーグラフや、手書きメモ機能なんかも組み込んでみたいと思います。

とりあえずそんな考えで部品並べてみたコンセプトデザインはこちら(クリックすると拡大)。

dgnote_concept 一番下のメモ入力欄のプルダウンメニューで「カウンター作成」を選ぶと、「カウンター」枠にチェックボックスとして追加され、次セッションから発生率をカウントできるようになる感じです。あと、画面左では同一タスクの他のセッションではどうだっけ?ってのが閲覧でき、そこからコピペしたり、カウンター作成もできるようにしたいなと。

動画眼のウリであるピンポイント動画再生はもちろん搭載するつもりですが、全体から見れば1機能でしかないので、名称は「動画眼」ではなくなるかも知れませんね。「道具眼Note」とかどうでしょう。

さすがに、これくらいになるとテキストファイルで保存ってのは無理があるので、バックエンドにちゃんとしたデータベースを組み込んで作らないとなので、今はその辺の技術的研鑽を積んでいる状態です(ADO.NETとかXMLとか)。長い目で見守りつつ、なにか要望とかあればお気軽にお寄せ頂ければと思います。

動画眼 1.3.5 (バグ修正版)リリース

Pocket

動画眼のメモ入力欄で、

  • DeleteキーやShift+矢印キー(範囲選択)、End等のキーが効かない
  • 左端で←キーを押すとエラーになる

というご指摘を戴いたので修正しました。ダウンロードはこちらからどうぞ。

相変わらず細かいところでバグが残っていてすみません。

メモ欄以外でのキー入力もまとめて別のところで処理している都合上、ちょっと特殊な処理をしていて、一部のキー処理が無視されていたようです。全体的な処理を見直したので、テキスト欄におけるWindowsの一般的な挙動に近づいたと思います。

同日補足:

度々すみません。上記リリースに含まれるデスクトップのショートカットアイコンが壊れていましたので、1.3.6に更新しました。