网络视频传输遇到几个问题--包含部分代码

niuroutang 2006-12-11 06:44:08
AnsiString strData;
NMUDP->ReportLevel=Status_Basic;
NMUDP->RemoteHost="127.0.0.1";
NMUDP->RemotePort=4001;
strData=pBuf;
DWORD a=StrToInt(strData.Length());
Edit1->Text=IntToStr(a);
TMemoryStream* HeadStream=new TMemoryStream();
AnsiString Head;
Head="Start" ;
HeadStream->Write(&Head[1],5);
NMUDP->SendStream(HeadStream);
HeadStream->Free();
//分包传送图片循环
for(b=1;b<a;b+=1000)
{
TMemoryStream* mStream=new TMemoryStream();
mStream->Write(&strData[b],1000);
NMUDP->SendStream(mStream);
mStream->Free();}

我是用大恒的采集卡,调用他的函数,得到的一祯图像放在char*pBuf里边,我想BCB里应该有把他压缩为jpeg的方法,但是我在help里边找了很久也无果。盼指点一二!
还有就是,因为udp传送不可能把整张图片一次传到客户端,所以我分包传送,我传到客户端的数据不会拼接,所以无法得到一副完整的图像,每次客户端收到的包放在一个AnsiString strData里边,然后我想把每次收到的拼接起来放到一个char* pBuf2里边,怎么才能实现啊!
先谢谢各位大哥了!
...全文
303 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sbkopoky 2007-02-17
  • 打赏
  • 举报
回复
有一个香港和悦网络电话的源文件 ,有兴趣妨进入我的BLOG看看
pp616 2007-02-09
  • 打赏
  • 举报
回复
申请N个缓冲区。然后用个bitset维护缓冲区的状态。当收满一个图象时就显示。
wf2091139 2007-02-08
  • 打赏
  • 举报
回复
帮顶
wuxq 2006-12-12
  • 打赏
  • 举报
回复
Graphics::TBitmap *bitmap=new Graphics::TBitmap;
bitmap->PixelFormat = pf24bit;
bitmap->Width=768;
bitmap->Height=576;
for (int i = 0; i < 576; i++)
{
memmove(bitmap->ScanLine[i], buf, 768 * 3);
buf+=768*3;
}
Waiting4you 2006-12-12
  • 打赏
  • 举报
回复
TMemoryStream *pms是内存流,可以象读写文件一样,如果你的pBuf里是bmp的话
TMemoryStream *pms=new TMemoryStream;
pms->Write(pBuf,BufSize);
pms->Position=0;
bmptojpeg(pms);
...//现在pms里的数据是jpeg数据了.
niuroutang 2006-12-11
  • 打赏
  • 举报
回复
void bmptojpeg(TMemoryStream *pms)
{
TJPEGImage *j=new TJPEGImage;
Graphics::TBitmap *b=new Graphics::TBitmap;
b->LoadFromStream(pms);
j->Assign(b);
j->CompressionQuality=60; //等级太高有可能压缩出错!
j->Compress();
pms->Clear();
j->SaveToStream(pms);
pms->Position=0;
delete b;
delete j;

}
这是我从csdn上找的一段代码;但是我看不懂pms是干吗的,我调用视频采集卡的函数得到的是放在char* pBuf里边的bmp图,急啊,找不到相关的书,help看的似懂非懂!
请高手指点
Waiting4you 2006-12-11
  • 打赏
  • 举报
回复
用UDP传动态图像好象不是很合适,用TCP吧,它可以虚电路模式一次传完,速度也快

要把图象转成jpeg要看你的pBuf里放的是什么样的数据了,如果是BMP的话可以用TBitmap的LoadFromStream读入,然后用TJPEGImage转成JPEG格式再SaveToStream.


1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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