45本のビデオテープをデジタル化する8年がかりの挑戦(前編)
この8年間、私はビデオテープが詰まったこの箱を抱えて、4つのアパートと一軒の家を渡り歩いてきました。中身は子どもの頃の家族のホームビデオです。
600時間以上を費やした末、ようやくすべてをデジタル化し、きちんと整理して、原本のテープを処分できる状態にしました。今では映像はこんなふうに視聴できるようになっています。


すべてのホームビデオをデジタル化し、プライベートなメディア共有サーバーから視聴できるようにした状態
映像は全部で513本のクリップに分かれており、それぞれにタイトル、説明、収録日、映っている人すべてのタグ、そして収録当時のそれぞれの年齢が付いています。すべては家族だけがアクセスできるプライベートなメディア共有サイトで公開しており、運用コストは月1ドル未満です。
この記事では、私がどうやってこれを成し遂げたのか、なぜ8年もかかったのか、そして同じことをもう少し少ない労力で実現する方法についてお話しします。
甘かった最初の挑戦
2010年頃、母がVHSをDVDに変換する機器を買い、わが家のホームビデオをすべてそれでDVDにしました。

母が作ったテープのDVDコピー(抜けているアルファベットがどうなったのかはわかりません)
問題は、DVDが1セットしかなかったことです。家族はみな別の州に住んでいたので、ディスクを回し合うのは不便でした。
2012年、姉からそのDVD一式を受け取りました。私はそれらを動画ファイルにリッピングし、すべてクラウドストレージにアップロードしました。これで解決です!

Google Cloud Storageで家族のホームビデオのDVDリッピングを共有したときの画面
数週間後、誰か観たか尋ねてみました。誰も観ていませんでした。私自身も観ていませんでした。YouTubeが当たり前になった時代に、3時間もある正体不明のファイルをダウンロードして面白い場面を探すのは、あまりにも退屈だったのです。
唯一喜んでいたのは母でした。「よかったわね」と母は言いました。「じゃあ、ようやくこのテープ全部捨ててもいいの?」
まずい、と思いました。もし見落としたテープがあったらどうしよう。もっと高画質でデジタル化できるとしたらどうしよう。VHSのラベルに貴重な情報が書かれていたらどうしよう。
すべての映像を可能な限り高画質で漏れなく保存できたという確信が持てるまで、原本のテープを捨てる気にはなれませんでした。つまり、自分でやるしかないということでした。
自分が何に足を踏み入れたのか、その時はまだわかっていませんでした。
そんなに難しそうには聞こえないのに
なぜこれに8年も数百時間もかかったのか、不思議に思われるかもしれません。無理もありません。私自身も最初は簡単な作業だと思っていました。
デジタル化の工程を最初から最後まで図にすると、こうなります。
いや、これはあくまで理論上の話です。実際はこうでした。
費やした時間の大半はやり直しでした。ある工程を終えても、1つか2つ先の段階で手法の欠陥に気づくのです。たとえば、20本のテープを取り込んだあとで、音声がわずかにズレていることに気づきました。あるいは、何週間もかけて編集した後で、出力した動画形式がオンラインでのストリーミングに対応していないことに気づいたこともあります。
みなさんの正気を保つためにも、ここでは常に後戻りしてやり直していた現実ではなく、一貫して前に進んだかのように工程を説明していきます。
ステップ1:映像の取り込み
話を2012年に戻します。母は20年間にわたる家族のホームビデオの管理人をやめたがっていたので、次に会ったときにビデオテープがぎっしり詰まった大きな段ボール箱を私に手渡しました。こうして私のデジタル化の冒険が始まったのです。
素直に考えれば、専門業者に外注するのが手っ取り早いでしょう。デジタル化を請け負う会社はたくさんありますし、古いホームビデオの処理を専門にする業者もあります。
私はプライバシーにはわりと敏感な方なので、見知らぬ人に自分のトイレトレーニングの映像(適切な年齢のものです。変な意味ではありません!)を渡すのには抵抗がありました。それに、ビデオのデジタル化なんて、どれほど難しいというのだろうとも思っていました。
ネタバレすると、とてつもなく難しいのです。
最初の取り込みの試み
実家のVCRはまだ父の家の地下にあったので、今度昼食を共にするときに掘り出しておいてくれるよう頼みました。Amazonで安いRCA-USB変換アダプタを買い、早速作業に取りかかりました。

