首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有项目经验的人进来指导一下。只要有一点就行了。该怎么解决

2012-05-09 
有项目经验的人进来指导一下。只要有一点就行了。先说一下我们的基本情况,我们都是大二的。只学了C和数据结构

有项目经验的人进来指导一下。只要有一点就行了。
先说一下我们的基本情况,我们都是大二的。只学了C和数据结构,无任何开发经验。
大家一致认为我是编程能力最强的(ps:我写的单个程序的代码从没超过一千行。最多的一次几百行),现在知道我们什么水平了吧。

然后我是技术队长,鸭梨好大。不知怎么下手了。

我们申请了一个国创项目,时间一年。提交的作品要在校园网内演示。

我们要做的东西,是一个C/S结构的东东。客户端采集视频,实时传输到服务器。
客户端可以是PC,智能手机等各种终端设备。摄像头一边录视频,压缩,加密-》服务器。

传到服务器后,以后还必须能让用户查看。

以后做好后还要加个B/S结构。(网页开发,概念都没有,鸭梨又大了)

大概就这么多。

估计就是视频的采集、压缩、传输麻烦点。。。因为带宽有限,必须有比较好的压缩算法。。。。。


现在我面临的问题是,不知道怎么组织我们三个没有基础的人做这件事。
我问他们写的单个程序的代码超过两百行没,他们想了一下说 学数据结构的时候有。。我晕数据结构的代码很多时类似的函数堆积在一个文件里,超过两百行也说明不了什么。。。

他们两写程序时,只用了IDE上3个按钮 :编译 运行 编译并运行
我多用了一个调试,也没搞懂怎么用。


我们要学哪些呢?

重要的是我要怎样组织我们三个菜鸟做这事。。。
我们要怎么沟通。。

说说你们接手一个项目后,你们成员之间是怎么沟通的呢?


还有一个问题。这个用C+windows sdk可以不?C++挺难的,我实在没信心在这一年内我们都学会C++并把它用到项目中去。

服务器端先不管了。

[解决办法]
呵呵,视频压缩有开源的代码。ffmpeg先下载来看看。如果想支持多平台,我觉得还是用java来写客户端的程序,服务器端可以用C/C++来写。
[解决办法]
用C或C++的话,gnu工具集很不错的,再加上个cvs版本控制
[解决办法]
很复杂==
我觉得LZ现在最主要的是确定下来技术清单,做好时间规划...

话说我还没听说过谁用C来写客户端...其实C++比C难么..
[解决办法]
一、技术要点:
说实话,这个项目的确不简单的,不要说你是学生,就是有多年经验的如果没有接触到类似的项目,也是需要费一番功夫。这个项目又以下几个技术要点:
1. 视频录制及编码压缩。这个可以使用ffmpeg这个库来处理,支持几乎所有流行的视频编码格式
2. 视频传输。这个可以使用rtp之类的协议来处理,也有开源的库,如jrtplib(用C++写的库,不是java库,别看它前面有个j)
3. 客户端支持,包括PC和智能手机。PC比较好说,你们仍然可以使用jrtplib接收视频,用ffmpeg解码;只能手机由于五花八门的操作系统,比如Windows phone, Android, iOS,BB...,这个工作量就相当大了,所以,建议你们在这个项目,只支持一种只能手机操作系统就OK了,比如最流行的Android,在Android上可以用ffmpeg的Java封装(xuggler,如果没有记错的话)进行解码,接收视频数据的话,可以自己用JNI封装一个java版本的jrtplib(现成的或许有,不过以前做类似的项目的时候,没有发现)
4. 网页支持。这个不是问题,只要你们完成了前面3项工作,这一步是小菜了。因为一般网络播放器都支持RTP之类的协议,所以这点根本用不着担心。
5. 系统架构建议:
客户端:视频采集终端,比如PC(数据产生客户端,如何实现见1,2)
视频接收终端,比如PC、智能手机等(数据消费客户端,如何实现见3)
服务器:视频的接收和转发。这个用jrtplib就可以实现了。

应该可以看到事情的确是不简单的,不知道你们team有多少人,一定要合理分配人马(分组),花3个月到6个月的时间攻下上面的1、2、3,有了这个基础,后面就是比较平坦的道路了,再花一些时间应该是可以完成任务的。

二、关于组员之间的沟通,你们现在做到下面三点就可以了:
1. 定时开会。比如周一晚上开会,沟通的内容包括但不限于:
系统需求分析、
技术路线的确定(比如开发语言、操作系统平台选择)和软件架构设计(模块划分...)、
开发环境建立、
各组的目标是什么,目前离目标的距离还有多远,有何障碍,如何克服...(任务分派和进度)
作为项目负责人,你必须非常清楚,这个项目的目标是啥,尤其是上面的前两项!
2. 事件驱动。在工作过程中,如果某组员碰到问题,可以邀请大家一起讨论解决,或给出解决方案。
3. 要学会庆祝。当有比较重大的突破的时候,大家要在一起庆祝一下,庆祝的方式不用教了吧:)。这是一种放松,同时也是凝聚团队很好的方式,让大家有荣誉感。

当然沟通方式还有很多,比如code review(peer review,就是组员之间相互看看别人的代码,这个估计你们会部分自动地会去做),比如建立软件配置系统(Software Configuration System)可以进行版本控制(可以用SVN),比如建立错误跟踪系统(可以用bugzilla之类的东东)...这些也部分地属于沟通的范畴。

总之,如果你们切实地做完了这个项目,一定会感到有很大的收获。

最后,哥祝你们顺利哈!
[解决办法]
11楼的讲解很好
这个项目确实复杂,工作量大,建议先尽量简化需求,别把目标定得太大,比如支持Android的特定版本和手机,先砍掉B/S的部分,专心分析C/S该怎么架构,确定下来用什么语言,平台,工具去开发
包括楼主一共是三个人吗?感觉人手有可能不够

[解决办法]

探讨

良师,益友,明灯啊!就是需要这样的指点。。

另外说一下我们团队只有3个人。

另外软件配置系统、错误跟踪系统 ,这些主流的软件是免费的吗?
引用:
一、技术要点:
说实话,这个项目的确不简单的,不要说你是学生,就是有多年经验的如果没有接触到类似的项目,也是需要费一番功夫。这个项目又以下几个技术要点:
1. 视频录制及编码压缩。这个可以使用ffmpeg这个库……

[解决办法]
如果写个演示程序,都是理想状态,学生还是能做出来的。lz加油

热点排行