我有一個應用程序,它使用x264 x264_encoder_encode實時發送從編碼中生成的原始h264 NALU。我通過普通的TCP獲取它們,所以我不會丟失任何幀。 我需要能夠在Windows(DXVA2)中使用硬件加速在客戶端解碼這樣的流。我一直在努力尋找一種方法來使用FFMPEG來實現它。試試Media Foundation或DirectShow可能會更容易,但他們不會採用原始的H264。 我要麼需要:將原始H264 NALU流包裝成類似MP4的容器
改變來自服務器應用程序的代碼給回的MP4流。我對x264沒有那種經驗。我可以通過調用x264_encoder_encode得到原H264,通過遵循這個問題的答案:How does one encode a series of images into H264 using the x264 C API?如何從這個去的東西,被包裹在MP4,同時仍然能夠以流其在實時
我可以在接收器用mp4標頭包裝它,並將它饋送到可以使用DXVA播放的東西。我不知道如何去做
我可以找到另一種方法來使用帶有FFMPEG或其他原始格式的DXVA加速它。
一個重要的限制是,我需要能夠顯示它之前預先處理每個解碼幀。任何沒有在一個單一的步驟解碼並顯示解決方案是行不通的,我
我會被罰款與任何一個解決方案
'DXVA'的美麗和速度基本上假定視頻呈現給用戶,而不是從視頻內存回讀到RAM中。準備好從視頻內存中讀取數據可能會出現意想不到的速度,並且爲演示之外的目的而消除快速硬件輔助解碼的全部想法。 – 2012-05-01 12:05:06
是啊......我想我現在就想接受這個事實。無論如何在DXVA的某個階段預處理幀。也許寫一個媒體基礎過濾器或類似的東西? – cloudraven 2012-05-02 23:07:23