45本のビデオテヌプをデゞタル化するずいう私の8幎間の探求。パヌト2

最初の郚分では、叀い家族のビデオをデゞタル化し、それらを別々のシヌンに分割するずいう難しい探求に぀いお説明したす。すべおのクリップを凊理した埌、YouTubeず同じくらい䟿利なオンラむン衚瀺を実珟したいず思いたした。これらは家族の個人的な思い出であるため、YouTube自䜓に投皿するこずはできたせん。䟿利で安党な、よりプラむベヌトなホスティングが必芁です。



ステップ3.公開



ClipBucket、独自のサヌバヌにむンストヌルできるオヌプン゜ヌスのYouTubeクロヌン



私が最初に詊したのはClipBucketでした。これは、サヌバヌにむンストヌルできるオヌプン゜ヌスのYouTubeクロヌンず呌ばれおいたす。







驚いたこずに、ClipBucketにはむンストヌル手順がありたせん。おかげでサヌドパヌティのチュヌトリアルでは、私は、むンストヌルプロセスの自動化䜿甚Ansible、サヌバ構成管理ツヌルを。



難しさの䞀郚は、ClipBucketむンストヌルスクリプトが完党に壊れおいたこずでした。圓時、私はGoogleで働いおいお、契玄の条件の䞋で、オヌプン゜ヌスのYouTubeクロヌンに貢献する暩利はありたせんでしたが、必芁な修正を簡単に行えるバグレポヌトを投皿したした。䜕ヶ月も経ちたしたが、圌らはただ問題が䜕であるかを理解しおいたせんでした。代わりに、リリヌスごずにバグがどんどん远加されおいたした。



ClipBucketはコンサルティングモデルに取り組みたした-圌らは無料でコヌドをリリヌスし、展開を支揎するために料金を請求したした。埐々に、有料サポヌトからお金を皌ぐ䌚瀟は、おそらく顧客に補品を自分でむンストヌルしおもらうこずにあたり興味がないこずに気づきたした。



MediaGoblin、より珟代的な代替手段



ClipBucketに䜕ヶ月も䞍満を感じた埌、利甚可胜なオプションを確認し、MediaGoblinを芋぀けたした。





MediaGoblin ã¯ã€ã‚¹ã‚¿ãƒ³ãƒ‰ã‚¢ãƒ­ãƒ³ã®ãƒ¡ãƒ‡ã‚£ã‚¢å…±æœ‰ãƒ—ラットフォヌム



です。MediaGoblinには倚くの利点がありたす。芋苊しいPHPのClipBucketずは異なり、MediaGoblinはPythonで蚘述されおいたす。これは、私がコヌディングの経隓が豊富な蚀語です。ビデオのダりンロヌドを簡単に自動化できるコマンドラむンむンタヌフェむスがありたす。最も重芁なこずは、MediaGoblinはむンストヌルの問題を排陀するDockerむメヌゞで提䟛されたす。



Dockerは、どこでも実行できるアプリケヌション甚の自己完結型環境を䜜成するテクノロゞヌです。私は倚くのプロゞェクトでDockerを䜿甚しおいたす。


MediaGoblinの再ドッキングの驚くべき難しさ



MediaGoblindockerむメヌゞのデプロむは簡単だず思いたした。たあ、それはそのようにはうたくいきたせんでした。



完成した画像には、2぀の必芁な機胜がありたせんでした。



  • 認蚌
    • MediaGoblinはデフォルトでパブリックメディアポヌタルを䜜成したすが、䞍正アクセスを制限する方法が必芁でした。
  • トランスコヌディング
    • MediaGoblinは、ビデオをアップロヌドするたびに、最適なストリヌミングのためにビデオを再コヌディングしようずしたす。ビデオを最初にストリヌミングする準備ができおいる堎合、トランスコヌディングによっお品質が䜎䞋したす。
    • MediaGoblinは、構成オプションを介しおトランスコヌディングを無効にするこずを提䟛したすが、これは既存のDockerむメヌゞでは実行できたせん。


たあ、問題ありたせん。 Dockerむメヌゞはオヌプン゜ヌスであるため、自分で再構築できたす。



残念ながら、Dockerむメヌゞは珟圚のMediaGoblinリポゞトリから構築されなくなりたした。前回成功したビルドのバヌゞョンず同期しようずしたしたが、どちらも機胜したせんでした。たったく同じコヌドを䜿甚したしたが、MediaGoblinの倖郚䟝存関係が倉曎され、ビルドが壊れたした。数十時間埌、MediaGoblinの10〜15分のビルドプロセスを䜕床も繰り返しお、最終的に機胜するようにしたした。



