動画ファイル関係のサーバ間連携強化計画実行記録 -課題編-

    自宅に構築された各機能をもつサーバ(PC)群を運用していて、以前に日々生成される動画ファイルの転送関係のバッチを作ってかなり効率があがりました。
    しかし、サーバ群に手をかけるだけの時間を割けなくなってきたために問題が発生しました。

    この記事は

    • 課題まとめ
    • 追加バッチアプリの作成によるサーバ群連携強化と効率化計画

    を実際に実行した内容の記録となります。

    サーバ群運用

    PC1:Windows10
    素材動画ファイル生成、エンコード後のファイル一時ディレクトリへ保存、一時ディレクトリから所定の複数ディレクトリへ移動

    PC2:Windows8.1
    PC1にある素材動画をエンコードしてその後PC1の一時ディレクトリへファイル保存、PC1からPC3へ動画ファイル転送

    PC3:Linux(CentOS)
    転送された動画ファイルを保存してためておく(NAS)、所定のディレクトリへ同期をとって動画ファイルコピー

    インフラ構成

    PC1<=== LAN1(192.168.2.XXX) ===>PC2
    PC2<=== LAN2(192.168.1.XXX) ===>PC3
    ※PC2はNIC2つありネットワーク間の橋渡し役

    発生した問題

    1. 運用に時間が割けない
    2. PC2のファイルエンコードは手動運用
    3. PC2のファイルエンコード前の動画情報修復アプリでの微妙な音ズレの発生
    4. PC2の動画修復アプリがコマンドプロンプトで操作できない
    5. PC1内部のファイルタイトルごと仕訳作業は手動運用
    6. PC3内部のファイルコピー処理は手動運用(コマンドスクリプトを手動で実行)

    それぞれ手動処理で運用をしていて無駄に時間かかっていました。

    課題

    全体の課題

    1. PC1-PC3までの全処理をバッチ化(自動化)してタイマースケジュールで実行可能とする
    2. バッチ化するにあたり、全作業をコマンドベースで実行可能とする
    3. コマンドベースで動作するエンコードアプリと、動画修復アプリを選定する

    PC1の課題

    1. エンコード後動画ファイルのタイトルごと仕訳作業自動化

    PC2の課題

    1. エンコード作業自動化
    2. 動画修復作業自動化
    3. エンコード・動画修復作業のタイマースケジュールによる作業自動化
    4. ファイル転送、動画仕訳の作業指示をPC1、PC3へ実施する必要性あり

    PC3の課題

    1. 内部のファイルコピー処理のタイマースケジュールによる作業自動化

    大まかに書いてこんな感じです。

    課題解決

    上記課題を解決するため以下のようなソフトウェア構成で全自動化を実現することにしました

    エンコード関係利用ソフトウェア

    • VLC Player 2.2.2 (動画修復用)
    • Handbrake 0.9.6 (動画エンコード用)

    エンコード指令ソフトウェア

    上記アプリを制御し、指定のファイルをエンコード指令するためのアプリケーションで、
    自分でコンソールアプリケーションを構築します

    PC1~PC3コピー・移動転送指令ソフトウェア

    これは自分で構築した既存のコンソールアプリケーションです

    PC1内部移動転送指令ソフトウェア

    エンコードしたファイルを所定の場所からタイトルごとの場所へ
    仕分け作業するためのアプリケーションで、
    自分でコンソールアプリケーションを構築します

    全作業指令ソフトウェア

    これは、バッチファイルを作成することで実現することにしました
    エンコード~ファイル転送を順番に実行させます

    タイマーソフトウェア

    PC2とPC3に設置するタイマーです
    PC2はWindowsの「タスクスケジューラ」を利用します
    PC3はLinuxの「Cron」を利用します

    記録は今回、ここまでです。

    次回は「アプリケーション」についてプログラム構築をした記録を書いていきます。

    似たカテゴリーの投稿