Chinaunix首页 | 论坛 | 博客
  • 博客访问: 38537
  • 博文数量: 17
  • 博客积分: 1445
  • 博客等级: 上尉
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-30 18:15
文章分类

全部博文(17)

文章存档

2012年(1)

2010年(4)

2009年(8)

2008年(4)

我的朋友
最近访客

分类: LINUX

2009-04-21 00:15:23


  最近在搞跟视频相关的东西,自己用相关手段生成的ps文件在mplayer上播放不能很好的获取总的播放时间,当然在暴风等一些播放器上也不能很好的获取到时间,当然暴风咱也只能“眼睁睁”的看着它耍横,没办法,谁叫人家NB,不开源的东西,想了也是白想,那咱们就来一个曲线救赵的做法,当然首先想到的就是大名鼎鼎的mplayer啦,好东西啊(^.^)。从网上down了个,粗略地搜了把相关的资源,可能是偶搜索技术比较面,没搞到多少有价值的东西,当然这种东西大牛不想写,像我等面人却也不会,呜呼哀哉.......
 
预备:
   随便翻了翻mplayer的代码,貌似比较复杂。再说时间紧迫啊,那就找个软的捏-vlc呗,这个名气没有mplayer大,应该好些吧,窃喜ING。
   遂又down了个vlc的代码,看了下关于播放总时间的处理流程,发现相对来简明多了,思想也比较简单....此处省略1W字,呵呵,哪有这么多。无非就是一个简单的减法处理罢了。在自己的方案上按照vlc的方法做了相应的修改,结果可想而知啦,倒是正确了。但发现在mplayer上仍然不对,获取的时间始终不对,怪了....
   废话,当然相信mplayer啦,肯定是自己的东西还存在问题,没办法啦,就只有重新操刀,当然是个小刀。
 
手术
    大致瞧了下她那美丽的轮廓, 不知道美不美,呵呵,欣赏能力有限啊。当然还是把我需要的东西找到了,其实跟我相关性最大的的文件也就demux_mpg.c这个文件罢了,恩,硬着头皮看看。
    ps数据的解析流程可以简单表述:demux_mpg_fill_buffer->demux_mpg_read_packet():读取数据,然后分析读取pts->demux_mpg_pes_probe->demux_mpg_probe->demux_mpg_open,在>demux_mpg_open函数中有对ps文件的获取播放总时间的一个处理过程。也是瞄了瞄,没太仔细,发现果然mm的对时间长度的处理比起vlc的确精致了不少,虽然他对偶的文件处理错了,但偶还是更确信mp在应对大量stream文件的处理能力比vlc强了不少。
 
 
阅读(429) | 评论(0) | 转发(0) |
0

上一篇:fedora's faq

下一篇:samba之夜

给主人留下些什么吧!~~