問題タブ [live555]

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.

0 投票する
0 に答える
269 参照

c# - live555 ソース ファイルから DirectShow フィルターを生成する方法

しばらくして、この投稿に従って live555 のソース コードをコンパイルすることができました。コンパイルすると、たくさんの *.obj ファイルがありますが、.ax または .dll ファイルはありません。私は C++ が初めてで、DirectShow フィルターまたは dll を生成して C# から使用しようとしていましたが、これまでのところできませんでした。

これらのファイルから Directshow フィルターまたは dll を生成するにはどうすればよいですか? 私は主に Rtspclient の使用に興味があります。

0 投票する
1 に答える
1340 参照

android - 複数の Libstreaming ストリームが最初の RTSP クライアントのセッションとしてのみ認識される

Android LibStreaming MajorKernelPanic サーバーから RTSP H264 ビデオ ストリームを取得するために、Live555RTSP クライアントとして使用しています。異なるRTSPクライアントによって処理される上記のタイプのAndroid RTSPサーバーから複数のビデオストリームを表示するという問題に直面しています。問題は、Live555 経由でも RTSP H264 フレームを取得する VLC を使用している場合です。

  1. 最初の VLC (RTSP クライアント) はビデオを正しく表示します。

  2. 他の VLC (RTSP クライアントも) には何も表示されませんが、そのフレームは最初の VLC ビデオ ウィンドウに表示されます。

この問題は、指定された RTSP サーバーで発生しましたが、他の IP カメラでは発生しませんでした。

RTSPデータフレームがどのセッションに属しているかをlive555がどのように判断できるのだろうか。

Libstreamingの次のコードで問題が明らかになる可能性があることがわかりました。

RTSP サーバーの SETUP 応答で、

PLAYリクエストで。

最初は、「Session:」の後にハードコードされたセッション ID ( 1185d20035702ca ) を動的なものにできると思っていましたが、問題は解決しましたが、変更しても問題は解決しません。

セッション ID の変更の成功は、Wireshark によって検証されます。

関連する提案は大歓迎です。ありがとう。

0 投票する
1 に答える
1011 参照

c++ - Live555 クライアント ストリーミング メモリ リーク

IP カメラ用の C++ RTPS クライアントを実現するために Live555 を使用しています。ほとんどの testRTSPClient コードを使用しています。

Poco ライブラリと Poco::Thread クラスも使用しました。

つまり、各カメラのクライアントは、Live555 オブジェクトのインスタンスを所有する個別のスレッドで実行されます (live555-devel が示唆するように、どのスレッドも、UsageEnvironment と TaskScheduler でインスタンスを使用します)。これは、共有変数と同期を避けるためです。動作が速くて良さそうです。

私の実行可能な (Poco ライブラリの要件に従っている) オブジェクト IPCamera には、次のような単純な run メソッドがあります。

実行が終了したら、join() を呼び出してスレッドを閉じます (ちなみに、myThread->join() を呼び出さないと、メモリが完全に解放されないことがわかりました)。

シャットダウン時に、Live555-devel の要件に従って、コードを挿入しました。

Valgrind を使用してメモリ リークを検出すると、奇妙な動作が見られました。

1) ケース: プログラムを実行する - 適切な方法で実行されるすべての IPCamera でプログラムを閉じます。

a) プログラムの最後に、すべてのデストラクタが呼び出されます。

b) doEventLoop() を終了します。

c)スレッドに参加します(実際にはrunメソッドから終了するため終了します。

d) 示されているように、_myEnv と _myScheduler を破棄します。

e) 関連する IPCamera および Thread を含む、他のすべてのオブジェクトを破棄します。

-> Valgrind によってメモリ リークは検出されません。Ok

ここで問題が発生します。

2) ケース: Poco::Timer が ICMP ping を使用してカメラが動作しているかどうかを X 秒ごとにチェックするユース ケースを実装しています。ネットワークがダウンしているために応答しない場合に備えて、(Pocoイベントを使用して)イベントを発生させ、次のことを行います。

IPカメラダウン:

a) _watchEventLoopVariable = 1 を設定して run メソッドを終了します。

b) 示されているように、IPCamera に関連付けられているクライアントをシャットダウンします。

c) スレッドに参加する

ネットワークが再び稼働し、カメラが再び動作するときにスレッドを再利用したいので、スレッドを破棄しません。その場合: a) _eventWatchVariable = 0 を設定します。b) スレッドを再び開始させます: myThread ->実行()

Valgrind は、メモリ リークが見つかったことを教えてくれました。Live555 のクラスである H264BufferdPackedFactory::createNewPacket(...) のスレッドで、直接 60 バイト、間接 20.000 バイトが失われています。

0 投票する
1 に答える
6322 参照

ffmpeg - H264に関してエレメンタリーストリームとは

ウィキペディアでエレメンタリー ストリームとは何かを読みました。「Live555」を使用しているツールは、「H.264 Video Elementary Stream File」を要求しています。ビデオ アプリケーションからビデオをエクスポートする場合、「エレメンタリー ストリーム」を生成するために特定の設定を選択する必要がありますか?

0 投票する
1 に答える
14611 参照

c++ - Live555 を使用して、H264 エンコーダーに接続された IP カメラからライブ ビデオをストリーミングする

