/VideoCalling

局域网p2p视频聊天

Primary LanguageJavaOtherNOASSERTION

VideoCalling

p2p局域网音视频通话的demo,只需要对方的ip,端口和绑定本地端口,即可实现直连的视频聊天,喜欢的朋友请留个star,作者要求不多,谢谢大家!

更新日志

2017-12-13日项目成立

主要借鉴于开源项目 https://github.com/liuqm/Android-VideoChat-master 学习的相关知识,非常感谢大神的贡献,所以本人从开源社区学习,也回馈开源社区

2018-1-31

发布初版,主要使用java nio传输视频数据,加入音频

2018-11-15

使用了netty传输音视频数据,使用了speex降噪,使用了x264软编,mediacodec硬遍,ffmpeg软解,mediacodec硬解码的来处理yuv数据,之间传输的数据类型是h264

2019-08-26

优化代码结构,添加opengl的代码,里面编解码请在代码层次自己选择使用

  • FFmpegDecoder 是ffmpeg软解

  • HardwareDecoder是 硬解(直接绑定serfaceview渲染)

  • YUVHardwareDecoder是 硬解出yuv数据交给其他第三方渲染

  • X264Encoder x264软编

  • HardwareEncoder 硬编码

感谢

感谢52im即时通讯网给的那么多的学习资料,还感谢很多社区大神的源代码给的灵感,本项目本质上是个搬砖项目,集合了很多代码的小模块加以整改,目的是为了学习,想学习相关 的同学可以自由下载,商业的使用也无任何版权的问题!希望大家多多支持,有问题也帮我找找bug!欢迎提出问题!麻烦大家给个star

后续发展

项目未来的方向是解决以下几个问题:第一,视频传输丢包的问题,第二,服务器打洞部署到外网上,第三,h265的编解码研究,第四,消回音的处理!,目前作者正在学习当中,也希望大家有 相关的资料或者方向能指点一下,感激不尽,最后祝各位程序员家庭和睦,幸福美满!

作者的话

这个项目的开源目的主要是帮助有关局域网视频聊天的程序员完成工作上的需求,少走弯路,我知道**很多物联网小公司都会有这样的需求,如果你们成本低,基本上都是去找一些开源的库来使用 ,这个项目我想能在一定程度上帮到你,这个项目对于android开发人员来说挑战很大,首先你要熟悉网络编程的知识,扎实的java基本功和android基本功。我并不希望来这里下载查看的同行只是 拿来跑跑,完成需求,这个代码是我将近1年多的心血,我也希望你们能够从这个项目中学到什么,请不要被上头的任务压的喘不过气,本来开发这个东西的时间就很长,希望你能有所得,要不然永远是个 搬砖工,这不是我希望开到的。还有本协议是反996的,请慎重考虑商用!如果你觉得本项目对你有所帮助,请给个star,当然愿意打赏本项目的,本人也由衷感谢!

开源协议

版权所有(c)<年份><版权持有人>

反996许可证版本1.0

在符合下列条件的情况下,特此免费向任何得到本授权作品的副本(包括源代码、文件和/或相关内容,以 下统称为“授权作品”)的个人和法人实体授权:被授权个人或法人实体有权以任何目的处置授权作品,包括 但不限于使用、复制,修改,衍生利用、散布,发布和再许可:

  1. 个人或法人实体必须在许可作品的每个再散布或衍生副本上包含以上版权声明和本许可证,不得自行修 改。
  2. 个人或法人实体必须严格遵守与个人实际所在地或个人出生地或归化地、或法人实体注册地或经营地( 以较严格者为准)的司法管辖区所有适用的与劳动和就业相关法律、法规、规则和标准。如果该司法管辖区 没有此类法律、法规、规章和标准或其法律、法规、规章和标准不可执行,则个人或法人实体必须遵守国际 劳工标准的核心公约。
  3. 个人或法人不得以任何方式诱导、暗示或强迫其全职或兼职员工或其独立承包人以口头或书面形式同意 直接或间接限制、削弱或放弃其所拥有的,受相关与劳动和就业有关的法律、法规、规则和标准保护的权利 或补救措施,无论该等书面或口头协议是否被该司法管辖区的法律所承认,该等个人或法人实体也不得以任 何方法限制其雇员或独立承包人向版权持有人或监督许可证合规情况的有关当局报告或投诉上述违反许可证 的行为的权利。

该授权作品是"按原样"提供,不做任何明示或暗示的保证,包括但不限于对适销性、特定用途适用性和非侵 权性的保证。在任何情况下,无论是在合同诉讼、侵权诉讼或其他诉讼中,版权持有人均不承担因本软件或 本软件的使用或其他交易而产生、引起或与之相关的任何索赔、损害或其他责任。