問題タブ [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.
flash - AS3、NetConnection/NetStream: ソース URL を分割するスマートな方法はありますか?
問題
既存の Flex プロジェクトのmx:VideoDisplayコンポーネントをカスタムメイドのコンポーネントに置き換える必要があります。
これを実現するには、現在のインターフェイスに準拠する必要があるため、コンポーネントは次のいずれかの形式で (source パラメーターを介して) ビデオ URL を受け取ります。
- /data/myflvfile.flv (ファイルがローカルで再生される場合)
- rtmp://streamcloud.myserver.com/cfx/st/somedirectory/myflvfile.flv (ファイルが Cloudfront からストリーミングされる場合)
私の新しいコンポーネントは、NetConnection と NetStream に基づいています。上記のエントリのいずれかで、入力を 2 つの文字列に分割する必要があります。1 つは NetConnection.connect(NetConnectionStr) メソッド用で、もう 1 つは NetStream.play(NetStreamStr) メソッド用です。例えば:
- /data/myflvfile.flvを指定すると、次のようになります。
- NetConnectionStr = null
- NetStreamStr = "/data/myflvfile"
- rtmp://streamcloud.myserver.com/cfx/st/somedirectory/myflvfile.flv の場合:
- NetConnectionStr = "rtmp://streamcloud.myserver.com/cfx/st"
- NetStreamStr = "somedirectory/myflvfile"
- rtmp://streamcloud.myserver.com/cfx/st/somedirectory/subdirectory/myflvfile.flv の場合:
- NetConnectionStr = "rtmp://streamcloud.myserver.com/cfx/st"
- NetStreamStr = "somedirectory/subdirectory/myflvfile"
2 つの文字列を作成することは、「ローカル ファイル」の場合は非常に明白ですが、他の場合は注意が必要です。問題は、入力のどの部分がサーバー URL で、どの部分がストリーム名 + ディレクトリ構造であるかを推測するスマートな方法がないことです。
インターネットで見つかったいくつかの例では、人々はソースの最後の部分 (最後に見つかった「/」の後にある部分) が NetStream 名であると単純に推測しています。私の場合、ストリームがサーバーのサブディレクトリにある可能性があるため、これは常に当てはまるとは限りません。サーバー名には「/」文字が含まれている可能性があるため、さらに悪いことです!
それを解決するための戦略
サーバーへの接続、実際の URL の取得、ストリーム名の検索
NetConnection は十分に「賢い」ように見えるので、最初の試みは、完全なソース URL を使用して connect メソッドを呼び出すことでした。たとえば、 rtmp://streamcloud.myserver.com/cfx/st/somedirectory/subdirectory/myflvfile.flvを指定すると、
NetConnection は次の場合に成功します。
- connection.connect( rtmp://streamcloud.myserver.com/cfx/st/ )
- connection.connect( rtmp://streamcloud.myserver.com/cfx/st/somedirectory/ )
- ...
- connection.connect( rtmp://streamcloud.myserver.com/cfx/st/somedirectory/subdirectory/myflvfile.flv )
次に、サーバーの「実際の」URL ( rtmp://streamcloud.myserver.com/cfx/st )を何とか取得したいと思っていたので、ストリーム部分 ( somedirectory/subdirectory/myflvfile )を推測できます。
残念ながら、実際のサーバー アドレスを NetConnection オブジェクトから取得する方法は見つかりませんでした (connection.uri は正確な入力を返します)。したがって、これは行き止まりのようです。
サーバーに接続し、ストリームを繰り返し取得する
もう 1 つの戦略は、サーバーに接続してから (最後から開始して) ストリームを再生することを、それが機能するまで繰り返し試行することです。
rtmp://streamcloud.myserver.com/cfx/st/somedirectory/subdirectory/myflvfile.flv の場合:
- 1 を試してください: stream.play( myflvfile ) FAIL
- 試行 2: stream.play( subdirectory/myflvfile ) FAIL
- 試行 3: stream.play( somedirectory/subdirectory/myflvfile ) SUCCESS
しかし、これは非常に厄介な方法であり、より良い解決策を探しています。
より良い解決策はありますか?
この問題を解決する良い方法はありますか? 元の VideoDisplay コンポーネントでそれをどのように行っているか知っている人はいますか (NetConnection/NetStream オブジェクトに基づいている場合)?
この問題に関するヘルプやコメントをお寄せいただきありがとうございます:)
flash - NetStreamオブジェクトバッファがいっぱいにならず、ビデオがフリーズする
これが私を狂わせているので、誰かがこれについて何らかの洞察を持っていることを願っています。Amazon FlashMediaStreamingサービスからビデオをストリーミングするために使用しているNetStreamオブジェクトがあります。
ビデオは接続を確立して正常に再生されますが、ランダムにフリーズしているように見えます。ビデオを再び機能させる唯一の方法は、接続を再確立することです。私はそのアマゾンバケットに他のビデオも入れようとしましたが、それらはうまく再生されているようです。これは、.FLV形式および.mp4形式の場合に発生します。
バッファ時間を5秒に設定し、バッファの出力を監視して、バッファがいっぱいになっている割合を確認します。問題が発生すると、バッファ5が100から0になり、バッファ失敗エラーがスローされます(OVPフレームワークを使用しています)。
ビデオエンコーディングの問題か、データの通過をブロックするファイアウォールの問題がある可能性があるという結論に達しました。
誰かがこれに関して何か問題を抱えたことはありますか?もしそうなら、どのようにそれを解決しましたか?
flash - Actionscript 3 で netStream の音量レベルを取得する方法はありますか?
マイクで行う方法と同様に、NetStream のオーディオのアクティビティ レベルを取得したいと考えています。この記事では、 AS3: NetStream のオーディオ アクティビティ レベル NetStreamInfo.audioBytesPerSecond が解決策として挙げられています。ただし、 audioBytesPerSecond は、ストリームのデータ量を示します。ストリームの音量レベルは取得しません。これは、microphone.activityLevel と同じではありません。
netStream の音量レベルを取得する方法はありますか?
actionscript - OSMF に org.osmf.net.netstream クラスがないのはなぜですか?
コーデックから何らかの情報 (フリーズ、エラー フレーム、デコード エラーなど) を取得できればいいのにと思います。したがって、これは NetStream クラスで実行され、SRTT、ビットレートなどよりも多くの情報を送信できると思います。
だから、私は尋ねています!Netstream クラスのソース コードは OSMF で利用できますか?
ありがとうございました !
flash - アクションスクリプト3でappendBytes()が機能しない
次のコードがあります
外部インターフェイス コールバックを使用して JS からこの関数を呼び出していますが、.fla
ファイル内の上記のコードをコンパイルするとすぐに、エラーがスローされます。
エラー:1061 静的型 flash.net:NetStream の参照を介して、未定義の可能性があるメソッド appendBytes を呼び出します
フラッシュのヘルプ ページには、関数が AS3 で有効であることが示されています。私はどこに行きますか??
apache-flex - NetStream が 2 番目の Call flex でオーディオを送信しない
2 人の間でビデオ会議アプリケーションを構築しようとしています。私が直面している問題は、ビデオとマイクをストリームに接続して公開することです。最初に電話をかけると、音声がビデオとともに転送されますが、通話を終了してもう一度電話をかけると、ビデオのみが表示され、ストリームに音声は転送されません。アプリケーションをデバッグすると、マイクとビデオがストリームに接続されています。これを終わらせる方法がわかりません。どんな助けでも大歓迎です。これが私のコードの一部です。ありがとうございました。
ここに endCall 関数があります。
flash - NetStream.play + video.attachNetStream はビデオを表示しません
私はフラッシュプログラミングが初めてです。私がやりたかったことは、ローカル Web カメラを red5 サーバーにストリーミングし、別のビデオでデータを受信することだけでした。
したがって、次のコードを書きました。
1 つの NetConnections で 2 つの NetStreams を使用し、最初にカム + マイクを接続します。その後、この NetStream を再生し、この再生を 2 番目の Netstream にアタッチして、新しいビデオで再生しようとします。ただし、これは機能しません。
as3 には flashdevelop を、red5 サーバーには eclipse を使用しています。誰でも私を助けることができますか?
flash - Videochat netstream SoundTransform がボリューム コントロールで機能しない
6 人が参加できるビデオ チャット アプリケーションがあります。私がやりたいことは、各パブリッシャーが自分のストリームの音量を制御できるようにすることです。私が持っているコードは次のようになります。
これがうまくいかない理由はありますか?
--
考えられる解決策を編集する -- 考えられる解決策は次のとおりです。スライダーを調整し、マイクのゲインを設定します。ゲイン 0 は効果的にミュートになり、ゲイン 100 はフル ボリュームになります。私にはうまくいくようです。
actionscript-3 - NetStream AS3 の publish() メソッドについて
パブリッシュ メソッドを使用して、Flash Media Server 以外のストリーミング サーバーで flv ファイルを記録することはできますか? それとも FMS のみを対象としていますか? crtmpサーバーはどうですか?
actionscript-3 - データ生成モードのビデオシーク
ビデオプレーヤーを作成していて、データ生成モードを使用しようとしています。しかし、私が探求しようとしたとき、私は適切に進む方法を見つけることができませんでした。たくさん検索しましたが、データ生成モードでの検索例が見つかりませんでした。
誰かがこの状況で私を助けてくれますか?actionscript-3データ生成モードでのビデオストリーミングのサンプルコードがある場合は、共有してください。動作するコードの例が必要です。