基本的に ARM9 ベースの SoC と DSP プロセッサで構成される Texas Instruments OMAP-L138 ベースのカスタム ボードを使用しています。カメラのレンズに接続されています。私がやろうとしているのは、8192 バイトのパケットで uPP 経由で送信される H264 エンコーディング用の dsp プロセッサに送信されるライブ ビデオ ストリームをキャプチャすることです。Live555 が提供する testH264VideoStreamer を使用して、H264 でエンコードされたビデオを RTSP 経由でライブ ストリーミングしたいと考えています。私が変更したコードを以下に示します。

問題は、コードは正常にコンパイルされますが、目的の出力を取得できないことです。VLC プレーヤーの RTSP ストリームは再生モードになっていますが、ビデオが表示されません。この件に関して何かお役に立てば幸いです。私の説明は少し漠然としているかもしれませんが、必要な部分があれば喜んで詳しく説明します。

0 投票する
0 に答える
539 参照

android - Android (Live555) の 0x00000034 (code=1) で致命的なシグナル 11 (SIGSEGV)

現在、rtp/rtsp を使用して Android 用のストリーミング アプリケーションを開発しています。Android デバイスがサーバーである必要があります。そこで、Android NDK 10 を使用して Live555 (バージョン 01.04.2015) をコンパイルしました。ただし、ストリームを開始しようとすると、アプリがクラッシュし、次の出力が logcat に表示されます。

これが私のソースコードです(live555の例に基づいています):

ということで、ByteStreamFileSource にエラーが出ているのでしょうが、原因がわかりません。

どんな助けでも大歓迎です!

ありがとうございました。

編集 //

ネイティブ コードは、live555 が提供する「testH264VideoStreamer」サンプルに基づいています。したがって、私の jni コードは次のようになります。

これは、ネイティブ コードの Java ラッパーです (MainActivity からの新しいスレッドで呼び出されます)。

私のアイデアは、ビデオをファイルに記録し、このファイルを live555 でストリーミングすることでした。

0 投票する
1 に答える
1538 参照

c++ - ライブオーディオをストリーミング live555

前のトピックで答えが見つからなかったので書いていました。live555 を使用して、Web カメラで記録されているライブ ビデオ (h264) とオーディオ (g723) をストリーミングしています。ビデオ部分はすでに完成しており、完璧に動作しますが、オーディオ タスクについてはわかりません。

私が読んだ限りでは、ビデオ用とオーディオ用の 2 つのサブセッションを追加する ServerMediaSession を作成する必要があります。ビデオの部分については、OnDemandServerMediaSubsession のサブクラス、FramedSource のサブクラス、および Encoder クラスを作成しましたが、オーディオの側面については、どのクラスに基づいて実装すればよいかわかりません。

Web カメラは、ビデオとは別にオーディオ フレームを g723 形式で記録して配信します。VLCで再生しようとすると、スタートコードが見つからなかったと表示されるため、オーディオは生であると言えます。だから私はそれがウェブカムによって記録された生のオーディオストリームだと思います.

誰かヒントをくれないかと思っていました。

0 投票する
1 に答える
912 参照

ios - live555でrtspを使用してWOWZAに送信するh.264ビデオをストリーミングする方法

ビデオのキャプチャ、h.264、WOWZA サーバーでのエンコードは初めてです。

私はstack-overflowとgoogleで非常に多くのソリューションをチェックしましたが、使用できるほど完璧ではありません.

基本機能:

  • iPhone からのキャプチャを続行します (ビデオは h.264 でエンコードされている必要があります)
  • live555 ライブラリを使用して、RTSP URL を生成します
  • 同じビデオをWOWZAサーバーに送信して、ライブブロードキャストビデオを作成します

注:動画は、iPhone デバイスからサーバー上で大きな遅延なく継続的に再生されるはずです。

私の質問:

  • h.264 形式でエンコードされたビデオをキャプチャする方法は?
  • RTSP URL を生成するために live555 ライブラリを VideoCapture クラスに統合する方法は?
  • RTSP プロトコルを使用してそのビデオを WOWZA に送信する方法は?

iOS でビデオをキャプチャするには、AV フレームワークを使用しています。

私の考え方が間違っていたら訂正してください。

ありがとう、プニタ

0 投票する
0 に答える
236 参照

android - Androidの問題でrtspビデオを再生する

以下のコードを使用して、Android で RTSP ビデオを再生する簡単なプログラムを実装しました。

ビデオが表示されますが、1 ~ 2 秒後にビデオが停止 (フリーズ) します。

VLC および Google Play アプリ RTSP Player では、ビデオは正常に動作します。

RTSP サーバー ストリーミングには、Linux で live555 v4l2 と H264 を使用します。

私の問題に対するアイデアや解決策はありますか?

0 投票する
0 に答える
1061 参照

android - Live555 は Android では動作しません

Live555 を使用して Android デバイスから VLC にビデオ ファイル (h264 raw ストリーム) をストリーミングしようとしています。私のネイティブ コードは、Ubuntu で正常に動作する testh264streamer の例に基づいています。
ただし、Android でストリーミングを開始しようとすると、機能しません。ビデオ ファイルは正常に開かれ、クライアントはいくつかのパッケージを受け取ります (私は Wireshark で追跡しました) が、VLC には何も表示されません。
問題は Java と C++ の間の接続にあると思います。そのため、ネイティブ ストリーミング メソッドを呼び出す Java コードを次に示します。

そして私のネイティブコード:

何か提案はありますか?ご協力いただきありがとうございます!

編集 //

これが私のアプリのlogcatです(何か見栄えが悪いようです):

vlc のデバッグ出力は次のとおりです。