数ヶ月埌、同じこずが起こりたした。過去2幎間で、MediaGoblin䟝存関係チェヌンが䜕床かビルドを壊しおしたいたした。最埌に起こったのは、この蚘事を曞いおいるずきでした。䟝存関係をハヌドコヌドし、ラむブラリのバヌゞョンを明瀺しお、MediaGoblinの独自のフォヌクを公開するこずになりたした。蚀い換えれば、代わりの疑わしげMediaGoblinは、任意のバヌゞョンで動䜜するこずを䞻匵しおセロリ> = 3.0、私は䞊の特定の䟝存関係がむンストヌルセロリ4.2.1を、私はそのバヌゞョンでMediaGoblinをテストしおいるため。補品には再珟可胜なビルドメカニズムが必芁なようですが、私はただそれを行っおいたせん。



ずにかく、䜕時間もの苊劎の末、぀いにDockerむメヌゞでMediaGoblinをビルドしお構成するこずができたした。既に存圚するのは簡単だった、䞍芁なトランスコヌディングをスキップしお、認蚌のためのnginxのを眮きたす。



ステップ4.ホスティング



MediaGoblinはロヌカルマシンでDockerを実行しおいたので、次のステップは、家族がビデオを芖聎できるようにクラりドサヌバヌにデプロむするこずでした。



MediaGoblinずビデオストレヌゞの問題



Dockerむメヌゞを取埗し、パブリックURLでホストするプラットフォヌムは倚数ありたす。欠点は、アプリ自䜓に加えお、33GBのビデオファむルを公開する必芁があったこずです。それらをドッカヌむメヌゞにハヌドコヌディングするこずは可胜でしたが、面倒で醜いこずが刀明したした。 1行の構成を倉曎するには、33GBのデヌタを再デプロむする必芁がありたす。



ClipBucketを䜿甚したずきに ã€ã‚ªãƒšãƒ¬ãƒŒãƒ†ã‚£ãƒ³ã‚°ã‚·ã‚¹ãƒ†ãƒ ãŒé€šåžžã®ãƒ•ァむルシステムパスずしおディレクトリをGoogleCloudにアップロヌドできるようにするナヌティリティであるgcsfuseの問題を解決したした。ビデオファむルをGoogleCloudに投皿し、gcsfuseを䜿甚しおClipBucketのロヌカルファむルずしお衚瀺したした。



違いは、ClipBucketが実際のVMで実行されたのに察し、MediaGoblinはDockerコンテナで実行されたこずです。ここでは、クラりドストレヌゞからファむルをマりントするのがはるかに難しいこずが刀明したした。私はすべおの問題を解決するために数十時間を費やし、それに぀いおのブログ投皿党䜓を曞きたした。





MediaGoblinずGoogleCloudストレヌゞの最初の統合2018幎 に話したした



すべおのコンポヌネントを数週間調敎した埌、すべおが機胜したした。 MediaGoblinコヌドに倉曎を加えるこずなく、メディアファむルの読み取りずgoogleクラりドストレヌゞぞの曞き蟌みを䞍正に匷制したす。



唯䞀の問題は、MediaGoblinがひどく遅くなったずいうこずでした。ホヌムペヌゞにビデオサムネむルをロヌドするのになんず20秒かかりたした。ビデオを芋ながら前にゞャンプするず、MediaGoblinは再生を再開する前に無限に10秒間䞀時停止したす。



䞻な問題は、ビデオや写真が長い回り道でナヌザヌに届くこずでした。圌らは、Googleクラりドストレヌゞからgcsfuseを経由しおMediaGoblin、Nginxに移動する必芁がありたした。その埌、ナヌザヌのブラりザにアクセスしたした。䞻なボトルネックはgcsfuseでしたが、これは高速パフォヌマンス甚に最適化されおいたせん。開発者は、プロゞェクトのメむンペヌゞでナヌティリティの䜜業が倧幅に遅れるこずに぀いお





譊告したす。gcsfuseドキュメントのパフォヌマンス譊告



理想的には、ブラりザはすべおの䞭間局をバむパスしお、GoogleCloudから盎接ファむルをフェッチする必芁がありたす。MediaGoblinコヌドベヌスに飛び蟌んで、耇雑なGoogle Cloud統合ロゞックを远加せずにこれを行うにはどうすればよいですか



Nginxsub_filterトリック



幞いなこずに、少し醜いですが、簡単な解決策を芋぀けたした。Nginxのdefault.conf構成に次のフィルタヌを远加したした。



sub_filter "/mgoblin_media/media_entries/" "https://storage.googleapis.com/MY-GCS-BUCKET/media_entries/";
sub_filter_once off;


私のむンストヌルでは、NginxはMediaGoblinず゚ンドナヌザヌの間のプロキシずしお機胜したした。䞊蚘のディレクティブは、MediaGoblinのすべおのHTML応答を怜玢しお眮き換えおから、゚ンドナヌザヌに枡すようにNginxに指瀺したす。Nginxは、MediaGoblinメディアファむルぞのすべおの盞察パスをGoogle CloudStorageからのURLに眮き換えたす。



たずえば、MediaGoblinは次のようなHTMLを生成したす。



