陆老师在不在?请教个问题

Kevin_jia 2004-08-30 03:36:08
我根据您的视频叠加例子做了个程序,将两路视频文件叠加成一路视频播放,功能基本实现,但是还有个问题,就是连接Mix pin的视频显示不连续,总是丢帧,该怎么样使它们同步连续播放?又比如在DS程序中加入Timer事件,OnTimer处理也是有很大的时滞,这是DS的问题?请您指点,谢谢!
...全文
106 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kevin_jia 2004-08-30
  • 打赏
  • 举报
回复
谢谢,非常感谢!
我现在明白了,主要的问题是两个网络视频源的帧率不一样,而程序是在得到一路帧后取出另一路然后合并,因此您说得解决方法也不行,如果等CFrameList处理,则一路视频会很慢的。

至于说的OnTimer,其实做什么处理无所谓,我认为WM_Timer消息处理就有问题。比如我做一个滚动窗口显示文字信息(不是用Filter完成,而是窗口),窗口的滚动就时快时慢
happydeer 2004-08-30
  • 打赏
  • 举报
回复
你在OnTimer中做什么处理?
happydeer 2004-08-30
  • 打赏
  • 举报
回复
你可以看到那个例子中使用了一个CFrameList类实例对mix pin进来的sample数据进行缓冲。如果CFrameList缓冲的视频帧过多,最早的一帧视频将被丢弃,留出空间来缓存新进来的视频帧。所以,Mix pin的视频显示不连续是可能的。

解决的办法很简单,当Mix pin新进来sample时,判断一下CFrameList缓存是否已满。如果满了,则等待(叠加时会被取出)。直到CFrameList有空间了,再将新进来的sample缓存。

如果做的好一点,最好判断一下input pin和mix pin进来的sample各自的时间戳,根据时间戳同步叠加。

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