rtmp-wrapper is a librtmp wrapper library for iOS platform
- OS X is requried for all iOS development
- XCODE from the App Store.
- GIT is required.
- CocoaPods is required for the iOS dependency management. You should have ruby installed on your machine before install CocoaPods
Source code for the SDK is available on GitHub
$ git clone [email protected]:ifactorylab/rtmp-wrapper.git
CocoaPods installs all dependencies for the library project
$ cd rtmp-wrapper
$ pods install
$ open rtmp-wrapper.xcworkspace
Create a Podfile if not exist, add the line below
pod 'rtmp-wrapper', '~> 1.0.6'
#import "RtmpWrapper.h"
RtmpWrapper *rtmp = [[RtmpWrapper alloc] init];
BOOL ret = [rtmp rtmpOpenWithURL:@"YOUR RTMP PUBLISHING POINT" enableWrite:YES];
if (ret) {
NSData *video =
[NSData dataWithContentsOfURL:[NSURL URLWithString:@"FLV VIDEO URL ON THE NET"]];
NSLog(@"original video length: %d", [video length]);
NSUInteger length = [video length];
NSUInteger chunkSize = 10 * 5120;
NSUInteger offset = 0;
// Let's split video to small chunks to publish to media server
do {
NSUInteger thisChunkSize = length - offset > chunkSize ? chunkSize : length - offset;
NSData* chunk = [NSData dataWithBytesNoCopy:(char *)[video bytes] + offset
length:thisChunkSize
freeWhenDone:NO];
offset += thisChunkSize;
// Write new chunk to rtmp server
NSLog(@"%d", [rtmp rtmpWrite:chunk]);
sleep(1);
} while (offset < length);
}
// Close rtmp connection and release class object
[rtmp rtmpClose];
[rtmp release];
- arc enabled
- async open / write added
- autoreconnect removed
- sigpipe => ignored
- reconnect function added
- added connected and autoReconnect