ユーザーは、次の画像の赤い矩形部分に似たタイムラインインターフェイスでビデオを編集できるWebビデオエディタを開発しています。Webベースのビデオ編集のデータモデル
これを達成するために、私は次の図に示すように、編集操作のために使用されるすべてのデータを維持するために、サーバー側のツリー構造のデータモデルがあるはずだと思います。例として、インタフェース画面にタイムラインを取る
一VideoGroup
サブオブジェクトと一つAudioGroup
サブオブジェクトを有するものTimeLine
目的があります。 VideoGroup
オブジェクトには、2つのTrackオブジェクトのコレクション、つまりVideo 1
とVideo 2
があります。 The AudioGroup
オブジェクトには、Audio 1
という1つのトラックオブジェクトがあります。 Video 1
の場合、VideoGroup
オブジェクトの最初のTrackオブジェクトは4つのMediaオブジェクトのコレクションを持ち、2番目のTrackオブジェクトVideo 2
は6を持ちます。Audio 1
の間は、AudioGroup
オブジェクトのTrackオブジェクトは1つしかありません。
私のアプリケーションに関しては、バックエンドでは、実際の編集操作を実行するためにアプリケーションでデータモデルが使用されます。フロントエンドでは、インターフェイスの画像に表示されているようなグラフィカルな方法でWebページに表示する必要があります。この目標を達成するために、サーバー側に既にデータモデルがあるので、クライアント側に対応するJavaScriptデータモデルを作成する必要があるのだろうかと思います。そうでない場合、更新されたバージョンをエンドユーザに表示するために、ユーザが編集操作を行うたびに、フロントWebページはバックエンドからデータモデルをリロードする必要があります。そんなに行くのはいいですか?
答えが正しいと分かったら、JavaScriptを使用してフロントエンドに対応するデータモデルを構築することをお勧めします。しかし、私のプロジェクトの時間的制約のため、クライアント側とサーバ側の2つの複雑なデータモデルを構築し、それらを同期させるコードを書くのではなく、サーバー側からモデルをロードする方が簡単だと思うので、私の好きな方法がWebアプリケーションに大きな問題を引き起こすかどうかはわかりませんが、 – Ivan
私はあなたのアプリは、その性質上、多くのユーザーのやりとりを持つと思います。あなたはおそらくフロントエンドのフレームワークがこれらの懸念をとにかく構築したいと思うでしょう。あなたの優先するテクノロジースタックを決めましたか? – sdeburca
技術の面では、ビデオ編集のためにサーバー側にASP.NETとDirectShow.NET APIを使用しています。フロントエンドに関しては、HTML Canvasを使用してタイムラインインターフェイスを表示し、ユーザーイベントを処理してサーバーとデータを交換するための純粋なJavaScriptコードを記述します。私はWeb開発の経験があまりないので、今はもっと良い方法を見つけることができません。 – Ivan