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

c_fans_2010 2010-12-07 06:29:35
想实现的功能:接收并播放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);
}
...全文
383 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
aa_22_999 2010-12-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cfans_135136 的回复:]
如何将MJPEG格式的视频流保存为avi视频文件
http://topic.csdn.net/u/20101014/09/476783d9-084b-4c40-8a4c-2af72f59fe9e.html
[/Quote]

帮顶...
cfans_135136 2010-12-07
  • 打赏
  • 举报
回复
如何将MJPEG格式的视频流保存为avi视频文件
http://topic.csdn.net/u/20101014/09/476783d9-084b-4c40-8a4c-2af72f59fe9e.html

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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