2

私は、認証されたユーザーがWebブラウザーを使用して(スピーチの)MP3オーディオファイルをサーバーにアップロードし、ネットワーク上でオーディオを配信できるようにするアプリケーションを構築しています。オーディオファイルは、帯域幅を効率的に使用するために特定のビットレート(32kbps以下)を使用し、互換性を最大化するために承認されたサンプリングレート(22.050または44.100)を使用する必要があります。サーバーサイドスクリプトを使用してアップロード後にこれらの要件を検証するのではなく、アップロード前にHTML5FileReaderを使用してこの情報を確認したいと考えていました。ブラウザが無効なビットレートやサンプリングレートを検出した場合、ユーザーにそのことを通知し、オーディオファイルに必要な修正が加えられるまで、アップロードの試行をブロックできます。

これはHTML5を使用して可能ですか?質問はHTML5に関するものであり、私のアプリケーションのアプローチに関するものではないことに注意してください。HTML5はMP3オーディオファイルのサンプリングレートやビットレートを検出できますか?

参考までに:アップロードを実行するためにFTPJavaアプレットを使用しています。アプレットは、アップロードが成功した後、ユーザーを選択したURLに自動的に転送するように設定されています。これにより、サーバーではなくクライアントに負担がかかります。アップロードされた各ファイルの最終的な宛先が異なるため、これも必要です。それらは異なるサーバーおよび異なるドメインに存在する可能性があり、サーバー上で異なるスクリプト言語をサポートしている可能性があります。そうしないと、1台のサーバーがストレージスペースをすぐに超えてしまうか、サーバー側スクリプトがFTP転送を行った場合、サーバーのパフォーマンスは単一障害点としてすぐに低下します。したがって、アップロードされたオーディオファイルを複数のサーバーと複数のドメインに保存する私のアプリケーションでは、ビットレートとサンプリングレートの検証をクライアント側で行う必要があります。

4

2 に答える 2

1

FileReader API と Javascript で構築されたオーディオ コーデックを使用して、オーディオ ファイルからこの情報を抽出できます。

純粋な JS コーデックのベース コードを提供する 1 つのライブラリは Aurora.js です。実際のコーデック コードはその上に構築されます。

https://github.com/audiocogs/aurora.js/wiki/Known-Uses

当然、ブラウザは FileReader API をサポートしている必要があります。

なぜ Java アプレットや FTP が必要なのか、ユース ケースからはわかりませんでした。HTTP アップロードは、async badckend (Node.js、Python Twisted など) とスケーラブル ストレージ (Amazon S3) を使用して適切に行われた場合、複数の大きなファイルに対して正常に機能します。同様の使用例は、ファイルから音声メタデータを抽出するよりもはるかに要求の厳しいアプリケーションである受信画像のサイズ変更です。クライアント側での唯一の利点は、技術にあまり詳しくないユーザーによる不要なアップロードの数を減らすことです。

于 2012-10-03T06:34:29.587 に答える
0

誰でもスクリプト/マークアップを変更してこれをバイパスしたり、目的を変更したりできることを考えると、私はそれを考慮しません.

HTML/Javascript の知識があれば検証スクリプトを変更できる人がいる場合は、HTML/Javascript を使用しないでください。検証されていることを確認する方が簡単で、サーバー上で検証することで正しく検証されます。

于 2012-10-03T01:24:37.493 に答える