GithubHelp home page GithubHelp logo

anyrtcio-community / anyrtc-rtmp-opensource Goto Github PK

View Code? Open in Web Editor NEW
4.7K 255.0 1.6K 168.39 MB

RTMP 推流器,RTMP(HLS)秒开播放器,直播点播,跨平台(Win,IOS,Android)开源代码

Home Page: https://www.anyrtc.io

License: GNU General Public License v3.0

C 11.41% C++ 77.89% Objective-C 2.65% Objective-C++ 0.62% CMake 0.04% Assembly 0.10% MATLAB 0.01% Shell 0.02% Java 6.64% Kotlin 0.14% Swift 0.49%
android ios windows rtmp webrtc low-latency hls ffmpeg

anyrtc-rtmp-opensource's Introduction

anyLive

anyLive 是 anyRTC 开源的推拉流项目。采用跨平台架构设计(采用WebRTC(93)版本为基础框架),一套代码支持Android、iOS、Windows、Mac、Ubuntu等平台。

功能特性

类型 功能说明
风格 统一C++核心库代码风格采用:Google code style
框架 WebRTC-93
协议 rtmp、http/https、rtsp、hls、m3u8、mkv、mp3、mp4等
布局自定义 SDK 和 UI 分离,可以自定义添加视频UI层
滤镜 支持基于GPUImage美颜滤镜,可自定义滤镜
帧图 视频第一帧、视频帧截图功能
播放 单例播放、多个同时播放、视频列表滑动自动播放、列表切换详情页面无缝播放
自采集/自渲染 可自定义音视频采集层和渲染层,方便接入第三方美颜、美声等
推流 不限制用户的推流、拉流地址
图片推流 支持特殊场景下关闭摄像头,图片进行推流
屏幕共享 支持屏幕共享
SEI 支持自定义信息的发送与接收
音量检测 支持音量大小检测提示
镜像 支持本地预览镜像以及编码镜像
编解码器 H264/H265/Opus/AAC/G.711

平台兼容

系统 编译环境 CPU架构
Android 4.4及以上 Android Studio、NDK armeabi-v7a、arm64-v8a
iOS 9.0及以上 Xcode14 arm64
Windows 7及以上 VS2015,VS2017 x86、x86-64

第三方库

  • libfaac 1.28
  • libfaad2 2.7
  • ffmpeg 4.3
  • libsrtp
  • libvpx
  • pffft
  • rapidjson
  • usrsctplib
  • libyuv newest
  • openh264 1.6.0

配套规划

  • 支持 P2P-CDN 播放,为用户节省开支
  • 加入连麦功能
  • 美颜美型贴纸库
  • 低延迟直播推拉流

技术支持

anyRTC官方网址:https://www.anyrtc.io QQ技术交流群:554714720(已满) 2群:698167259 联系电话:021-65650071-816 Email:[email protected]

技术问题:开发者论坛

加微信入技术群交流:

版权声明

若本开源项目涉及到其他软件的版权,请及时联系作者进行修正。

捐赠

本项目不接受任何形式的捐赠,您的支持就是最大的动力。

License

anyLive is available under the GNU license. See the LICENSE file for more info.

mailto:[email protected])

anyrtc-rtmp-opensource's People

Contributors

boyuanzjq avatar dynceric avatar dynckevin avatar dyncming avatar gezhaoyou avatar jhdync avatar liutao6982 avatar lxzbug avatar mtdxc avatar zzuzjq 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  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

anyrtc-rtmp-opensource's Issues

请不要抄袭文档

请不要打着开源的旗子搞拿来主义,连文档都抄袭。
抄就不说了,抄了还乱改。“集优化H.264软/硬件编码器”这句什么意思?本人原文里写的是“NEON指令集优化H.264软件编码器”,你们这句“集优化”是什么意思?“NEON指令集”是一个整词,不要贻笑大方,这么多人看着呢。

推流帧率码率过低

您好,请问我在使用AnyRTC进行推流的过程中,虽然设置了码率1024k和帧率30,但是从实际播放端接收到的效果看,实际码率在200k左右,帧率在8帧左右,请问这是什么原因导致的呢??

学习直播

想学习Android端直播编码,可以用这个项目来展开么,求教!

How to block video data when start streaming ?

Greetings. Thanks for providing this great library.

I am going to use this library for my video conference app.

RTMPHosterKit provide following apis.
-setAudioEnable ()
-setVideoEnable()

setAudioEnable() works great but setVideoEnable() is not working.

Seems it is not implemented yet.

I would appreciate if you let me know how to block video data when streaming or use setVideoEnable() api if it is already implemented.

Thanks
gstream

