2

現在、RTSP 経由でトラフィック検出カメラのセットに接続する必要がある Flex アプリケーションに取り組んでいます。一般的にビデオ ストリーミングの世界ではまったく新しいので、それが可能かどうか疑問に思っていました。

私の知る限り、Flash プレーヤーで RTSP フィードを使用することはできません。そのため、RTSP ストリームを取得して RTMP に変換する何らかのコンバーターがサーバーに必要になると考えています。フレックスアプリ。Red5 がそれを支援してくれることを期待していました。

私の仮定は正しいですか、誰かがこれを行ったことがありますか?

4

7 に答える 7

2

Wowza Media は RTSP から RTMF への変換をサポートしているようです: http://www.wowzamedia.com/comparison.html

また、Red5 と FFMPEG に基づく一般的なビデオ ストリーム トランスコーダ Xuggle http://www.xuggle.com/もあります。

于 2009-05-05T03:11:01.990 に答える
1

この作業に基づいて 、H264 信号を Flash で簡単に表示できる SWF ストリームに変換しようとしました。これがレシピです。(このレシピは Linux 用です。)

  1. http://www.live555.com/liveMedia/から Live555 ストリーミング メディアをダウンロードし ます

  2. 解凍してコンパイルします。

    • 開梱: tar xzvf live555-latest.tar.gz. これにより、live という名前のディレクトリが作成されます。
    • cd live
    • ./genMakefiles linux(32 ビット システムの./genMakefiles linux-64bit場合) またはシステムが 64 ビットの場合)
    • make、しばらくすると、まったく新しいコンパイル済みコードが得られます
  3. Live55 には多くの優れた機能がありますが、openRTSP が存在する「testProgs」ディレクトリにのみ関心があります。OpenRTSP を使用すると、シグナルを受信して​​、ffserver にフィードするプログラムである ffmpeg に送信できます。Ffserver は、ffmpeg から信号を受信し、SWF (およびその他の形式) に変換するサーバーです。

  4. ffmpeg のダウンロード、解凍、構成、およびインストール

    • http://www.ffmpeg.org/から ffmpeg をダウンロードします。私がテストしたバージョンは 0.6.1 です: http://www.ffmpeg.org/releases/ffmpeg-0.6.1.tar.gz
    • 開梱: tar xzvf ffmpeg-0.6.1.tar.gz. これにより、ffmpeg-0.6.1 という名前のディレクトリが作成されます
    • cd ffmpeg-0.6.1
    • VideoLan には、面白いビデオ ストリーミングのすべてがパッケージ化されています。したがって、VideoLan を今すぐインストールすることをお勧めします。http://www.videolan.org/にアクセスして、インストールがいかに簡単かを確認してください。パッケージの依存関係に ffmpeg ライブラリが含まれていることに驚くかもしれません。
    • VideoLan をインストールしたら./configure、次にmake.
    • 3 ~ 4 時間後、mmpeg と mmserver がコンパイルされ、動作するようになります。
  5. これで、全世界をストリーミングする準備がほぼ整いました。まず、openRTSP を動かしてみましょう。
  6. 「ライブ」ディレクトリ (3.2 を思い出してください) に移動して、次のように実行します: cd testProgs

  7. これを試してください:./openRTSP -v -c -t rtsp://<hostname>:<port>/<cam_path>まず、次のようなログが表示されます。

    - opening conection blah blah.
    - sending DESCRIBE blah blah.
    - receiving streamed data.
    

    すべてがうまくいけば、コンソールは多くの奇妙な文字を非常に迅速に出力し始めます。これらの文字はビデオのバイトですが、(現在) 見ることはできません。スクリーン印刷文字が表示されない場合は、構成に問題があります。今までの手順を確認してください。

  8. 信号を受信しました!それでは、ffserver にバインドされている便利なコンポーネント ffmpeg に送信しましょう。ffserver の構成ファイルを作成する必要があります。
  9. お気に入りのエディターを使用して、このテキスト ファイルを作成します。

    Port 8090
    BindAddress 0.0.0.0
    MaxHTTPConnections 2000
    MaxClients 1000
    MaxBandwidth 1000
    CustomLog -
    NoDaemon
    
    <Feed feed1.ffm>
    File /tmp/feed1.ffm
    FileMaxSize 200K
    ACL allow 127.0.0.1
    </Feed>
    
    <Stream testFlash.swf>
    Feed feed1.ffm
    Format swf
    VideoFrameRate 25
    VideoSize 352x288
    VideoIntraOnly
    NoAudio
    </Stream>
    
    <Stream stat.html>
    Format status
    ACL allow localhost
    ACL allow 192.168.0.0 192.168.255.255
    </Stream>
    

    ファイルに名前を付けます (例: ffserver.conf)。ffserver と同じディレクトリなど、任意の場所に保存します。

    したがって、ffserver は入出力用にポート 8090 にバインドされます。<Feed>タグは入力ストリームを構成します。この場合の構成済みフィードの名前は、feed1.ffm です。ステップ 14 で覚えておいてください <Stream>。出力ストリームの構成が含まれています。この場合、名前は testFlash.swf (これも覚えておいてください) になり、形式は SWF になります。ビデオ フレーム レートは 25 で、サイズは 352x288 で、オーディオは含まれません。最後のストリームは、サーバーのステータスを表示する HTML ファイル (stat.html) です。

  10. 開始ffserver: ./ffserver -f ffserver.confします(または構成ファイルを残した場所)。-f パラメータは、カスタム ファイルから構成をロードすることを示しています。

  11. ナビゲータを開き、 に進みhttp://localhost:8090/stat.htmlます。サーバーのステータス ページが表示され、testFlash.swf ストリームに関する一連の情報が表示されます。今はとても静かに見えるので、このストリームに openRTSP の出力 (ステップ 7 から) をフィードしましょう。

  12. これを行う:

    <path to openRTSP>/openRTSP -v -c -t rtsp://<hostname>:<port>/<cam_path> | <path to ffmeg>/ffmpeg -i - http://localhost:8090/feed1.ffm
    

    最初のパス (「|」の前はステップ 9 と同じです。「|」は、openRTSP の出力 (一連のビデオ信号、別名ストレージ文字) を ffmpeg の入力に接続する記号です。「-I - " は、mmpeg の入力がパイプ "|" から取得され、http://localhost:8090/feed1.ffmffmpeg の宛先 (出力) であることを意味します。これは、基本的には ffserver の入力です。

    したがって、このコマンドで openRTSP -> ffmpeg -> ffserver に接続しました

    このコマンドを入力すると、多くの情報が表示されます。入力パラメータと出力パラメータが表示されており、これらのパラメータは「互換性がある」必要があることに注意することが重要です。私の場合、これは次のように表示されます。

    Input #0, h264, from 'pipe: ':
    Duration: N/A, bitrate: N/A
    Stream #0.0: Video: h264, yuv420p, 352x288, 25 fps, 25 tbr, 1200k tbn, 50 tbc
    Output #0, ffm, to 'http://localhost:8090/feed1.ffm':
    Metadata:
    encoder: Lavf52.64.2
    Stream #0.0: Video: FLV, yuv420p, 352x288, q=2-31, 200 kb/s, 1000k tbn, 25 tbc
    Stream mapping:
    Stream #0.0 -> #0.0
    </pre>
    

    そして、ストリームが再生され始めます。最後の行の番号が常に変化し、各瞬間のライブ フレーム レートを示していることがわかります。何かのようなもの

    frame= 395 fps= 37 q=31.7 Lsize = 1404kB time=15.80 bitrate = 727.9kbits/s
    

    このメトリック行が表示されない場合は、出力構成に問題があります。戻って、testFlash.swf のパラメータを変更します。

  13. すべてが完了しました。で動画をご覧いただけますhttp://localhost:8090/testFlash.swf。この URL を使用して、Flash ムービーや、私の場合のように Flex アプリケーションを埋め込むことができます。

于 2011-03-24T11:50:39.790 に答える
1

Red5 経由で再ストリーミングし、Flex アプリを Red5 サーバーに接続してみてください。

続きを読む:http://red5wiki.com/wiki/SteamStream

于 2009-05-01T13:47:30.873 に答える
0

これを Wowza でテストしました。入力は Etrovision H264 DVS からの RTSP ストリームでした。このトレッドを見て、試してみたい場合はそこから Application.xml ファイルを使用してください: http://96.30.11.104/forums/showthread.php?p=24806

ビデオは Flash Player で再生されますが、価格はシングル ストリームで 5 秒の遅延、オフィス LAN 内のすべての機器、Core2Duo/2.8GHz/3GB RAM で動作するサーバーです。それがより速く進むことができるのか、それともこのセットアップで予想されるトランスコーディングの損傷なのかはわかりません...

于 2010-01-03T17:10:37.050 に答える
0

Flex でのプログラミングや、swf に組み込むために必要なものに精通している場合は、rtsp-over-tcp を試して実装することができます。AFAIK udp はフラッシュでは使用できません。

于 2009-06-02T17:21:08.967 に答える
0

そのパブリック/オープン ソース バージョンは現在少し古くなっていますが、Xuggler と Red5 を使用して RTSP と画像ベースのカメラを RTMP ストリームにトランスコーディングしたこのプロジェクトを見ることができます。 http://sourceforge.net/projects/imux/
(免責事項: 元のソースを作成した会社で働いていました)

于 2010-09-03T01:37:07.250 に答える
0

Red5 は問題ありません。特に xuggle サポート (FFMPEG の既成の統合が可能) により、red5 との優れた統合 (つまり、ライブ ストリーム変換の実行に関する優れたチュートリアル) が提供されます。

于 2009-05-15T11:36:36.940 に答える