2

(ログインしている) 顧客が自分の Web サイトで mp4 ビデオを視聴できるようにする方法を探しています。

  • 彼らがビデオをダウンロードできるようにしたくない、または少なくともそれを非常に難しくしたくない.
  • サーバーはLinux / アプリはPHP
  • 顧客がコンピューターの Web ブラウザーまたは iOS/Safari デバイス (フラッシュなし) でビデオを視聴できるようにしたいと考えています。
  • 無料または非常に安価である必要があります (たとえば、クラウドベースのプロバイダーで毎月数千ドルのビデオをホストしないでください)。

今まで私は次のことをしていました:

  • flv ファイルの php 疑似ストリーミング (xmoov として知られています)。PHP を使用すると、ストリームのコンテンツ (セッション変数、トークンなど) を返す前に安全な検証を実行できましたが、flv ビデオを再生するにはフラッシュが必要なため、iOS では機能しません。また、Video Download Helper のような単純な Firefox 拡張機能でダウンロードできるため、安全性も高くありません。
  • だから私は自分のビデオを mp4 でエンコードしました。これは html5/iOS で問題なく動作しますが、プロセスの「安全」な側面が非常に難しくなります。php 疑似ストリーミングを作成するのは非常に難しいようです。私は実用的な解決策を見つけていません.リソースが多すぎるため、誰もがそれから離れているようです(ファイルコンテンツ全体のストリーミング中にビデオごとに1つのphpプロセス)。

したがって、私が見つけた最善の解決策は、「H264 Streaming Module」と「Mod Auth Token」という 2 つの古典的な Apache プラグインです。わかりました、それは良いですが、効率的であるためには認証トークンのタイムアウトを非常に短くする必要があるため、行き止まりのようです(HTMLソースで難読化されたURLを見つけてコピーして貼り付けるのを非常に困難にするために5秒未満)アプリケーションをダウンロードするか、スクリプトを開始するか...) しかし、これは、顧客がこの時間枠内にビデオを開始する必要があることを意味します (iOS では、ビデオを自動開始する方法はありません)。また、プレーヤー (私は JWplayer を使用) が URL に対して新しい http 呼び出しを行うため、顧客がビデオの「まだダウンロードされていない」部分をシークできないことも意味します。タイムアウト。

私は、難読化された URL をそれ自体で生成できるビデオ フラッシュ プレーヤーについて考えていました (HTML ソースでそれを出力する php ではありません) が、フラッシュ ベースであるため、iOS では動作しません。これをコンピューターで使用し、iOS で html5/auth_token (ユーザー エージェントに基づく) を使用すると、ユーザー エージェントを偽装してビデオをダウンロードするのは非常に簡単です。

他のソリューションでは、Red5 などの「実際の」ビデオ ストリーミング サーバーを使用しているようですが、私が見つけたほとんどすべてのチュートリアルは、ライブ ストリーミング、テレビ、ウェブカメラに関するものであり、ハード ドライブにある単純な mp4 ファイルではありません。また、この種のニーズに合わせて作成されたアプリケーションではないようです。

だから私はあらゆる提案を受け入れます!

前もって感謝します

4

2 に答える 2

0

AmazonのS3を使用して、FLVファイルについてこれを整理しました。

http://evolt.org/s3secure

私は MP4 用に取り組んでいますが、私の専門は Web に関するものであり、ビデオに関するものではありません。

于 2012-12-15T21:41:26.303 に答える
0

私も同じ状況に陥っています。

私はflowplayerを使用しています.xmoovと同様のサーバー側(PHP)スクリプトを使用して、FLVを疑似ストリームすることができます。

ヒントが 1 つあります。 私が使用しているIF $start is 0の場合、トークンは3 秒間しか機能しません (したがって、新しいリクエストを作成できません)。ただし、IF $start is > 0の場合は 10 分間機能します。またはもう少し。

このようにして、人々はビデオの他の部分を探すことができますが、完全なリクエストを行うことはできません. この $start limit を >0 ではなく X バイトより大きくして、賢い人が検証をスキップしないようにすることもできます。

さて、同じスクリプトを使ったMP4疑似ストリーミングに関して、いまだに困っています。$start の値は秒単位で送信されるため (例: ?start=32.125)、バイト位置ではなく、ビデオの疑似ストリームを作成できないようです。

(mod_h264_streaming 以外の) 解決策が見つかった場合は、喜んでお知らせします。

于 2013-04-15T03:28:08.777 に答える