生成arm64-v8a/libanyrtmp-jni.so时出错,环境在r10e和最新的都不可以。但是armeabi和v7a的都可以

WARNING:C:/Users/etenel/Desktop/anyRTC-RTMP-OpenSource-master/Prj-Android/jni/toolchain/../Android.mk:anyrtmp-jni: non-system libraries in linker flags: -lavformat -lavcodec -lavutil
Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK: current module
D:/AndroidStudio/SDK/ndk-bundle/build//../toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.exe: cannot find -lavformat
D:/AndroidStudio/SDK/ndk-bundle/build//../toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.exe: cannot find -lavcodec
D:/AndroidStudio/SDK/ndk-bundle/build//../toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld.exe: cannot find -lavutil
collect2.exe: error: ld returned 1 exit status
make: *** [C:/Users/etenel/Desktop/anyRTC-RTMP-OpenSource-master/Prj-Android/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/libanyrtmp-jni.so] Error 1
还有日志显示webrtc依赖有问题
Android NDK: Aborting (set APP_ALLOW_MISSING_DEPS=true to allow missing dependencies) . Stop.

android端美颜

请问下android端开播现在是否支持美颜滤镜?貌似只看到ios的有集成gpuimage?

iOS 推流的时候 链接rtmp服务失败

问下是不是有特殊的需求??
rtmp 地址我用其他的直播 SDK 测试是 OK的

还是这个和其他的 直播SDK, 在对 rtmp URL 上有不同的要求
log如下

2016-10-13 17:07:16.502107 AnyRtmp[9381:1595552] OnRtmpStreamReconnecting:1
2016-10-13 17:07:16.508846 AnyRtmp[9381:1595552] OnRtmpStreamReconnecting:2
2016-10-13 17:07:16.514094 AnyRtmp[9381:1595552] OnRtmpStreamReconnecting:3
2016-10-13 17:07:16.517658 AnyRtmp[9381:1595552] OnRtmpStreamFailed:1

希望能够得到回复, 谢谢

安卓奔跑不起来,不知道是哪里配置的有问题

报这个错
AnyRTC-RTMP\webrtc\base\atomicops.h
Error:(63, 31) error: '__ATOMIC_ACQUIRE' was not declared in this scope
Error:(63, 47) error: '__atomic_load_n' was not declared in this scope
Error:(66, 32) error: '__ATOMIC_RELEASE' was not declared in this scope
Error:(66, 48) error: '__atomic_store_n' was not declared in this scope
Error:(74, 33) error: '__ATOMIC_ACQUIRE' was not declared in this scope

HEVC 或 vp9

粗看了一下,HEVC/ VP9好像都不支持?

Video Packet Delay

Helo

I try using nginx-RTMP, Amazing, low latency is OK, but i have problem:

Video packet delay for first time, audio and video not syncronize

TIA

srs_rtmp_is_onMetaData返回no flv

我在用某app的rtmp做拉流测试的时候 碰到
else if (type == SRS_RTMP_TYPE_SCRIPT) {
if (!srs_rtmp_is_onMetaData(type, data, size)) {
LOG(LS_ERROR) << "No flv";
srs_human_trace("drop message type=%#x, size=%dB", type, size);
}
}
srs_rtmp_is_onMetaData 返回否,请问如何解决 谢谢!

CPU问题

发现iOS运行时 cpu基本占满100% 如何解决?

iOS 端视频帧数据获取方式疑问?

目前代码VideoCapture.mm:processVideo方法中,直接从[imageFramebuffer byteBuffer]中获取出来使用,这是不是不够完备?没有显示调用glFinish 会导致 cvpixbuffer 获取的是黑屏数据,而如果显示调用glFInish是耗时的。

ios demo上流后颜色失真问题求助

在gpuimage处理完之后的回调函数processVideo中,在调用libyuv::ARGBToI420之前,我把图像数据都设置为0,或者255.
memset([imageFramebuffer byteBuffer],0,width*height*4);
memset([imageFramebuffer byteBuffer],255,width*height*4);

当设为0的情况下,上流出来的颜色是 0x101010
当设为255的情况下,上流出来的颜色是0xeeeeee
这是为什么呢,怎么才能不失真.

Setting Buffer Player

Helo

How i can setting buffer player, i want set buffer to 100, but no properties to set this...

Android - Support arm64, x86 devices.

Thanks for provide this great library.

I'd like to use your library to build video conference app for my local company.

I've tried to build your library and tested. It works perfect but didn't work on arm64, x86 android devices.

I've checked the static library which were used on this library such as ffmpeg, but seems it doesn't build for arm64, x86.

I would appreciate if you let me know how can I use this library for arm64, x86 devices.
Also let me know about license of this library.

