3

環境

私のアプリケーションでは、ユーザーが createUploadUrl() パターンを使用して、Google App Engine 経由で .mp4 ファイルを Google Cloud Storage にアップロードできます。アップロードは正常に機能し、ハンドラーで対応する FileInfo オブジェクトを取得できます。Java 用の App Engine SDK 1.8.2 を使用しています。

チャレンジ

.mp4 ファイルから "duration" プロパティを取得してデータベースに保存する必要がありますが、FileInfo オブジェクトはこのメタデータへのアクセスを提供しません。これを行う方法についていくつかのアイデアがあります (以下にリストします) が、私が取り組んでいるプロジェクトにいくつかのレガシー依存関​​係があることを考えると、どれもそれほど単純ではありません。

これに取り組む方法について、アイデアや提案があればぜひお聞かせください (できれば成功談もあればぜひ!)。

アイデア

  1. ファイルからメタデータを読み取ることができる ffmpeg や mdls (Mac 用) などのスクリプトやユーティリティがあることは知っていますが、これらは Google App Engine では実行できず、別のプロセスを開始する必要があると理解しています。 Google Compute Engine のようなものを使用します。
  2. ユーザーがアップロードするファイルを選択し、標準のフォーム送信でそれを渡すと、期間ロジックを読み取るカスタムのフラッシュ アップロード コントロールを作成できます。
  3. また、現在ベータ段階にある Google Cloud Storage JSON API があることも認識しています。.mp4 ファイルから「期間」プロパティを読み取れるようにする機能はありませんが、何か不足している可能性があります...

コード

HTMLフォーム

<form name="myForm" id="myForm" action="<%=createUploadUrl("/upload, uploadOptions)%>" method="POST" enctype="multipart/form-data">
    <input type="file" name="uploadFileControl" id="uploadFileControl" value="Select...">
    <input type="submit" value="Submit">
</form>

サーバー側ハンドラー

DAO dao = new DAO();
BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
Map<String, List<FileInfo>> fileInfos = blobstoreService.getFileInfos(req);
List<FileInfo> uploadedFile = fileInfos.get("uploadFileControl");

if(uploadedFile != null) {
    FileInfo file = uploadedFile.get(0);
    String fileName = file.getFilename();
}
4

3 に答える 3

0

「python mp4 parser」をグーグルで検索して、何か出てくるかどうかを確認できます...

于 2013-09-11T01:10:34.703 に答える
0

私が最終的に行った解決策を投稿してください。

mediaelement.js ( http://mediaelementjs.com/ )というビデオ プレーヤー プラグインを使用して、GCS からアップロードされたファイルを読み込みました。ビデオ プレーヤーには、新しいビデオ ファイルが読み込まれるたびに更新される "duration" プロパティがあり、全体が非常に簡単になります。

私が調査していた他の 2 つのオプションは、1) mp4parser ( https://code.google.com/p/mp4parser/ ) と呼ばれる Java ユーティリティを使用して、アップロードされたファイルを Google Cloud Storage から GAE にロードし、期間メタデータを手動で抽出することでした。 2) Plupload ( http://plupload.com/ ) と呼ばれるオープン ソースのアップロード ユーティリティを更新して、ファイルがアップロードされたときに期間のメタデータを抽出します。

これが、同様の問題に遭遇した他の人の助けになることを願っています!

于 2013-10-08T21:35:31.070 に答える