チャンクサイズ15MBのPHPスクリプトを使用して、1.5GBのビデオファイルをMongoDB GridFSに保存しました。MongoDBグリッドから特定のチャンクファイルを取得
filenameを使用して完全なビデオファイルを取得できます。しかし、私はチャンクファイルをスキップし、ビデオの特定の部分だけを取り出したいと思っていました。
特定のチャンクファイルをスキップして取得することはできますか?
ありがとう、 ハリ。
チャンクサイズ15MBのPHPスクリプトを使用して、1.5GBのビデオファイルをMongoDB GridFSに保存しました。MongoDBグリッドから特定のチャンクファイルを取得
filenameを使用して完全なビデオファイルを取得できます。しかし、私はチャンクファイルをスキップし、ビデオの特定の部分だけを取り出したいと思っていました。
特定のチャンクファイルをスキップして取得することはできますか?
ありがとう、 ハリ。
あなたの要件は一目瞭然ではありますが、私が正しく理解すれば、本質的にビデオストリーミングシステムであるため、その実装は見た目よりも複雑です。
GridFSには、格納している内容に関する知識がありません。 MongoDBに最大16 MBを超えるドキュメントを格納できるようにすることが主な慣習です(最大BSONサイズよりも大きい)。
GridFSは、入力ファイルを「チャンク」に分割することでこれを実現しますが、チャンク内のデータを理解するのはアプリケーション次第です。
あなたが特定のチャンクの範囲を取得することで、ビデオの特定の部分を必要とする場合は、いくつかのことを考慮する必要があります:
、必要なものを達成するために、あなたがする必要があります:固定ビットレート(CBR)を使用してビデオをエンコード
これは基本的に、ビデオの特定のポイントを確実に「シーク」できるように、このストレージスキームを理解できるプレーヤーを構築する必要があることを意味します。
可能ですか?はい。 GridFSは単にドライバに適用される「ソフトウェア」なので、そうです。データベースの観点から見ると、各 "チャンク"は実際にはMongoDBの他のすべてと同様に、単に "コレクション"内の "ドキュメント"です。しかしここで答えに提示されている良いアドバイスは、ここで言及されているので、ここではもっと広い問題があります。 –
ありがとうございました。 – Hari