作者Arton0306 (Ar藤)
看板GameDesign
标题Re: [请益] SDL播放影片的方法
时间Fri Dec 21 22:57:44 2012
※ 引述《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)
1F:推 yoll522:原来如此,看来真的不好上手,谢谢你唷 12/23 12:25