我想知道如果有人曾經做過這樣的事情。我有一部高清電影(甚至是720p),我想將它發送到Flash客戶端。我正在考慮在C++中使用OpenCV作爲解碼和發送部分。我甚至已經實現了一些這樣的功能,但是有錯誤的數據包大小的問題。通過套接字發送高清電影幀到閃存
但我的問題是不同的,有沒有人做過類似的事?這是否可以提高性能?我對此有強烈的懷疑,因爲我認爲Flash機器的發送和解碼仍然很困難。期待聽到更有經驗的人的一些意見。
我想知道如果有人曾經做過這樣的事情。我有一部高清電影(甚至是720p),我想將它發送到Flash客戶端。我正在考慮在C++中使用OpenCV作爲解碼和發送部分。我甚至已經實現了一些這樣的功能,但是有錯誤的數據包大小的問題。通過套接字發送高清電影幀到閃存
但我的問題是不同的,有沒有人做過類似的事?這是否可以提高性能?我對此有強烈的懷疑,因爲我認爲Flash機器的發送和解碼仍然很困難。期待聽到更有經驗的人的一些意見。
不是一個真正的答案,更像是關於您的問題的想法:
基本上有兩種網絡協議,通常用於將視頻從服務器發送到Flash客戶端,HTTP和RTMP。
HTTP是一個衆所周知的標準,易於實現,因爲它是一種純文本協議,允許Flash Player播放點播視頻文件或執行所謂的pseudo-streaming。
RTMP是由Adobe創建的專有協議,允許實時流式傳輸以及視頻點播,還可以傳輸結構化二進制數據(AMF格式)作爲遠程過程調用協議。 雖然現在證明,它要複雜得多HTTP實現,但實現該協議的開放源碼庫,librtmp,在http://rtmpdump.mplayerhq.hu/發現。
請注意,我用librtmp成功,在客戶端,有一個C程序的行爲作爲一個Flash客戶端發佈一個FMS服務器上的視頻。我沒有在服務器端使用它的經驗,我甚至不知道它是否可能。
在你的情況,我當然推薦使用HTTP。
現在有克服另一個問題,這是一個事實,即對於要正確識別視頻幀,它們必須嵌入在Flash播放器可以讀取的容器。
閃存目前支持兩種容器格式,FLV和F4V,後者是MPEG-4容器格式的子集。
此外,視頻流必須能夠讀取由Flash,因此它必須被正確編碼成支撐在客戶端的格式,例如H.264,索倫森,或VP6。
可以直接發送GIF,JPEG或PNG圖像作爲幀,如官方Flash Video Specification的第8頁所示,但您必須認識到,在高清分辨率下,這將是非常低效的,想象一下,在25 FPS,JPEG中的1920x1080像素的單幅圖像比等效的H.264幀大得多。
所以,最後,我的建議是:不要解碼服務器上的視頻,確保它的格式與Flash兼容,並且使用一個記錄良好的協議按原樣發送。
你的回答幫助我意識到,這似乎是一種甚至最糟糕的方式。我正在尋求改進我的Flash應用程序的性能,我想在其中播放3或4個高清視頻。使用我在Flash中本地發現的所有內容,我仍然沒有發現任何可以接受的質量支持。雖然這可能會做到 - 似乎我錯了 – Tomcatus
我在這裏尋求想法和不同的觀點,所以謝謝;-)你注意到使用OpenCV時缺乏聲音 - 這可能是一個問題,我必須考慮它。 – Tomcatus