Hope to hearing from you soon.
Regards,
gstream

Error : ignore duplicated sps, code=3044

不停的报这个错误!!!
E/SRS: [2017-12-13 02:49:29.40] E/SRS: ignore duplicated sps, code=3044 E/SRS: [2017-12-13 02:49:29.41] E/SRS: ignore duplicated pps, code=3045

How to set GOP parameters

I noticed in Android version (6, XIaomi Node), the RTMP stream has a GOP duration of 20 seconds, which cause long latency if enable GOP cache. Otherwise, there's long waiting time for the keyframe when starting play if we turn off GOP cache.

I can't find an API to set KEY_FRAME_INTERVAL parameter anywhere. Please advice.

Thanks

Android 6.0推送全是I 帧 或者全是P帧 急急急

AnyRTC团队,我在测试Android端推送的时候使用MediaCodec硬件编码,遇到在三星S6、nexus5(都是Android6.0)上一直只输出 I 帧,没有P帧,在三星note3、荣耀1、红米note1(Android5.0及以下版本)上是正常的,将nexus5从Android6.0降到5.0也正常了。
调试时发现只要执行过b.putInt(MediaCodec.PARAMETER_KEY_REQUEST_SYNC_FRAME, 0); 如上两个6.0的机型就再也不输出P帧了,全部都是关键帧。5.0/4.4的机型执行一次输出一个I 帧,不执行就输出P帧,很正常。
本人没找到解决方案,望各位专业大牛帮解决,我的联系QQ:420306380
谢谢。

推流分辨率的问题

推流端在分辨率变成一半 比如640480 变成 320240 是什么问题,目前只知道屏幕旋转时可能会出现?请问一下如何解决?

Question : Is there any way to pull video from 2 side simulatneously +?

For group conference implementation, I've used this library.

When I used only 1 Hosterkit and Guesterkit, it works well. But when I tried to use 2 GuesterKit for pull video from 2 side simulateneously, 1 GuesterKit doesn't work.

Is there any trick to fix this issue ?

Any help would be really appreciated.

Thanks

Android平台居然直接支持USB摄像头!!!

我的是一台Android嵌入式设备,使用的是USB摄像头,本想着要传YUV视频数据然后推流,没想到居然能直接支持!!!

anyRTC-RTMP底层使用的是什么技术?为什么可以直接驱动USB摄像头呢?

什么时候可以支持安卓美颜?

现在的主播没有美颜根本没法看,而且主播大部分用的都是三星的手机直播,如果加上美颜效果,这个框架肯定会特别受欢迎。

error: 'pthread_condattr_setclock' was not declared in this scope

Build command failed.
Error while executing process D:\PlatformSDKs\android-sdk-windows\ndk-bundle\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=D:\AS_Project\anyRTC-RTMP-OpenSource-master\Prj-Android\jni\toolchain\Android.mk APP_ABI=armeabi NDK_ALL_ABIS=armeabi NDK_DEBUG=1 APP_PLATFORM=android-16 NDK_OUT=D:/AS_Project/anyRTC-RTMP-OpenSource-master/Prj-Android/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=D:\AS_Project\anyRTC-RTMP-OpenSource-master\Prj-Android\app\build\intermediates\ndkBuild\debug\lib NDK_APPLICATION_MK:=../jni/Application.mk D:/AS_Project/anyRTC-RTMP-OpenSource-master/Prj-Android/app/build/intermediates/ndkBuild/debug/obj/local/armeabi/libanyrtmp-jni.so}
Android NDK: WARNING:D:/AS_Project/anyRTC-RTMP-OpenSource-master/Prj-Android/jni/toolchain/../Android.mk:anyrtmp-jni: non-system libraries in linker flags: -lavformat -lavcodec -lavutil
Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK: current module
Android NDK: WARNING: Unsupported source file extensions in D:/AS_Project/anyRTC-RTMP-OpenSource-master/Prj-Android/jni/toolchain/../../../webrtc/Android.mk for module webrtc
Android NDK: system_wrappers/source/trace_impl.h
[armeabi] Compile++ thumb: webrtc <= event_timer_posix.cc
D:/AS_Project/anyRTC-RTMP-OpenSource-master/Prj-Android/jni/toolchain/../../../webrtc/system_wrappers/source/event_timer_posix.cc: In constructor 'webrtc::EventTimerPosix::EventTimerPosix()':
D:/AS_Project/anyRTC-RTMP-OpenSource-master/Prj-Android/jni/toolchain/../../../webrtc/system_wrappers/source/event_timer_posix.cc:53:56: error: 'pthread_condattr_setclock' was not declared in this scope
pthread_condattr_setclock(&cond_attr, CLOCK_MONOTONIC);

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.