TOTMCビデオキャプチャデバイス、この過程で購入した数多くのAV機器の最初の一台です。
USBキャプチャデバイスからの映像を処理するために、VirtualDubを使いました。2012年時点でもやや古いソフトでしたが、そこまで古いというほどでもありませんでした。

VirtualDubを使って、4歳の私が父に本を読み聞かせている映像を取り込んでいるところ
音ズレという厄介な災厄
編集を始めてから、音声と映像がわずかにズレていることに気づきました。まあいいか、少し音声をずらせば直るだろうと思いました。
10分後、またズレていました。最初にずらした量が足りなかったのでしょうか。
やがて気づきました。音声と映像は単にオフセットしているのではなく、取り込みのレート自体が違っていたのです。テープが進むにつれて、ズレはどんどん広がっていきます。同期を保つには、数分おきに手作業で音声を調整し続けなければなりませんでした。

映像の取り込みで音声と映像のレートが異なると、数分ごとに手作業で音声を補正するしかありません。
10ミリ秒早すぎる音と10ミリ秒遅すぎる音を聞き分けるのがどれほど難しいかご存じでしょうか。本当に難しいのです。ご自身で判断してみてください。
こちらは、私が辛抱強い愛猫のBlack Magicと遊んでいる映像です。音声が映像とわずかにズレています。音声は映像より進んでいるでしょうか、それとも遅れているでしょうか。
音声と映像がズレているクリップの例
Magicがジャンプする場面を1/5倍速にしたものがこちらです。
音声と映像のズレを1/5倍速で再生したもの
数百時間を無駄にするより、100ドル多く払うべきだった
音声の補正だけで、何時間もの気の遠くなるような退屈で苛立たしい作業がかかりました。ようやく気づいたのです。Amazonで一番安いキャプチャデバイス以外のものを選べば、この頭痛の種を避けられたかもしれないと。もう少し調べて、新しいデバイスを買いました。

2台目のビデオキャプチャデバイスの購入
新しいデバイスを使っても、やはり音ズレは解消しませんでした。
スーパー化
もしかするとVCRに問題があるのかもしれません。デジタル化フォーラムによると、「タイムベースコレクタ」(TBC)を搭載したVCRなら音ズレは起きないとのことでした。これはSuper VHS(S-VHS)対応のVCRによくある機能です。
なるほど!普通のVCRでちまちまやっていないで、問題を解決してくれるスーパーなVCRを使えばよかったのか!
S-VHS対応のVCRはもう製造されていませんが、eBayではまだ手に入ります。私はVHSのデジタル化に適しているとされるJVC SR-V10Uという機種を179ドルで購入しました。

