要实现类似QQ视频聊天的摄像头图像网络传输。
现已将图像捕获,但不知如何压缩传送 ,和解压回放。请赐教!
现已将图像捕获,但不知如何压缩传送 ,和解压回放。请赐教!
解决方案 »
- Delphi7调用了VC2008编写的DLL,如何打包发布?
- delete edit1.text 怎么改
- cobombox 与dbgrid 小小问题
- 为什么TClientDataSet不能将数据提交给数据库呢?
- 新手问什么是OLE
- 100分请教delphi的参数问题,急,在线!!
- 怎样使LABEL控件显示多行文本?
- 使用ADO如何比较方便地开发程序?
- 女士优先!这是咋了...
- 高手帮帮忙,找一个本地数据库程序改远程执行的方法
- 嘿嘿 如何写把如: 0.01232343... 转成 1 ,0.111111... 转成 11 ,1.1111... 转成 111 >>>谢谢写一个阿 50分 倾家荡产了
- 如何得到操作系统里数据库所有驱动程序的名称?
mdata:array[1..10000] of char;
k:integer;
p: Pointer;
FStream:TMemoryStream;
Jpeg:TJPEGImage;
begin
FStream:=TmemoryStream.create;
Jpeg:= TJpegImage.Create;
Jpeg.CompressionQuality:=50; //压缩比
try
Jpeg.Assign(Image10.Picture.Bitmap);
Jpeg.SaveToStream(FStream);
P:=FStream.Memory;
FStream.Position:=0;
for k:=1 to FStream.Size do mdata[k]:=pchar(dword(P)+k-1)^;
IdUDPClient1.SendBuffer(mdata,FStream.Size); //UDP 发送
finally
Jpeg.Free;
end;
FStream.Free;
下面是UDPServer的接收和图象的解压还原。
procedure TForm7.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
Jpeg:tjpegimage;
i:integer;
begin
for i:=0 to length(X_IP)-1 do
begin
if X_IP[i]=IdUDPServer3.Binding.PeerIP then
begin
Jpeg:=tjpegimage.Create;
try
AData.Position:=0 ;
Jpeg.LoadFromStream(AData);
Image9.Picture.Bitmap.Assign(Jpeg);
finally
Jpeg.free;
end;
exit;
end;
end;
end;
或是用mpeg4标准的Xvid,或是vidX,Xvid是开源的遵守GPL协议
vidx要给钱的,
当然还有其他的,你自己确定了