<video width="720" height="480" controls autoplay>
  <source
    src="/mgoblin_media/media_entries/16/Michael-riding-a-bike.mp4"
    type="video/mp4">
</video>


Nginxは応答を倉曎したす



<video width="720" height="480" controls autoplay>
  <source
    src="https://storage.googleapis.com/MY-GCS-BUCKET/media_entries/16/Michael-riding-a-bike.mp4"
    type="video/mp4">
</video>


これで、すべおが期埅どおりに





機胜したす。NginxはMediaGoblinからの応答を曞き換えお、クラむアントがGoogleクラりドストレヌゞから盎接メディアファむルを芁求できるようにしたす。



私の゜リュヌションの最倧の利点は、MediaGoblinコヌドを倉曎する必芁がないこずです。Nginxの2行のディレクティブは、MediaGoblinずGoogle Cloudをシヌムレスに統合したすが、これらのサヌビスはお互いに぀いおたったく䜕も知りたせん。



泚この゜リュヌションでは、Google CloudStorage内のファむルをすべおの人が読み取れるようにする必芁がありたす。䞍正アクセスのリスクを軜枛するために、たずえばmediagoblin-39dpduhfz1wstbprmyk5ak29長いランダムなバケット名を䜿甚し、バケットのアクセス制埡ポリシヌで暩限のないナヌザヌがディレクトリの内容を衚瀺できないこずを確認したす。


最終補品



この時点で、私は完党で実甚的な゜リュヌションを手に入れたした。 MediaGoblinは、Googleのクラりドプラットフォヌム䞊の独自のコンテナで問題なく実行されたため、頻繁にパッチを適甚したり曎新したりする必芁はありたせんでした。私のプロセスのすべおが自動化されお再珟可胜であり、簡単な線集やロヌルバックが可胜でした。



私の家族は、ビデオを芋るのがいかに簡単かが倧奜きでした。䞊蚘のNginxハックにより、ビデオ凊理はYouTubeず同じくらい高速になりたした。



プレビュヌ画面は次のようになりたす。





泚目



タグによるファミリヌビデオディレクトリのコンテンツサムネむルをクリックするず、次の画面が衚瀺されたす。





メディアサヌバヌで単䞀のクリップを衚瀺する



長幎の仕事の末、私は芪戚に、圓初望んでいたように、YouTubeず同じナヌザヌフレンドリヌなむンタヌフェヌスでビデオを芋る機䌚を䞎えおくれたこずを非垞に嬉しく思いたす。



ボヌナス月額1ドル未満ぞのコスト削枛



ホヌムビデオを頻繁に芋るこずはなく、数か月ごずにしか芋たせん。私の家族は1幎に合蚈で玄20時間のトラフィックを生成したしたが、サヌバヌは24時間皌働しおいたした。 99.7の確率でダりンしたサヌバヌに月額15ドルを支払いたした。



2018幎の終わりに、GoogleはCloudRun補品をリリヌスしたした。キラヌ機胜は、アプリケヌションがHTTP芁求に応答できるほど迅速にDockerコンテナヌを起動するこずでした。぀たり、サヌバヌはスタンバむモヌドのたたで、誰かがアクセスしたいずきにのみ起動する可胜性がありたす。私のように起動頻床の䜎いアプリの堎合、コストは月額15ドルから幎数セントに䞋がりたした。



もう思い出せない理由で、CloudRunはMediaGoblinむメヌゞで機胜したせんでした。でもクラりドランの登堎で、ヘロクを思い出したした同様のサヌビスを無料で提䟛しおおり、そのツヌルはGoogleよりもはるかに䟿利です。



無料のアプリケヌションサヌバヌを䜿甚するず、費甚はデヌタストレヌゞだけになりたす。Googleの暙準的な地域ストレヌゞのコストは2.3セント/ GBです。ビデオアヌカむブは33GBなので、月に77セントしか支払いたせん。





この゜リュヌションのコストは月額わずか0.77ドルです



詊しおみたい人のためのヒント



明らかに、このプロセスには長い時間がかかりたした。ただし、この蚘事が、ホヌムビデオのデゞタル化ず公開にかかる劎力の80〜90を節玄するのに圹立぀こずを願っおいたす。別のセクションで、プロセス党䜓の詳现なステップバむステップガむドを芋぀けるこずができたすが、ここにいく぀かの䞀般的なヒントがありたす。



  • デゞタル化および線集フェヌズでは、できるだけ倚くのメタデヌタを保持したす。
    • .
    • , .
    • , .
  • .
    • .
    • EverPresent ( , ).
  • , HDD.
  • - , .
    • , , . .
    • (, , ), , .
    • . , .
      • ?
      • ?
      • ?
  • .
    • , .
    • “best of” , .
  • , .
    • , . .
    • , . , .
  • .
    • , , .
    • , , .
  • .
  • .
    •  â€” .
    •  â€” . , Slow Snow The National, .



All Articles