eBayで179ドルで購入したビンテージのJVC SR-V10U VCR
スーパーVCRが郵送で届きました。何ヶ月も音ズレに悩まされてきた私は、すべての問題を解決してくれるはずの機材を手にしたことが嬉しくてたまりませんでした。
箱を開け、すべてを接続してみると、やはり音声はズレたままでした。はあ。
気の遠くなるトラブルシューティングと、数年続いた停滞
機材のトラブルシューティングは本当にうんざりするものでした。押入れから機材を引っ張り出し、デスクの裏に這い込んで配線し、取り込みを試しては、やはりうまくいかないことを確認するのです。
2008年のあるフォーラム投稿に「怪しい署名なしの中国製デバイスドライバを入れろ」と書いてあったりします。とんでもない話ですが、藁にもすがる思いで試してみます。もちろん直りません。
別のキャプチャソフトも試しました。VCRの磁気ヘッドをクリーニングするための特殊なVHSテープも買いました。3台目のキャプチャデバイスも買いました。結果はいつも同じでした。
結局、あきらめてすべてを取り外し、機材をまた数ヶ月間押入れに追いやるのです。
プロへの降伏
時は流れて2018年。私はこのビデオテープと大量の機材を4つのアパートにわたって引きずり回し、ニューヨーク市からマサチューセッツへの引っ越しを控えていました。自分では絶対に終わらないとわかったものを、また引っ越しで運ぶ気にはなれませんでした。
家族に、テープをデジタル化業者に送ってもよいか尋ねました。幸い、誰も気にしませんでした。みんな、映像をまた観られることの方がずっと楽しみだったのです。
私:でも、業者にうちのホームビデオ全部を見られるってことだよ。それでもいいの?
姉:うん、気にしないよ。気にしてるのはあんただけだよ。てか、最初からお金払って頼めばよかったんじゃないの?
私:えーと……
45本すべてのデジタル化にかかった費用は750ドルでした。高く聞こえるかもしれませんが、その時点では、もう1分たりとも機材のトラブルシューティングをしたくないという気持ちでいっぱいでした。
返ってきたファイルの画質は、明らかに良いものでした。私が取り込んだ映像にはいつも端の部分に「ティアリング(引き裂き)」が出ていましたが、業者は一切歪みのない状態でデジタル化してくれました。何より、音声と映像が完璧に同期していました。
業者の取り込みと私自身の取り込みを比較した映像がこちらです。
プロによる取り込みと私自身の取り込みの比較。母が私の初めてのプログラミング体験を撮影したテープです
ステップ2:編集
ホームビデオでは、映像の約90%は退屈で、8%は面白く、2%が素晴らしい場面です。テープをデジタル化した後も、やるべき作業はまだたくさん残っています。
Adobe Premiereでの編集
VHSテープには、無音部分を挟んで長い一連のクリップが収録されています。テープを編集するには、各クリップがどこからどこまでなのかを特定しなければなりません。
編集にはAdobe Premiere Elementsを使いました。買い切りで100ドル未満で買えるソフトです。VHSテープの編集で決定的に重要だったのは、拡大縮小できるタイムラインでした。これにより、まず大まかにシーンの切れ目を見つけ、次にズームインしてクリップの開始・終了フレームを正確に特定できます。

