即时采集到的视频流传到另一台机器后的播放问题(100分)

  • 主题发起人 主题发起人 jilina
  • 开始时间 开始时间
J

jilina

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做视频聊天的时候遇到的一个问题。
我是用ics控件把从本机上捕捉到的视频缓冲区里的数据直接发给了局域网上的另一台机器,
但是传过去的是pByte格式的流,我想在一个Panel上即时的显示,不知道有没有办法!
各位大虾多多帮忙!
 
pByte格式的流?? pByte是指针啊,你传过去干什么?
ics控件没用过,不知道,你要弄明白“捕捉到的视频缓冲区里的数据”
到底是什么数据,是直接捕捉倒的raw data还是编码压缩过的等等
接收端要根据数据类型解码(需要的话),再按格式显示出来
这里面涉及到音视频编码解码,实时数据传输,DirectX等等,比你想的麻烦得多啊
 
如果时未压缩的就可以直接显示. 如果是压缩过的. 就要根据压缩的格式信息重建流.然后解码显示.
 
我捕捉到的是未经压缩的avi格式的数据流,还没有加进音频,也没有处理,
直接传送出去了。可以直接显示是什么意思,有什么函数可以利用吗?显示在panel上
 
如果传输的是AVI流的话,一般是这样的,取得panel的窗口,再把AVI流中每祯的图象
依次画出来,但这种方法一般来说速度都跟不上实时显示,所以一般都是在这个窗口
上建各DirectDraw对象,直接将图象数据写入,这也就是VFW中所谓的Overlay
 
能不能详细的介绍一下!
不胜感激!
我看了vfw的overlay了但是他好象只有两个参数,一个是窗口句柄一个是布尔型的变量,
但是他怎么用的缓冲去的数据我没明白
 
你捕捉数据时应该是定义了好数据的采集格式的,如帧率,帧格式等。
传递后,播放时,只需要调用DrawDib系列函数处理就行了。
 
我是用的vfw里的格式,PVIDEOHDR = ^TVIDEOHDR;
TVIDEOHDR = record
lpData:pByte;
// pointer to locked data buffer
dwBufferLength:DWORD;
// Length of data buffer
dwBytesUsed:DWORD;
// Bytes actually used
dwTimeCaptured:DWORD;
// Milliseconds from start of stream
dwUser:DWORD;
// for client's use
dwFlags:DWORD;
// assorted flags (see defines)
dwReserved: array [0..4] of DWORD;
// reserved for driver
收到以后我用了DrawDibDraw画,可是我没有画出来,可能是参数的意义没有搞懂,能不能
指点一下。谢谢!
我是这样用的
DrawDibDraw(hcapwindow1 ,image1.Canvas .Handle ,0,0,100,100,
@buf,a ,0,0,0,0 ,DDF_UPDATE)
hcapwindow1是我在image1上建立的窗口,buf是我接到的数据的缓冲区
我也曾用过panel代替image,最后一个参数我已经换过一便了,没看出什么区别来

 
你好歹也压一下再传吧。
 
呵呵,是啊,先存成stream,再compress,然后decompress,最后loadfromstream
 
我看了msdn里的介绍,好象要涉及到inteface对吧!
我对这个还没什么了解,在有msdn里的解释也不是很详细(都是英文),还麻烦你详细一点的
给我介绍一下压缩和解压
谢谢
 
我找到了delphi自带的zlib的压缩代码,但是他的compressbuf有四个参数
const InBuf: Pointer;
InBytes: Integer;out OutBuf: Pointer;
out OutBytes: Integer
这是什么意思,他的压缩比不是一定的吗!怎么可以同时指定压缩前和压缩后的大小呢?
请各位大虾不吝赐教!!!
 
关注!!
 
压缩还是要用VCM 管理器的. 就是avi部分. 多看看msdn吧. 至于显示. 最好先用drawdib函数.
 
我看了半天可是还是不不懂!msdn的东西本来就挺深的(我觉得)他还是全英文的,我更看不懂了
能不能指点一下呀!谢谢了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部