Re: [請益] SDL播放影片的方法

看板GameDesign作者 (Ar藤)時間11年前 (2012/12/21 22:57), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《yoll522 (522)》之銘言: : 不好意思,小弟我又來了 : 我在GOOGLE查SDL播放影片的函式時都只查到ffmpeg+sdl來實現播放影片 : 可是那都是2005~2008年間的文章了,我想說現在都2012了 : sdl應該可以實現播放其他格式的影片,例如mp4 : 或者是已經有新的播放影片的函式 : 可是卻都查不到相關的方法,教學也都找沒有@@ : 想請問是否有人知道播放影片的方法?不管是Document還是教學網站都可以 : 感謝 : 其實我本來以為sdl_video就是播放影片的.h檔,可是似乎不是@@ : 這好像只是跟視窗有關而已 libav(ffmpeg)這我剛好有用過 以下僅是我個人理解 可參考看看 就我所知SDL是主要讓你方便處理鍵盤、滑鼠事件的 而ffmpeg用來編解碼 一般影片都是壓縮過的 利用ffmpeg可以解出 影像和音訊的raw data 影像的raw data包含一連串的點 假設這些點用RGB 3個bytes來存 如800*600的圖 就需要800*600*3bytes的空間 再加上檔頭以說明長寬 如此可知後面的串流是800*600 所以你要做的事是用ffmpeg解出這些一張一張的畫面 ffmpeg解完的時候會有個資訊跟你說每一張是第幾秒的畫面 假設使用的是Qt,就可以用類似下面的方式存在image中 QImage image = QImage::fromData( aPpmBuffer, aPpmSize, "PPM" ); (一般影片raw data副檔名是ppm) 然後再在widget上畫image,並不斷依時間update 後面還有音訊和影片sync等等的問題 就算很陽春的影片播放器 其實也不太簡單 如果你不想處理低階的問題 Qt本身就有VideoPlayer的Widget可以直接使用 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.42.48.118 ※ 編輯: Arton0306 來自: 114.42.48.118 (12/21 23:08)

12/23 12:25, , 1F
原來如此,看來真的不好上手,謝謝你唷
12/23 12:25, 1F
文章代碼(AID): #1Gr7Zhm_ (GameDesign)
文章代碼(AID): #1Gr7Zhm_ (GameDesign)