❶ 直播系统开发需要哪些技术开发支持
摄像头采集;
1、音视频编解码;
2、流媒体协议;
3、音视频流推送到流媒体服务器;
4、流媒体网络分发;
5、用户播放器;
6、音视频同步;
7、网络延迟自适应;
8、需要录制,多种视频文件的格式和封装;
9、语言:C、C++、html、php、mysql......
10、开发环境:嵌入式,Linux,Windows,Web......
还有就是视频播放解决方案(卡顿、延迟):
1、CDN 加速;
2、自己架服务器;
3、用别人的云服务。
用 CDN 加速,可以尽量减少延迟。目前业内水准来看,视频延迟都在 3-6 秒之间。也就是在视频直播时,你看到的是几秒以前的画面。
自己架服务器,如果部署的数据中心不够多,那么遇上跨网、跨省的传输,还是得用 CDN 加速。那么为了尽可能降低延迟,你就需要在全国各省市都部署数据中心,来解决跨网、跨省的传输。用云服务的话,就是别人把服务器给你架好了,你只要傻瓜式的用就行了。当然,不管用哪种方式,综合权衡利弊,找到适合的方案就是最好的方案。
开发视频直播的流程有哪些:
1、采集;
2、前期处理;
3、编码;
4、传输;
5、解码;
6、渲染。
采集:iOS 是比较简单的,Android 则要做些机型适配工作。PC 最麻烦各种奇葩摄像头驱动,出了问题特别不好处理,建议放弃 PC 只支持手机主播,目前几个新进的直播平台都是这样的。
前期处理:现在直播美颜已经是标配了,80%的主播没有美颜根本没法看。美颜算法需要懂图像处理算法的人,没有好的开源实现,要自己参考论文去研究。算法设计好了还要优化,无论你打算用 CPU 还是 GPU 优化,算法优化本身也需要专业知识支持。GPU 虽然性能好,但是也是有功耗的。GPU 占用太高会导致手机发烫,而手机发烫会导致摄像头采集掉帧。而这一切都是需要经验支撑。
编码:如果你要上 720p,肯定要采用硬编码。软编码 720p 完全没希望,硬件编码不灵活。兼容性也有问题。如何适应纷繁复杂的网络和纷繁复杂的上下行设备?安卓和芯片的坑,开发过的人都知道。那有人问,要求不高,上软编码低分辨率 360p 行不行?就算上低分辨率,软编码还是会让 CPU 发烫,CPU 过热烫到摄像头,长期发烫不仅直接反应是费电。既然是手机直播,插着电源和充电器实在说不过去吧。还有,CPU 发烫会降频,怎么办?这还是只说性能方面。和前处理只影响图像质量和功耗不同,视频编解码技术还关联成本计算和网络对抗。考虑性能、功耗、成本、网络这四个之后你编码的码率、帧率、分辨率。软硬件开发该如何选择?
传输:自己做不现实,交给第三方服务商吧。
解码:如果你用硬解码,一定要做容错处理,一定要做适配。突然一个crash导致手机重启不好吧。安卓的硬解码,不说了。如果你加了网络目前手机的硬解码还不一定支撑用软解码,功耗发热的问题又来了。
渲染:为什么手机明明解码出好多帧数据。就是渲染不出来。为什么画面就是不同步。
以上是媒体模块,还有信令控制,登录、鉴权、权限管理、状态管理等等,各种应用服务,消息推送,聊天,礼物系统,支付系统,运营支持系统,统计系统等。后台还有数据库,缓存,分布式文件存储,消息队列,运维系统等。
以上技术要点的小结,确实能说明开发一个能用于生产环境的实时视频直播平台确非易事,跟IM里传统的实时音视频一样,这样的技术都是音视频编解码+网络传输技术的综合应用体。
❷ 程序员有哪些交流社区或者论坛
Github - How people build software · GitHub
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。
作为开源代码库以及版本控制系统,Github拥有140多万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。
StackOverFlowStack - Stack Overflow
Stack Overflow是一个与程序相关的IT技术问答网站。用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的HTML。在问题页面,我们不会弹出任何广告,销售信息,javaScript 窗口等。
CSDN - CSDN.NET - 全球最大中文IT社区,为IT专业技术人员提供最全面的信息传播和服务平台
CSDN (Chinese Software Developer Network) 创立于1999年,是中国最大的IT社区和服务平台,为中国的软件开发者和IT从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。拥有超过3000万注册会员(其中活跃会员800万)、50万注册企业及合作伙伴。
ITEye - ITeye Java编程 Spring框架 Ajax技术 agile敏捷软件开发 ruby on rails实践
ITeye即创办于2003年9月的javaEye,缘起是创始人范凯自己在学习和研究java的开源框架却发现没有一个讨论的地方,于是自己就办一个。2003年12月范凯开始采取比较严格的管理制度。新用户注册时需要强制做题。做13道有关论坛规则的选择题,做不对就不予审核通过。 2010年9月,javaEye被CSDN低调并购,成为其旗下程序员深度交流社区。后由于Oracle公司不准其网站使用JAVA字样,并提出了苛刻条件,JavaEye网站在交涉无效后,不得不做出更名的决定,于2011年4月1日起,正式更名为ItEye技术网站。现在已来被CSDN收购。
开源中国 - 开源中国 - 找到您想要的开源项目,分享和交流
开源中国社区成立于2008年8月,其目的是为中国的IT技术人员提供一个全面的、快捷更新的用来检索开源软件以及交流使用开源经验的平台,目前开源中国社区已收录超过两万多款开源软件。 经过不断的改进,目前开源中国社区已经形成了由开源软件库、代码分享、资讯、讨论区和博客等几大频道内容。
极乐 - http://www.dreawer.com
极乐网推崇快速、准确的为IT人员解决技术难题,是一个后起之秀的新兴网站,各方面设计的简洁易用,清新脱俗,是一个值得关注的网站。
V2EX - V2EX
V2EX 是创意工作者们的社区。这里目前汇聚了超过 80000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。
Ruby China - Ruby China
RubyChina社区的客户端,具备基本的阅读、发帖、回帖、查看会员基本资料功能。
北风网 - 首页 - 北风社区
北风网是国内知名的IT教育培训网站,网站致力于中国IT教育。为在校大学生、应届毕业生、社会就业者提供各类IT培训!旗下拥有北风网论坛、北风网博客专栏、北风网IT圈子等产品。
博客园 - 博客园 - 开发者的网上家园
博客园创建于2004年1月,博客园诞生于江苏扬州这样一个IT非常落后的小城市,城市虽小,但是这里却有很多求知创新的人,博客园诞生的理由是如此简单。
51CTO - 51CTO.COM - 技术成就梦想
51CTO即北京无忧创想信息技术有限公司,简称“51CTO”,是专注于IT技术创新与发展的互联网媒体机构,由一批资深互联网专业人士创立于2005年。自建立之日起,51CTO就以“专注IT技术领域,打造中国领先的IT技术网络平台”为宗旨,致力于面向中国广大IT专业人群,实现高效传播交流,持续提升技术及管理水准,促进中国信息化建设及应用健康快速发展。
MSDN - 使用 Microsoft Developer Network 学习开发
MSDN 是Microsoft Developer Network的缩写,他是微软的一个期刊产品,专门介绍各种编程技巧。同时它也是独立于Microsoft Visual Studio制作的唯一帮助。目前大部分文章存放在MSDN的网站上,任何人可以免费参阅。
ChinaUnix - Unix技术网 = 全球最大的Linux/Unix应用与开发者社区 = IT人的网上家园
http://ChinaUnix.net是一个以讨论Linux/Unix类操作系统技术、软件开发技术、数据库技术和网络应用技术等为主的开源技术社区网站。CU给爱好Linux/Unix技术、开源技术者提供一个自由、开放、免费的交流空间,目标是建成中国最好的一个Linux/Unix技术开源共享社区,宣传和推动Linux/Unix技术和自由软件。
PHPChina - PHP China-最棒的PHP中文社区
PHPChina是一个以PHP为中心,面向软件开发者、程序爱好者的开源技术网站及交流社区。作为PHP语言开发公司Zend Technology在大中华区的唯一授权官方网站,PHPChina同时也是Zend中国技术支持中心的官方社区,更是中国每个PHPer自己的开源社区。
w3cschool - w3school 在线教程
全球最大的WEB技术资源,W3CSchool 是因特网上最大的 WEB 开发者资源,其中包括全面的教程、完善的参考手册以及庞大的代码库。
http://CNodejs.org - CNode:Node.js专业中文社区
http://CNodeJS.ORG为国内最专业的Node.JS开源技术社区,致力于Node.JS的技术研究。
CNode社区由一批热爱Node技术的工程师发起,目前已经吸引了互联网各个公司的专业技术人员加入,我们非常欢迎更多对Node感兴趣的朋友加入我们(发邮件到[email protected])。
ITPUB - ITPUB技术论坛
ITPUB网站是目前国内最大的以技术交流为主的的论坛网站之一。
专门立足讨论数据库、ERP、技术开发、操作系统、网络等方面的技术问题。
CocoaChina - CocoaChina_让移动开发更简单
Cocoachina社区 - 苹果开发中文站,最热门的iPhone/iPad开发社区。 Cocoachina客户端 - 专为手机用户量身打造的浏览Cocoachina的第三方浏览工具,独创的网络媒体阅读引擎,专为手机用户设计,访问论坛更流畅、更舒适、更省流量。结合源社区定制设计,提供简洁的内容排版和离线下载,保留源社区的原汁原味。
PHPHub - PHPHub - PHP & Laravel的中文社区
PHPHub 是 PHP 和 Laravel 的中文社区,致力于推动 Laravel,php-fig 等 PHP 新技术,新理念在中国的发展,是国内最靠谱的 PHP 论坛。
w3ctech - 最受欢迎的文章
W3cplus 火舞游戏 ionichina 社区 Linux Story imweb 腾讯设计导航 设计自动标注工具 w3ctech创立于2009年10月,是中国最大的前端技术社区。
php100 - PHP100中文网
PHP100中文网是国内第一家以PHP资源分享为主的专业网站,也提供了PHP中文交流社区。面向PHP学习研究者提供:最新PHP资讯、原创内容、开源代码和PHP视频教程等相关内容。
code4app - Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com
Code4App是一个移动平台的代码库,是iOS开发好帮手。Code4App为移动开发程序员提供大量的开源代码,iOS代码实例搜索,iOS特效示例,iOS代码例子下载。
InfoQ - InfoQ - 促进软件开发领域知识与创新的传播
InfoQ成立于2006年。我们为了促进软件开发领域知识与创新的传播而创建了InfoQ。为了实现这个目标,InfoQ致力于提供中立的、由技术实践者主导的会议、内容与在线社区。
CodeProject - CodeProject - For those who code
是一个免费公开源码的程序设计网站,成立于1999年,是目前世界上最大的开发社区之一,每月有超过340万开发者访问该网站,主要的使用者是Windows平台上的电脑程式设计人员,包括涉及的专业开发人员,开发经理和架构师。每一篇文章几乎都附有源码(src)和例子(demo)下载,用户注册后,可以下载文章附属的源代码。
❸ 开办一个网站都需要哪些程序
一、域名
要想让人家访问自己的网站,域名是必不可少的。域名要尽可能的短、尽可能的方便记忆,当然现在好记的、有特征的域名已经不多了,这需要你自己进行考虑,只要觉得有一定的规律或便于用户记忆即可。域名的选择最好是com后缀的,其次是cn后缀的,再次是net后缀的。
二、网站程序
网站程序当然是选择现成的,因为个人没有必要去从头开始编制一个网站程序,也没有那个实力。现在网上有现成的网站管理系统,购买虚拟主机赠送的自助建站系统就是一款非常适合个人企业建站的工具。当然,这类系统还有很多,可以在自己综合试用的基本上进行选择。如果需要网店,或者论坛,博客什么的话,也可以直接选用他们的网店主机,论坛主机,博客主机,他们会帮你把程序安装好的!网站的和序可选大型网站选动易系统,中型网站选DEDE系统,小型网站选老Y系统 。
三、空间
要建网站,其次必须要有一个空间,即存放网站的地方。对于个人用户,建议购买虚拟主机。在购买虚拟主机时要看其服务、速度、响应时间等。一般选择有一定名气的服务商即可。 如果想建一个长久的网站,千万不要贪小便宜购买没有实力的空间商的主机,三天两头断网就烦人了。空间的选择就不介绍了,以免广告之嫌。
四、网站设计
选择好了网站程序后,则需要根据自己的需要进行网站设计。一般来说,如果有专业的美工和程序员进行修改自然最好。不过个人站长可能不一定具备这种条件。这时不防根据自己选用的程序来进行定制或选择增值服务。例如动易就提供网站定制服务,不过动易对网站空间的要求比较多,需要进行组件注册,有很多服务商并不提供该项服务;其次网奇Dvnews建站系统等在提供源码的同时,还提供增值服务,例如满足用户的需求设计个性模板,定制模板同时赠送LOGO、Banner等设计。
五、更新
更新是一件比较麻烦的事,在具体的实施过程中可以注意以下几点:
以质取胜:即靠内容的质量取胜;
以新取胜:即以一定的原创内容取胜;
以时取胜:即尽量追究时效,对内容尽早的发布;
综合言之,如果能做到人无我有,人有我新那么就可以了。
六、推广
有了好的内容是不必过于担心网站访问量的。毕竟口碑的力量还是很大的。当然这并不是说我们就不需要推广,像登录搜索引擎、相互宣传、相互链接等都是行之有效的方法,各位站长可以在摸索的过程中不断前进。