如果要开发一个聊天室(带视频的),你会怎么实现

云满笔记 2014-01-30 11:43:04
RT,主要是视频聊天那一块,不知道怎么实现。网上有好多是基于DirectShow的,但是好像这个技术被淘汰了,连streams.h文件都找不到了:

fatal error C1083: Cannot open include file: 'streams.h': No such file or directory

我还找了另外一个,不过好像是一个SDK,需要付钱的。我想问一下:路过的大牛们会怎么去实现这个视频的功能??
...全文
857 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuke537 2014-03-12
  • 打赏
  • 举报
回复
在windows 平台上directshow技术依然是最强大的,虽然从vista开始microsoft 推出media foundation,但是media foundation依然还达不到directshow是高度。 directshow 老版本在DxSDK中,后面独立出来,再后来directshow被放到windows SDK,所以开发directshow应用,你必须安装这两个SDK中的一个(两个都是免费的)。streams.h是放在“\DXSDK\Samples\C++\DirectShow\BaseClasses”目录下,你的工程需要包含此头文件目录。 对于视频功能的实现你可以参照directshow sample code---amcap的实现,与BaseClasses在同一目录。 首先是枚举PC上的视频设备,然后将视频设备绑定source filter,接下来选择合适的filter构建 filter graph。这样你就实现视频功能了。
匹夫 2014-02-12
  • 打赏
  • 举报
回复
我的理解,流水线: 视频采集 - 视频编码压缩 - 网络传输 - 视频解码 - 显示 1.视频采集: win下用vfw的api可以采集到usb摄像头的原始数据(RGB或者YUV的),如果是特别的摄像头,肯定会自带sdk,同样能得到这种数据。 2.视频编码压缩:视频一般都压缩一下,不然太大了,网络部好传。现在多用H.264,可以找开源库x264完成视频编码。如果摄像头能直接出来这种数据那这步就省了。视频编码一般要I420的数据,可以用ffmpeg里的swscale转换一下颜色空间,它还可以拉伸图像,改变分辨率,效率不错 3.网络传输:这部分无非实现tcp、udp传输的功能,把视频数据能发出去及可收回来。如果想做的通用一些,可以用视频会议常用的一个协议SIP,找一个开源库,如resiprocate(庞大的工程) 4.视频解码:数据收到后需要解码才能显示,H.264解码多用ffmpeg 5.显示:win api可以用BitBlt或者DrawDibDraw实现,需要BGR的数据,可能要用ffmpeg的swscale转换一下颜色空间。也可以考虑用D3D(以前用DDraw)实现,一般可以直接显示I420或者YV12的数据,想跨平台可以考虑用opengl
纹枰老妖 2014-02-11
  • 打赏
  • 举报
回复
小白到此一游,想买书看了,请大侠推荐,适合入门者的。
xiaohuh421 2014-02-08
  • 打赏
  • 举报
回复
不管是不是过时的技术, DShow还是OpenCV, 你都可以去实现一遍, 然后再研究其它方法. 这个过程就是先是学, 然后是用, 再是创新. 软件开发都是一个叠代过程, 一步到位, 达到最优是不太现实的.
云满笔记 2014-02-07
  • 打赏
  • 举报
回复
还有其它的方法吗 这个贴决定元宵的时候结 大家多多支持啊
VisionCat 2014-02-07
  • 打赏
  • 举报
回复
嗯,我也觉得用openvc会比较方便,而且,如果写得好,还能跨平台移植。
ForestDB 2014-02-04
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/library/windows/apps/hh452791.aspx 这是随便搜索的,当然可以搜C的API。
卢超群 2014-02-03
  • 打赏
  • 举报
回复
楼主去看看【C语言也能干大事】系列课程第11讲左右吧开始讲这个。
shiter 2014-02-02
  • 打赏
  • 举报
回复
opencv把摄像头每一针图片把下来,重新压缩,发过去,差不多就这样
YTerrenceLau 2014-01-30
  • 打赏
  • 举报
回复
directshow吧,需要单独安装相应的开发包,好像现在是在sdk里面吧,之前的一些版本是在directx开发包里面。
云满笔记 2014-01-30
  • 打赏
  • 举报
回复
大过年的,逛论坛的人少了,大家多多支持啊

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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