用mpeg4格式同时压缩4路视频流,资源占用率太大,请教高手(200分)

  • 主题发起人 cyantree
  • 开始时间
C

cyantree

Unregistered / Unconfirmed
GUEST, unregistred user!
用ICCompress压缩从采集卡采来的原始RGB图像,压成mp43的视频流发送到网络,同时
压缩四路,用四个线程同时工作,现在的问题是为了保证25帧每秒的速率,每次压缩的
时间不能超过40毫秒,但是ICCompress至少要花40-50毫秒,关键帧更长,大约是120多
毫秒,从而造成资源占用率太高,而且出现丢帧,画面停顿比较明显

我的问题是:怎么系统资源占用率降下来?或者有什么方法能让ICCompress的速度快一
些?我用的是microsoft的mpeg43 fast压缩格式。
 
我也很想知道
能否给出ICCompress的例子?
我再帮你加300分
 
iccompress的例子在msdn里有:platform sdk->graphics and multimedia services->video for windows
 
搞没搞错啊 上四路 太多了啊。
我的机器 PIII800 x2 压缩360x288x25fps MP42 就只能实时上 2 路啊。不要太贪心了呀。

 
to ggcat:
为了存盘时可以存储前5秒的图像,所以需要同时压缩4路,我也不想这么做,没办法
将来还会变成16路,恐怖吧:(
 
换奔腾芯片,多CPU,大内存,好硬盘,
当然,还得保证你的算法的效率。
 
强烈关注
 
to ggcat and cyantree
我想知道在程序中如何不通过COMPRESSION对话框,通过函数方式选择不同的压缩方式,并
使用该压缩。只要一路就行。
谢谢。
 
ICOpen 用那个Codec的fourcc来打开
 
不要用MS的mepg43 fast
用DivX
 
to ggcat :
能不能给个例子,谢谢
 
推荐用MS的mpeg43,图像清楚,而且速度快,资源占用只比divx多大概2%左右
 
我也想知道如何将一般avi或mpeg1压成mpeg4,可300分!谢谢!
 
to balas
你是想自己编软件,还是找应用软件。有现成的软件,而且有C的原码。我可以发给你,你也可以
到网上找。(VirtualDub)
记得给我加分哦!
 
谢谢楼上各位的关注,现在程序已经写的差不多了,该解决的也解决的差不多了,多路压缩
用了帧速率动态调节的办法,同时运行4路已经没有问题,最多可以到16路,不过已经是极
限了。

过些时候再加分,因为希望能有更多的讨论和更精彩的内容,如果有哪位觉得应该给分了,
说一下,立刻给分。

再次表示感谢。
 
to cyantree:
我认为用软压缩,压缩四路,应该不可能的。不知道你是用了什么方法,什么原理能够
达到这个效果。能不能给我解说一下。如果能附上源代码就太感谢了。如果不能就请详细介绍
一下。我们搞技术的,有了难点总想克服他。谢谢!
mail:test007@wx88.net
 
我是想编一个把视频捕捉卡捕捉到的影像实时压缩成mpeg4并实时播放,望高手解说一下!谢谢!
 
to delphimem &
balas:
因为是公司的程序,所以不能公开代码,不过我可以讲一个原理 -
首先是找一个好的codec,目前用的是microsoft的mp43和divx(没有:)的那个,请访问
www.divx.com),mp43压缩出来的图像几乎没有失真,很清楚,几乎和未压缩前一样的
图像质量,divx的图像就比较差了一点,运动图像边缘有模糊现象,但是压缩出来的文
件极小,大约是mp43的50%。I263也是考虑过的codec,263比较占资源,多路不合适,
而且图像太模糊,但是适合网络传输,因为压缩后的文件非常的小。

压缩用的是ICCompress系列API,由于不能公开代码,所以我只能讲一下寻找的方法。在
MSDN里用ICCompress搜索一下就可以找到相关的API,如果想用在Delphi中,请到Jedi下
载vfw的头文件。没有控件,至少我没有找到过,自己写吧。

主要的技术就是这些了。目前4路显示并同时压缩没问题,不过CPU也快满了。
 
顶部