Code Monkey home page Code Monkey logo

videocalling's Introduction

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. 个人或法人不得以任何方式诱导、暗示或强迫其全职或兼职员工或其独立承包人以口头或书面形式同意 直接或间接限制、削弱或放弃其所拥有的,受相关与劳动和就业有关的法律、法规、规则和标准保护的权利 或补救措施,无论该等书面或口头协议是否被该司法管辖区的法律所承认,该等个人或法人实体也不得以任 何方法限制其雇员或独立承包人向版权持有人或监督许可证合规情况的有关当局报告或投诉上述违反许可证 的行为的权利。

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

videocalling's People

Contributors

ggh1123 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

videocalling's Issues

YuvHardwareDecoder解码问题

我用安卓RK板使用了你的代码,发现int outputBufferIndex = vDeCodec.dequeueOutputBuffer(info, Contants.DEFAULT_TIMEOUT_US);这里一直返回-1,请问可能是什么原因呢?谢谢

求联系

博主,我想跟你联系一下,方便的话,请加QQ22619581,谢谢!

speex降噪问题

您好,我参考你的项目进行改进的时候,发现不能正确的引入speex包,显示 No implementation found for int com.proposeme.seven.phonecall.voip_util.Speex.getFrameSize(),我是直接将gyz.voipdemp_speex.util复制进项目,并且配置好了.so文件,但是还是报错,能问下您最开始是怎么引入speex包的吗?thanks

闪退

测试了三台设备,有两台设备点开就闪退,一台安卓7.0的,一台安卓9.0的,安卓4.4的设备不闪退

无音频数据

我现在用的是您提交的最新的代码,但是发现未触发任何音频回调,请问音频录制这一部分的入口代码是哪一块呢?

编译环境需求

搞了一周了,以前就没接触过安卓平台,这个我真的网上查了巨多的资料,用的android-studio编译,Android Gradle Plugin Version选择的3.2.0,Gradle Version选择的4.6,JDK选的1.8,构建是没问题了,ubuntu20.04的JAVA也改成java8了(原先是java11,无法使用gradlew build命令),gradlew还是会报错:
Download https://jcenter.bintray.com/com/google/errorprone/error_prone_annotations/2.0.18/error_prone_annotations-2.0.18.jar
Download https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-stdlib/1.2.0/kotlin-stdlib-1.2.0.jar
Download https://jcenter.bintray.com/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.jar

Task :app:lint FAILED
Ran lint on variant debug: 33 issues found
Ran lint on variant release: 33 issues found
Wrote HTML report to file:///home/wehuang/VideoCalling-master/app/build/reports/lint-results.html
Wrote XML report to file:///home/wehuang/VideoCalling-master/app/build/reports/lint-results.xml

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:lint'.

Lint found errors in the project; aborting build.

Fix the issues identified by lint, or add the following to your build script to proceed with errors:
...
android {
lintOptions {
abortOnError false
}
}
...

没有声音

您好,我想问问视频过程中没有声音是什么原因呢?

跨网段通信

如果在一个局域网下 但是不同网段应该如何通信?

请问这不需要服务端吗?

请问这不需要服务端吗?我直接运行demo跑起来后只能看到自己的摄像头,对方的无法接收到,确认ip正确。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.