Adobe Premiere Elementsの非常に便利な拡大縮小可能な編集タイムライン
Premiereの問題は、頻繁に開始と停止を繰り返さなければならないことでした。私の手順は次の通りでした。
- 30〜120分の映像が入った未編集のキャプチャファイルを開く。
- 個々のクリップの境界に印を付ける。
- クリップを書き出す。
- 書き出しが終わるまで2〜15分待つ。
- テープが終わるまで手順2〜4を繰り返す。
長い待ち時間のせいで、私は常に動画編集と別の作業の間でコンテキストスイッチを強いられ、何時間も集中力が散漫になっていました
もう一つの欠点は、再現性がないことでした。小さなミスを修正するのも、最初からやり直すのとほぼ同じくらい大変だったのです。それが動画共有の段階で深刻な問題になりました。そのとき初めて、Webブラウザがネイティブにストリーミングできる形式で書き出すべきだったことに気づいたのです。選択肢は、数百ものクリップを書き出す退屈な作業をやり直すか、書き出した動画を別形式に再エンコードして画質を劣化させるかのどちらかでした。
自動編集
恥ずかしいほど長い時間手作業でやってきた後、人工知能に任せられないかと考えました。クリップの境界を特定するのは、機械学習にぴったりのタスクに思えました。精度は完璧ではないだろうけれど、80%は自動でやってくれて、残りの20%を手で直せばいいかもしれないと思ったのです。
pyscenedetectというツールを試してみました。これは動画ファイルを解析し、シーンが切り替わるタイムコードを出力してくれます。
$ docker run
--volume "/videos:/opt"
handflucht/pyscenedetect
--input /opt/test.mp4
--output /opt
detect-content --threshold 80
list-scenes
[PySceneDetect] Output directory set:
/opt
[PySceneDetect] Loaded 1 video, framerate: 29.97 FPS, resolution: 720 x 480
[PySceneDetect] Downscale factor set to 3, effective resolution: 240 x 160
[PySceneDetect] Scene list CSV file name format:
$VIDEO_NAME-Scenes.csv
[PySceneDetect] Detecting scenes...
[PySceneDetect] Processed 55135 frames in 117.6 seconds (average 468.96 FPS).
[PySceneDetect] Detected 33 scenes, average shot length 55.7 seconds.
[PySceneDetect] Writing scene list to CSV file:
/opt/test-Scenes.csv
[PySceneDetect] Scene List:
-----------------------------------------------------------------------
| Scene # | Start Frame | Start Time | End Frame | End Time |
-----------------------------------------------------------------------
| 1 | 0 | 00:00:00.000 | 1011 | 00:00:33.734 |
| 2 | 1011 | 00:00:33.734 | 1292 | 00:00:43.110 |
| 3 | 1292 | 00:00:43.110 | 1878 | 00:01:02.663 |
| 4 | 1878 | 00:01:02.663 | 2027 | 00:01:07.634 |
...
確かに80%程度は正確でしたが、その成果をチェックするのに、節約できた時間以上の時間がかかってしまいました。それでも、pyscenedetectはこのプロジェクト全体で最も重要な気づきのきっかけをくれました。シーンの境界を特定する作業と、クリップを書き出す作業は別のタスクだということです。
自分がプログラマーであることを思い出した
それまで私は、Adobe Premiereでやっていたことすべてを「編集」だと思い込んでいました。未編集の映像からサブクリップを切り出す作業と、クリップの境界を探す作業は、Premiereの見せ方からして切り離せないものに感じられたのです。pyscenedetectがメタデータの表を出力したとき、シーンの検出と動画の書き出しを分離できることに気づきました。それが大きな転機になりました。
編集があれほど退屈で時間がかかった理由は、Premiereでクリップごとに書き出しを待たなければならなかったからでした。もしメタデータをスプレッドシートに記録し、動画を自動で書き出すスクリプトを書けば、編集作業はあっという間に進むはずでした。
さらに、スプレッドシートによって扱える情報の幅がぐっと広がりました。当初はファイル名にメタデータを詰め込んでいましたが、それでは制約が多く柔軟性に欠けます。スプレッドシート全体を使えることで、誰が映っているか、いつ録画されたか、そして動画を観るときに一緒に表示したいあらゆるデータを、もっと豊富に記録できるようになりました。

巨大なスプレッドシートでホームビデオのメタデータを管理しているところ
後に、そのメタデータを使って、映っている人全員の当時の年齢や、クリップで何が起きているかの詳細な説明といった情報を追加できるようになりました。

スプレッドシートの柔軟性のおかげで、クリップに関するより多くの情報を記録し、閲覧しやすくするためのメタデータを付与できるようになりました。
自動化された解決策の栄光
スプレッドシートを手にした私は、スクリプトを書いて、CSV入力に基づいて未編集の動画を小さなクリップに分割するようにしました。
この時点で、私はPremiereでクリップの境界を地道に選び、書き出しボタンを押し、数分待ってからまた最初から、という作業に何百時間も費やしていました。しかも、後になって品質上の問題に気づき、同じ映像でこのプロセスを何度も繰り返していたのです。
クリップの切り出し部分を自動化したことで、肩の荷が大きく下りました。メタデータを忘れたり、出力形式を間違えたりする心配がなくなったのです。もし後からミスが見つかっても、スクリプトを少し直して再実行すれば済むようになりました。
後編へ続く
クリップの取り込みと編集は戦いの半分に過ぎませんでした。家族と楽しく、安全に、そして手頃な価格で共有する方法がまだ残っていました。
この記事の後編では、月わずか0.77ドルでこれらのクリップを家族と共有するために使ったオープンソースのメディアサーバーについて紹介します。
イラスト:Loraine Yow
これらのクリップや写真の一部を共有することを快諾してくれた家族、そもそもすべてを記録してくれたこと、そしてこの長い過程を通じて支えてくれたことに心から感謝します。
記事をランダムに読む


