渲染軟件哪個好用,Windows平臺OpenGL渲染視頻
渲染軟件哪個好用,Windows平臺OpenGL渲染視頻
我之前寫過一個簡單的RTSP播放器(https://github.com/greenjim301/rtsp),當時的視頻渲染是用D3D實現的。一直想嘗試一下用OpenGL來渲染視頻,但卻不得空,最近有時間就決定在之前的RTSP播放器基礎上實現OpenGL渲染。
首先就是搜尋各種OpenGL渲染的例子,自己再做些整合與調試。最終的實現主要參考了WebRTC OpenGL渲染實現、微軟官方樣例、以及CSDN上一些博客的文章。據我所知,Windows窗口是不支持OpenGL直接渲染YUV的(有的平臺支持OpenGL直接渲染YUV),所以就需要將解碼后的YUV轉換成RGB再進行渲染,這個過程是用libyuv實現的。在調試過程,我還遇到了一個問題,就是Windows窗口發生變化后,OpenGL渲染的畫面沒有隨之變化。解決方法就是要截獲Windows窗口的WM_SIZE消息,并根據新窗口大小更新OpenGL的Viewport。這里需要注意的就是OpenGL更新Viewport只能在OpenGL渲染的同一線程內執行,不然也是不生效的。
OpenGL渲染相關的代碼已經更新到了上述RTSP播放器的github上。
渲染軟件哪個好用?我也做了OpenGL與D3D渲染性能的對比,測試結果是OpenGL比較快,這出乎我的意料,原以為D3D會更快一些。在我的電腦上,渲染1000幀1080P視頻D3D需要7秒左右,而OpenGL只需要4秒左右。
?