GithubHelp home page GithubHelp logo

livevideocoresdk's Introduction

LiveVideoCoreSDK

基于IOS的手机视频直播SDK.

LiveVideoCoreSDK是基于IOS的视频直播SDK(支持IOS8.1以上,基于开源videocore进行了改进)

分辨率,速率配对关系:
1, 720x1280:至少1.5mbps;
2, 540x960: 至少800kbps;
3, 360x640: 至少:600kbps;

如果想获取丰富的滤镜直播效果,并且免除编译整合的困难, 可以到我新的基于gpuimage的代码库:
1, 多滤镜IOS推流SDK:
基于GPUImage的多滤镜拍摄, 滤镜资源丰富. GPUImageRtmpPush
2, Android rtmp拍摄直播SDK:
Android手机软编码,手机适配能力强,支持所有市面的RTMP服务器。 android_rtmppush_sdk

RTMP推荐开源服务器:

推荐多媒体流媒体服务: cpp_media_server

支持跨平台(linux/mac)

直播相关特性

  • rtmp推拉流服务(支持h264/vp8+aac/opus in rtmp/flv)
  • httpflv拉流服务(支持h264/vp8+aac/opus in rtmp/flv)
  • hls录像服务(支持h264/vp8+aac/opus in mpegts)
  • webobs: websocket推送flv直播服务(webcodec编码,websocket flv推流封装)

webrtc视频会议特性

  • 房间管理服务
  • websocket长连接接入
  • 加入/离开房间
  • 推流/停止推流
  • 拉流/停止拉流
  • 高性能webrtc转rtmp: 无转码
  • 高性能支持webrtc的旁路rtmp直播
  • 高性能rtmp转webrtc: 无转码
  • 高性能支持低延时直播,支持rtmp转为webrtc

livevideocoresdk's People

Contributors

runner365 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

livevideocoresdk's Issues

sdk中的美颜参数的调整

我想自己调整sdk中的美颜参数,能否告知BeautyVideoFilter.cpp中getBeautyParam方法四个浮点值代表的含义?

怎么把RtmpLivePushSDK抽出来放到我自己的项目中去

我想自己做下修改并自己封装,但是RtmpLivePushSDK放到项目中会报错
Undefined symbols for architecture arm64:
"OBJC_CLASS$_VCSimpleSession", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我的集成方法是把RtmpLivePushSDK工程放到我的工程中去

开启直播就挂

LiveVideoCoreDemo[2456:1021029] rtmp live state: 1
ClientState: 1
2016-03-07 10:23:50.730 LiveVideoCoreDemo[2456:1021028] rtmp live state: 2
ClientState: 2
ClientState: 3
ClientState: 4
ClientState: 5
ClientState: 6
received server window size: 2500000
received peer bandwidth limit: 2500000 type: 2
received ping, sending pong.
Received invoke
pktId: 1
received invoke _result
tracked command: connect
ClientState: 7
received unknown packet type: 0x15
Received invoke
pktId: 4
received invoke _result
tracked command: createStream
ClientState: 8
received ping, sending pong.
Received invoke
pktId: 0
received invoke onStatus

image

编译失败

xcode 7.2.1

/Users/xxx/Downloads/LiveVideoCoreSDK-master/RtmpLivePushSDK/VideoCore/transforms/Apple/H264Encode.mm:186:51: NSNumber must be available to use Objective-C literals
/Users/xxx/Downloads/LiveVideoCoreSDK-master/RtmpLivePushSDK/VideoCore/transforms/Apple/H264Encode.mm:186:51: Illegal type '(anonymous enum at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVPixelBuffer.h:35:1)' used in a boxed expression

编译到 PixelBuffer.h 出错

新手学习中, 请帮忙指点一下, 谢谢

clone 7月6日的代码, 用 xcode 打开 LiveVideoCoreSDK.xcworkspace
编译失败, 其中说编译到这个文件时

LiveVideoCoreSDK.git/RtmpLivePushSDK/Headers/Private/VideoCore/videocore/system/pixelBuffer/Apple/PixelBuffer.h
里面的内容是

../../../../../../../VideoCore/system/pixelBuffer/Apple/PixelBuffer.h

报错
LiveVideoCoreSDK.git/RtmpLivePushSDK/Headers/Private/VideoCore/videocore/system/pixelBuffer/Apple/PixelBuffer.h:1:1: Cannot use dot operator on a type

正常来说应该是

include "../../../../../../../VideoCore/system/pixelBuffer/Apple/PixelBuffer.h"

才对啊, 改了以后这个文件就不报错了, 但是其他好多 .h 都是这样写的.

推流失败

直播一段时间会出现
ERROR: WriteN, RTMP send error 9 (42 bytes)
ERROR: RTMP_ReadPacket, failed to read RTMP packet header
然后就停止推流了

