2014-10-28 82 views
0

我正在研究一個涉及使用Adobe AIR顯示來自IP攝像機的視頻源的項目。我知道,Flash不具有RTSP協議的原生支持,所以我正在評估所有可能的路由我可以解決這個問題:在Adobe AIR中顯示RTSP流

  1. 使用Adobe Media Server傳入RTSP流轉換爲RTMP,然後use閃存API (NetConnection & NetStream)。

  2. 編寫自定義類以在Adobe AIR中獲取,解碼和顯示流。 [我無法確認這是否是可能的,因爲在網絡上信息不足]

  3. 放棄對RTSP和圖像,而不是fetch JPEG/MJPEG序列,並在空氣相對容易顯示出來,但與懷疑現場性能。 [由於IP相機和相同的間隔分開在AIR JPEG/MJPEG刷新間隔]

  4. 使用DirectShow Video Source Filter for JPEG and M-JPEG IP Cameras處理JPEG/MJPEG流,創建虛擬網絡攝像頭裝置(過濾器自動執行此),然後使用Camera類在AIR中顯示視頻供稿。

  5. 使用webcam 7 - 一款旨在處理許多相機品牌/型號的RTSP,JPEG/MJPEG和其他流協議的軟件。它在創建虛擬相機的系統中安裝驅動程序,然後所有其他應用程序可以用作普通網絡攝像頭。 不幸的是,這個軟件有問題,並且經常變得不穩定(可能只有我特定的相機型號),甚至可能會崩潰。

是否有更好,更簡單的選項,可能不需要任何第三方軟件?

編輯:

如果別人碰到同樣的問題: 作爲建議的Rudolfs Bundulis,我決定寫一個NativeProcess(ANE)使用FFMPEG來獲取RTSP流數據,轉碼,並將其提供給Flash播放器。 你可能想看看這些更具體的步驟:

http://www.purplesquirrels.com.au/2013/02/converting-video-with-ffmpeg-and-adobe-air/ https://www.youtube.com/watch?v=6N7eN9wvAGQ

回答

1

採取選擇2所描述的路線 - 編寫使用FFmpeg的處理RTSP流的Adobe AIR本機擴展(ANE)解碼並將RGB數據傳回AIR以進行渲染。如果您需要跨平臺功能,最難的部分是編譯F​​Fmpeg,但是,由於您提到的DirectShow僅爲Windows,因此我認爲您必須使用Windows。 Zeranoe提供預生成的FFmpeg庫用於Windows,#1對解碼使用FFmpeg的流了很多話題,然後你需要的是一個回調AIR,你是好。

+0

謝謝。在這種情況下不需要跨平臺功能。我想深入修改FFmpeg庫。 – astralmaster 2014-10-29 11:49:58

+0

你不需要修改它們。只是讓AIR本機擴展,把類似http://stackoverflow.com/questions/10715170/receiving-rtsp-stream-using-ffmpeg-library內接收和解碼流,你是好。 – 2014-10-29 12:03:28