2010-01-20 47 views
1

我想創建一個從我的DirectX應用程序中獲取的圖像生成的FLV流,最終在網頁上生成。從屏幕截圖創建FLV流的最佳方式

我目前的計劃是(已)將截圖以JPG格式從dx應用程序發送到在Linux上運行的客戶端。該客戶端將JPG轉換爲MJPEG流。並且ffmpeg將MJPEG流轉換爲FLV - 最終在瀏覽器中的Flash Player中結束。

有點像;在Windows機器上

  1. 運行DX應用程序,它監聽連接發送截圖JPG:s到Linux機器上
  2. ; ./jpg_to_mjpeg_client | ffmpeg -f mjpeg -i - output.flv

我以爲這個計劃很好,但我現在被卡住了。 ffmpeg似乎無法正確處理來自客戶端的MJPEG流。我使用了一些我在網上找到的代碼來創建來自JPG的MJPEG流,並且我知道沒有真正的MJPEG格式規範,所以他們可能不使用相同的MJPEG格式或其他東西。

現在我正在從dx應用程序發送每一幀的[JPG緩衝區大小],[JPG緩衝區]。我想我可以在某處編碼一些流,但另一方面,我也不想在渲染機上浪費太多的CPU。

你會怎麼做?任何提示都非常感謝!圖書館/ API:使用,其他解決方案..我沒有太多的視頻編碼經驗,但我知道我的方式「通用編程」很好。

C或C++是首選,但Java或Python也可能是好的。我想它相當快 - 它必須實時創建,從DX應用程序的一幀應儘快結束在瀏覽器:-)

哦,在未來,計劃是它應該是交互式的,以便我可以在瀏覽器中通過webapp與DX應用程序進行通信/控制。也許可以很好地添加這些信息。有點像基於網絡的錄像機,電影是從DX應用程序實時渲染的。

謝謝,

+0

爲了記錄,我設法讓DX應用程序通過HTTP將MJPEG發送爲JPG:s,從而進一步實現了這一功能。 ffmpeg接受了這一點,並能夠從中吐出一個MPG視頻。所以現在就是FLV流式播放,我將嘗試使用ffserver。 – boffman 2010-01-22 07:40:32

回答

0

在Linux上使用gstreamer。您可以使用任何您喜歡的編解碼器將幾乎任何輸入和輸出組合在一起。學習有點麻煩。