集成

请问如何集成到自己的工程中呢

播放黑屏

ERROR: WriteN, RTMP send error 35 (45 bytes)
ERROR: WriteN, RTMP send error 9 (42 bytes)
ERROR: WriteN, RTMP send error 32 (140 bytes)
ERROR: WriteN, RTMP send error 32 (45 bytes)
ERROR: WriteN, RTMP send error 9 (42 bytes)

推流一段时间后,就会经常性的报错。导致的现象是:
只有最初链接的播放器能够正常播放,之后接入的播放器只有音频,视频上看是黑屏的。
希望能够提供排查思路,一同解决。

咨询

请问你的这个项目支持ipv6吗?

ERROR: WriteN, RTMP send error 35 (129 bytes

LOG 和界面上来看RTMP 服务器已经连接成功了,
但是在传输数据的时候报如下错误,请问是我服务器配置错误了吗?
ERROR: WriteN, RTMP send error 35 (129 bytes)
ERROR: WriteN, RTMP send error 35 (39 bytes)
ERROR: RTMP_Connect1, handshake failed.
ERROR: RTMP_ReadPacket, failed to read RTMP packet header
ERROR: RTMP connection poll error, ret=0, Operation now in progress

error

在推流过程中

ERROR: WriteN, RTMP send error 35 (21 bytes)
ERROR: WriteN, RTMP send error 35 (110 bytes)
ERROR: WriteN, RTMP send error 9 (42 bytes)

推流中断!

在正常推流的过程中,网络是稳定的WIFI

ERROR: WriteN, RTMP send error 32 (140 bytes)
ERROR: WriteN, RTMP send error 32 (110 bytes)
ERROR: WriteN, RTMP send error 9 (42 bytes)

然后就是一直Log

ERROR: RTMP_ReadPacket, failed to read RTMP packet header

然后connectionStatusChanged 又没有监听到状态改变
等了超级久还是不行。
如果我自己写一个定时监听这个sessionState状态,这个时候的状态是PreviewStarted,
这时候如果断流后再重新推流还是不行,一直打印这个Log!

如何使用?

demo能运行,但是github主页没有说明如何使用啊???

LiveVideoCoreSDK exit syn Bug

I find two Bug:

  1. when OnExitClicked disconnect the RTMP session, if RTMP send queue is over 100 (Bad network), it will cause too mush time to exit, and maybe crash.
  2. When two LiveShowViewController is opened at the same time, it will crash. some people may click too fast , will open two view controller.

to fix the first bug, my method is

in VCSimpleSession add method:

- (void) endRtmpSessionAsyn:(void (^)())done {

NSLog(@"退出 endRtmpSessionAsyn %p",self);
   //这里必须使用强引用, 等执行完才能执行dealloc, 否则队列里面还有任务要执行, self已经销毁会崩溃
 // only when _graphManagementQueue is empty can self be dealloc, or it will crash 
dispatch_async(_graphManagementQueue, ^{
    [self endRtmpSession];

    if (done) {
        done();
    }
    NSLog(@"退出成功 %p",self);
});    }

in LiveVideoCoreSDK add method, and call this method when OnExitClicked

 - (void) disconnectAsynAndRelease {
    [_livesession endRtmpSessionAsyn:^{
    _livesession = nil;
   }];
}

新建的滤镜,设置提示Null texture!

新建的滤镜是和demo中的美颜 改了level和命名的,但是setFilter之后,图3的filter为NULL,并且log出Null texture!
2016-06-14 10 59 20
2016-06-14 11 01 40
2016-06-14 11 02 11

求正确设置滤镜的思路

请问下有用pod集成做的demo吗?

我现在需要把这个集成到自己的工程里面。但是您用的3个project相互依赖的方式我弄不出来,RtmpLivePushSDK那个工程也没法弄成静态库的方式。

滤镜修改

1.beautyFilter中的 vec3 lvse = vec3(1.0)-(vec3(1.0)-smoothColor)*(vec3(1.0)-centralColor);是为了变白吗?
2.我想将滤镜的整体颜色变粉一点,如果按1中的修改方法,该如何修改RGBA中的R。
~~please help

VLC error cannot pre fill buffer

Hi, I'm using rtmpdump to stream contents to VLC like:

rtmpdump -r $1 --quiet | /Applications/VLC.app/Contents/MacOS/VLC fd://0 --playlist-autostart

passing the rtmp:// url from LiveVideoCoreDemo that is logging:

2016-03-04 19:22:17.489 LiveVideoCoreDemo[380:99636] Start live Rtmp:rtmp://192.168.30.163/live/123456
2016-03-04 19:22:17.511 LiveVideoCoreDemo[380:99636] Creating context
2016-03-04 19:22:17.573 LiveVideoCoreDemo[380:99636] Context creation succeeded
Apple::AudioMixer2016-03-04 19:22:17.574 LiveVideoCoreDemo[380:99636] rtmpUrl=rtmp://192.168.30.163/live/123456, destination=rtmp://192.168.30.163/live, livename=123456

width=360.00, height=640.00, bitRate=500000, frameRate=20
2016-03-04 19:22:17.574 LiveVideoCoreDemo[380:99636] connect: rtmp://192.168.30.163/live/123456
2016-03-04 19:22:17.575 LiveVideoCoreDemo[380:99636] Rtmp[rtmp://192.168.30.163/live/123456] is connecting
playPath: 123456, app: live2016-03-04 19:22:18.427 LiveVideoCoreDemo[380:99667] rtmp live state: 1
ClientState: 10
2016-03-04 19:22:25.499 LiveVideoCoreDemo[380:99668] rtmp live state: 5
~RTMPSession2016-03-04 19:22:25.502 LiveVideoCoreDemo[380:99668] rtmp live state: 4

then I get an error cannot pre fill buffer

^C^Cmacbookproloreto:LiveVideoCoreSDK admin$ rtmp_open rtmp://192.168.30.163/live/123456
VLC media player 2.2.2 Weatherwax (revision 2.2.2-3-gf8c9253)
[0000000100331ec8] core stream error: cannot pre fill buffer

滤镜

您的demo里滤镜时,正常模式无法点击,而且那张如花也没显示哦

打包不通过?

chown: Alex.shi: illegal user name
Command /usr/sbin/chown failed with exit code 1

why?如何解决,谢谢

2016-07-05 10:53:23.985 LiveVideoCoreDemo[11146:6314222] Start live Rtmp:rtmp://10.10.160.99/live/yyn
2016-07-05 10:53:24.002 LiveVideoCoreDemo[11146:6314222] Creating context
2016-07-05 10:53:24.019 LiveVideoCoreDemo[11146:6314222] Context creation succeeded
2016-07-05 10:53:24.020 LiveVideoCoreDemo[11146:6314222] rtmpUrl=rtmp://10.10.160.99/live/yyn, destination=rtmp://10.10.160.99/live, livename=yyn

width=360.00, height=640.00, bitRate=500000, frameRate=20
2016-07-05 10:53:24.020 LiveVideoCoreDemo[11146:6314222] connect: rtmp://10.10.160.99/live/yyn
2016-07-05 10:53:24.021 LiveVideoCoreDemo[11146:6314222] Rtmp[rtmp://10.10.160.99/live/yyn] is connecting
Apple::AudioMixer2016-07-05 10:53:24.563 LiveVideoCoreDemo[11146:6314298] rtmp live state: 1
ERROR: RTMP_ReadPacket, failed to read RTMP packet header
ClientState: 2
2016-07-05 10:53:28.666 LiveVideoCoreDemo[11146:6317081] rtmp live state: 1
ERROR: RTMP_ReadPacket, failed to read RTMP packet header
ERROR: RTMP_ReadPacket, failed to read RTMP packet header
ERROR: RTMP_ReadPacket, failed to read RTMP packet header

'type_half.inl' file not found

請問 pod install
Installing glm (0.9.4.6)

compiled error
LiveVideoCoreSDK/Pods/Headers/Private/glm/core/type_half.hpp:116:10: 'type_half.inl' file not found

請問您有遇到這編譯錯誤嗎? 或是用的是 glm (0.9.4.6)嗎?

提交了两次itunes,都提示说崩溃,请问是怎么回事,原itunes回复如下:

Performance - 2.1

Your app crashes on iPhone running iOS 9.3.2 when we:

  1. Launched the application
  2. Filled in all login credentials
  3. Tapped on 开始直播 section

This occurred when your app was used:

  • On Wi-Fi

We have attached detailed crash logs to help troubleshoot this issue.

Next Steps

Please revise your app and test it on a device to ensure that it runs as expected.

Apps are reviewed on an IPv6 network. Please ensure that your app supports IPv6 networks, as IPv6 compatibility is required.

For additional information about supporting IPv6 Networks, please refer to Supporting IPv6 DNS64/NAT64 Networks and About Networking.

Resources

For information on how to symbolicate and read a crash log, please see Tech Note TN2151 Understanding and Analyzing iPhone OS Application Crash Reports.

If you have difficulty reproducing this issue, please try testing the workflow described in Testing Workflow with Xcode's Archive feature.

If you have code-level questions after utilizing the above resources, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:

  • complete details of your rejection issue(s)
  • screenshots
  • steps to reproduce the issue(s)
  • symbolicated crash logs - if your issue results in a crash log

一直输出Error

在手机上跑sdk后,一直输出一个error:
ERROR: RTMP connection poll error, ret=0, Operation now in progress。
不过好像没什么影响还能继续播。。。

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.