問題タブ [netstream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
actionscript-3 - ビデオの高速ストリーム切り替えを実行するために play2() 関数を利用する方法は?
私は現在、解像度切り替え機能を備えた Flash Web プレーヤーに取り組んでいます。play2()
Actionscript でNetStream クラスの機能を利用しようとしています。
私が直面している問題は、ビデオがすぐに変化しないことです。この機能に精通している人にとってはplay2()
、プレーヤーが実行しているの"standard switch"
は"fast switch."
ドキュメントによると、オフセット パラメータが -1 の場合、高速切り替えが発生します。実際には、"NetStream.Play.Transition"
イベントが受信されると、プレイヤーは で示される時間に達するまで待機しns.time + ns.bufferLength
てから、切り替えを実行します。
ファースト スイッチングによってバッファがクリアされたと思っていましたが、 を確認したns.backbufferlength
ところ、すべてがまだキャッシュされていることがわかりました。また、次のようにも言及していますnetstream.time + 3
。
この問題に関するヘルプ/洞察は大歓迎です。
これは、何が起こっているかを説明するコードのスニペットです (newStream()
ユーザーがクリックして新しい解像度、YouTube スタイルに変更すると呼び出されます):
flash - NetStreamクラスを使用して、動作中のビデオが添付されているかどうかを検出するにはどうすればよいですか?
私はフラッシュでビデオチャットを構築していますが、他のユーザーが機能しているビデオストリームを送信しているかどうかを検出しようとしている部分を除いて、すべてが非常にうまく機能しています。
他のユーザーがビデオを送信しない理由はいくつかあります。
- 他のユーザーはカメラを持っていません
- 他のユーザーはカメラを手に入れましたが、カメラは現在別のアプリケーション(Skype、フォトブース、Googleトークなど)によって占有されています
- 他のユーザーはカメラを持っていますが、自分のカメラの使用を許可していません。
- (私が推測する他の予期しない問題...)
では、NetStreamクラスを使用して、他のユーザーから受信したストリームが(上記の理由により)ブラックストリームであるかどうかをどのように検出しますか?
私が思いついた最も近いことは、他のユーザーから受け取ったストリームからcurrentFps()関数をポーリングするタイマーを追加することです。currentFps() == 0
しかし、これまでのところ、実際にストリームからビデオを取得した場合でも、これが原因でエラーが発生して表示される可能性があるため、これはかなり信頼できないようです。これは、現在のFPS関数について4秒ごとにAPIをポーリングし、そのポーリングによると00:00:04に「ビデオなし」と表示されたが、00:00:05にビデオが開始されたためです。エラーメッセージが消えるまで次のティックまで待つ必要があります
これは私の現在の世論調査がどのように見えるかです
これは私がこれを検出するために思いつくことができる唯一のハックですが、これは信頼性が低く、実際には、受信したストリームにこの醜いポーリングなしで動作するビデオが添付されているかどうかを即座に検出する方法を好みます。
windows - StageVideo が IE でローカルに動作しないのはなぜですか?
StageVideo ファイルをローカルでテストするのに問題があります。swf を含む HTML ファイルは Chrome と FireFox では完全に読み込まれますが、Internet Explorer 9 で開いても何も起こりません (白い画面が表示されるだけです)。
Flash 設定マネージャー (Macromedia Web サイト) の [グローバル セキュリティ設定] タブに、場所のアクセス許可を追加しました。また、IE9 の設定をチェックインして、GPU レンダリングが許可されていることを確認しました。
IE9 でブロックされる可能性がある理由について、誰かが同様のことに遭遇したか、何か提案がありますか?
前もって感謝します。
actionscript-3 - NetStream#togglePause() が機能しないのはなぜですか?
red5 0.9 バージョンに基づいて録音オーディオ アプリケーションを作成します。
以下は、私のフレックス クライアント コード スニペットです。私のred5サーバーは正常に動作します。
よく押しpause button
ますが、 を押すplay button
と、オーディオは常に最初から再生されます。
なんで?NetStream バッファをクリーンアップする必要がありますか?
flash - 着信 NetStream を発信に中継する方法
受信したストリームを別のホストに再ブロードキャストするために、何らかのリレーを行うことは可能ですか? たとえば、このようなコードがある場合
この 2 つのストリームを接続してnsInからnsOutに直接転送するにはどうすればよいですか?
flash - as3 ネットストリームの appendBytes とシーク
ユーザーがflvを100%ロードする必要なしにflvをスキップしたい場合、ヘッダーバイト範囲リクエストを受け取ることができるCDNに接続する単純なflvプレーヤーがあります。
リクエストに範囲ヘッダーを追加するために、サードパーティの http ライブラリを使用しています。
私のコードは flv を再生しますが、ビデオを 30 秒までスキップしようとするとフリーズします。バイトをトレースでき、ヘッダーにコンテンツ範囲の応答があるため、cdnはファイルを返すと思います(以下)。
StreamMetaData クラス
最初のヘッダーのリクエストとレスポンス
Seekヘッダーリクエストとレスポンス
このリソースを見たことがありますが、役に立ちませんでした。 資源
答えを見つけるために多くのフォーラムを閲覧しましたが、成功しませんでした。どんな助けでも素晴らしいでしょう!
java - red5 は Windows と Linux で常に同じように動作しますか?
Flex と red5 を使用してウェブカメラからビデオを録画する簡単なアプリケーションを開発しました。このアプリケーションは、flex を使用して作成され、red5 アプリケーション アダプターを拡張します。クライアント側では NetStream.publish() メソッドを使用し、サーバー側では、記録された flv ファイルをストリーム フォルダーに見つけます。Windows ホストと Linux サーバーで試しました。 . 私のアプリケーションでは、audio.flv.ser ファイルと video.flv.ser ファイルがあり、最終的な flv ファイルが .ser ファイルから作成されます。
centos6を実行しているWindowsホストとLinuxサーバーの違いに気づいたのは、次のとおりです。
- Windows ホストでは、2 つの flv ファイルが一緒に処理されます。.ser ファイルのサイズに達するまで、サイズが刻々と変化することがわかりますが、Linux のサイズでは、すべての flv ファイルが 1 つずつ処理され、まず video.flv が一度処理されます。完了 audio.flv の処理が開始されました。
- Windows ホストは Linux サーバーよりもはるかに高速で、約 10 倍高速ですが、Linux サーバーは Linux サーバーよりも性能の低い CPU で実行されています (T4400 サーバーと Xeon クアッド コアの比較)。
Windows と Linux で red5 の実行方法に大きな違いがあるのはなぜですか?Red5 は Java で記述されていますが、Windows システムと Linux システムのどちらでもアルゴリズムのワークフローは同じでなければなりません。
actionscript-3 - プレイヤーがプレイを停止したことをどのように知ることができますか?
ビデオの再生が終了した場合は、トレース"NetStream.Play.Stop"
情報コードではありません。なんで?
flash-media-server - RTMFP で P2P ストリームを再生する FMS 4
適切な開示:この質問を Adobe フォーラムにも投稿しました。回答が得られなかったので、ここに投稿します。邪魔だったらごめんなさい。
私たちはしばらくの間、2 方向のビデオ アプリケーションのために FMS 4 サーバーを使用しており、RTMP でうまく機能します。ここ数日間、テストに Cirrus を使用した後、その rtmfp 機能を使用したいと考えており、これもうまく機能しました。
ローカルでは - すべて正常に動作していますが、リモート サーバーでアプリケーションを試すと、いくつかの問題が発生します。
パブリッシュが開始されると、それぞれの側で NetStatusEvent コード "NetConnection.Connect.Success" および "NetStream.Publish.Start" が取得されます。
ただし、ストリームを再生しようとすると、1 分間何も起こらず、約 1 分後に「NetStream.Connect.Closed」が表示されます。
(ローカルでは、「NetStream.Play.Start」と「NetStream.Play.Reset」を取得しています)。
サーバーでポート 1024-65535 UDP を開きました。Cirrus に接続できるので、クライアントは問題ないと思います。
また、Adaptor.xml の HostPort 要素を :19350-65535 に変更しました。xxx.xxx.xxx.xxx は、クライアントが使用するものと同じ FMS サーバーのパブリック IP です。
繰り返しになりますが、ローカルでも Cirrus でも問題なく動作しています。RTMP は、リモート サーバーでもうまく機能します。
私は何が欠けていますか?
android - Android: FLV を再生する SWF を実行するための webview。
Samsung Galaxy 10.1 パッドのローカル アプリ/フォルダーからフラッシュ プロジェクトを再生する作業を行っています。プロジェクトは基本的に、プレイリストの xml を参照するフラッシュ ファイルです。このファイルには、アセット サブフォルダーに保存されている他の swf ファイルまたは flv ビデオへの参照が含まれています。
ビデオ、netConnection、および netStream を使用して flv を再生し、FLVPlayback をしばらく試しましたが、insta-fix はありませんでした。
プロジェクトはhtmlに埋め込まれており、ローカルとサーバーの両方で使用されているマシンで正常に動作します. ウェブサイトからアプリまで「機能」しますが、これらのパッドを使用すると分厚くなり、インターネットが利用できなくなります。
(しかし、flv 再生は Web からパッド上で動作することに注意することが重要だと思うので、私の問題への答えは、私が知らないいくつかの許可制限にあると思います。)
メインのswfをロードするだけのアプリで運が良かった:
プレイリストから SWF ファイルを正常にロードして再生しますが、flv に到達すると、netStream が
.NetStream.Play.StreamNotFound:[object NetStream]
NetConnection.Connect.Closed:[object NetConnection]
[ tl/dr : (Android3.1/galaxy 10.1) --> swf --> flv ==問題 ]
問題は、 FLVを再生し、インターネットからは正常に再生されるが、ローカル アプリからは FLV を開かないこの SWF を作成するには、何を変更または追加する必要があるかということです。(また、アプリのサイズを小さくするために後で FLV を外部に保存する必要があると思いますが、それは別のなぞなぞです)