首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > 多媒体 >

提问一个视频播放的有关问题,怎样能使每秒25帧图像播放的更流畅,更平滑

2012-02-14 
提问一个视频播放的问题,怎样能使每秒25帧图像播放的更流畅,更平滑。小弟现在正做一个播放器,读取流-延时-

提问一个视频播放的问题,怎样能使每秒25帧图像播放的更流畅,更平滑。
小弟现在正做一个播放器,读取流->延时->解码->DirectDraw播放。
现在发现,此程序只有在release模式,而且是直接点击可执行程序时画面比较流畅,有轻微卡顿。
但在调试状态下,Debug模式,图像就很不流畅。感觉是1秒停顿一次,但每秒还是播放25帧画面。
此时我的GOP设置是25.感觉就是遇到一个关键帧就卡一次。

我的延时机制是,不断计算图像的时间戳与当前视频播放已经持续时间的差,并调用Sleep延时一段时间。每两帧图像的时间戳间隔为40毫秒,恒定。

请问这个机制有什么很大的问题吗,谁还有更高效的机制吗。请高手赐教。

[解决办法]
不同帧可能解码时间差距比较大,所以问题就出来了,应该是ddraw显示的时候处理,比如ddraw永远都保存了5帧的缓冲,满了decoder就等,少了decoder就解新的帧
[解决办法]
sleep肯定不行,用event
[解决办法]
"
小弟现在正做一个播放器,读取流->延时->解码->DirectDraw播放。 

我的延时机制是,不断计算图像的时间戳与当前视频播放已经持续时间的差,并调用Sleep延时一段时间。每两帧图像的时间戳间隔为40毫秒,恒定 "

两点:
1 顺序为: 读取流->解码->延时->DirectDraw
2 找楼主的方式,没有考虑到解码所消耗cpu和所占用的时钟,尽管解码相对于编码来说消耗很少,按照你的方法,遇到关键帧,解码消耗一大,延时就不准确了,所以会在关键帧出现的时候可能卡
[解决办法]
为什么一定要延时呢?让播放自己去阻塞不行吗

热点排行