hur.cn - 华软网

 热门搜索

[Help]如何播放MJPEG网络视频流

  作者:未知    来源:网络    更新时间:2010/12/7
C++">想实现的功能:接收并播放IP摄相机传回的MJPEG网络视频流;
运用VLC软件输入:IP地址:端口/videostream.asf?resolution=8&rate=15,
(Snifffer抓包前往 401未认证)
然后跳出一个对话框,输入用户名admin,密码为空,就能够播放视频
(Snifffer抓包前往 200 OK, 起头接收视频数据包)

用下面的代码,执行到 pIPicture->get_Width(&hmWidth);
出现异常,是否需要模拟发数据包,让服务器起头传视频数据包呢?
现在服务器还没起头传视频数据包。。。

char url[1000] = "IP地址:端口/videostream.asf?resolution=8&rate=15";  
能否加用户名和密码参数呢?

#define  datasize 1024*50

void CIPVideoDlg::OnButton4() 
{
char url[1000] = "IP地址:端口/videostream.asf?resolution=8&rate=15";    
unsigned char *buffer=new BYTE[datasize];    
DWORD bytes_read;
HINTERNET internet= InternetOpen("HTTP Downloader",INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL, NULL);
    
if( !internet )
  return ;
    
HINTERNET file_handle = InternetOpenUrl(internet, url, NULL, 0, INTERNET_FLAG_RELOAD, 0);
if( !file_handle)        
 return ;

HGLOBAL hGlobal=GlobalAlloc(GMEM_MOVEABLE,datasize);
//void *pImageMemory=GlobalLock(buffer);
void *pImageMemory;
IStream  *pIStream;   //创建一个IStream接口指针,用来保存图片流
IPicture *pIPicture;  //创建一个IPicture接口指针,表示图片对象
if(hGlobal!=NULL)
{
 if((pImageMemory=GlobalLock(hGlobal))!=NULL)
 {
  GlobalUnlock(hGlobal);
  //用全局内存初使化IStream接口指针
  CreateStreamOnHGlobal(pImageMemory, false, &pIStream); 
 }
}

BOOL b = InternetReadFile(file_handle,pImageMemory,datasize,&bytes_read);
GlobalUnlock(pImageMemory); //解锁内存
if(!b)
 return;
    
CDC* pDC = GetDlgItem(IDC_ShowImg) ->GetDC();
HDC hDC = pDC ->GetSafeHdc();
CRect rect;
GetDlgItem(IDC_ShowImg) ->GetClientRect( &rect );
OleLoadPicture(pIStream, 0, FALSE, IID_IPicture, (LPVOID*)&(pIPicture));
//用OleLoadPicture获得IPicture接
    
long hmWidth;
long hmHeight;
    
//执行到这里出现异常。。。。
pIPicture->get_Width(&hmWidth); //用接口方法获得图片的宽和高
pIPicture->get_Height(&hmHeight);
pIPicture->Render(hDC,0,0,640,480,0,hmHeight,hmWidth,-hmHeight,NULL); 
    
//HANDLE  hFile =CreateFile(_T(file_handle),   GENERIC_READ,   0,   NULL,   OPEN_EXISTING,   0,   NULL);   
// buffer[bytes_read]=0;
// delete []buffer;
    
GlobalFree(pImageMemory); //释放全局内存
pIStream->Release(); //释放pIStream
pIPicture->Release(); //释放pIPicture
InternetCloseHandle(internet);
}

---华软 网友回答---
如何将MJPEG格式的视频流保存为avi视频资料
http://topic.csdn.net/u/20101014/09/476783d9-084b-4c40-8a4c-2af72f59fe9e.html
---华软网友回复---
不会``````














QQ餐厅攻略 偶要淘宝 诛仙私服 在线购物
易游在线 嘻哈问答网 主线问答网
---华软网友回复---
引用 1 楼 cfans_135136 的回复:
如何将MJPEG格式的视频流保存为avi视频资料
http://topic.csdn.net/u/20101014/09/476783d9-084b-4c40-8a4c-2af72f59fe9e.html


帮顶...      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。