Re: [請益] SDL播放影片的方法
※ 引述《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
討論串 (同標題文章)