ネットストリームとビデオ オブジェクトを使用して、フラッシュでビデオを再生しています。具体的には mp4 ビデオです。
私がやろうとしているのは、特定の位置 (例: 20 秒) からファイルの再生を開始することです。
ただし、netstreamObject.seek(20) では、ストリームが 20 秒以上読み込まれていない限り機能しません。20 秒でロードを開始するように指定する方法はありますか? またはこれを達成する他の方法はありますか?
ネットストリームとビデオ オブジェクトを使用して、フラッシュでビデオを再生しています。具体的には mp4 ビデオです。
私がやろうとしているのは、特定の位置 (例: 20 秒) からファイルの再生を開始することです。
ただし、netstreamObject.seek(20) では、ストリームが 20 秒以上読み込まれていない限り機能しません。20 秒でロードを開始するように指定する方法はありますか? またはこれを達成する他の方法はありますか?
20 秒から始まる新しいバージョンのファイルを作成する方が簡単ではないでしょうか。この方法では、ユーザーがダウンロードする必要が少なくなります。
ここを見てみてくださいhttp://www.winmend.com/file-splitter/
ジョシュ
簡単に言えば、「プログレッシブ ビデオではダウンロード ポイントを超えてシークすることはできません」です。ただし、Akamai やその他の CDN (YouTube など) には、プログレッシブ ビデオをシークできる技術があります。これは独自のサーバー技術であるため、問題は解決しません。あなたの状況では、ファイルやストリーミング サーバーを制御せずにクライアント コードのみを使用すると、ファイルが読み込まれるまでシークする方法がありません。
lighttpd をサポートするある種の CDN キャッシュ サーバー (実際のファイルはこのキャッシュ サーバー経由で提供される) を使用すると、ビデオを先にシークできます。
はい、プログレッシブでもこれを行うことができます。これはhttp疑似ストリーミングとして知られており、調べてみると、この例がたくさん見つかります。基本的に、リクエストを受信するにはサーバー上にピースが必要です。最初のリクエストでは、httpヘッダーを介して開始点を追加し、サーバー側は自動的にそのオフセットに移動します。
しかし、今はもっと良い方法があります。私の意見では、RTMPはAdobe独自のものであり、非標準のポートで動作するため、多くのユーザーが問題を抱えています。あなたが真剣になりたいなら、それを正しくやりなさい。apache f4fモジュール、adobe httpダイナミックストリーミング、およびf4fpackagerを検索します。apacheオリジンモジュールに関するAdobeのドキュメントに従ってapacheサーバーをセットアップし、f4fpackagerを使用してビデオ/オーディオをセグメントにチャンク化します。次に、ネットストリームをf4mにポイントします。クレイジーな高速を求めるだけでなく、標準のhttpを超えて、単純な古いCDNを使用してリクエストをキャッシュおよびサーバー化できるだけでなく、アダプティブストリーミング用に複数のビットレートをサポートすることもできます。