前文我們講述瞭如何在mac推流操作。做這些的目的就是爲了今天的成果。
如果你們後臺已經完成了推流代碼,並保證完全測通,那麼就可以從這篇文章看起。開始做我們客戶端的事,否則,就需要我們客戶端自己推流來測試拉流播放效果。 安裝nginx服務器用於rtmp(ios端)推流測試
下面開始今天的主角,客戶端引入ijkplayer,並測試拉流播放。
第一步:我們需要合成ijkplayer的framework。這個在前文我們已經完成了,需要的話重新看看 ios端集成ijkplayer 和 ios端ijkplayer編譯 這兩篇就是完成的這個步驟。
第二步:引入ijkplayer的庫,從demo中導入需要播放功能的幾個類。其實ijkplayer就是基於FFmpeg做的一個跨平臺播放系統,支持各種複雜的編碼解碼以及視頻格式等。這裏我引入的是這幾個類。
第三步:解決導入這幾個文件後報錯,其實就是引用頭文件的一些錯誤,錯誤也不多,這裏就不累述了。
第四步:我們在新建項目的ViewController中引入頭文件#import "IJKMoviePlayerViewController.h"
。
第五步:跳入播放界面,並傳入需要的url,這個url就是我們mac上推流的地址。
NSURL *url = [NSURL URLWithString:@"rtmp://localhost:1935/rtmplive/room"];
NSString *scheme = [[url scheme] lowercaseString];
if ([scheme isEqualToString:@"http"]|| [scheme isEqualToString:@"https"]|| [scheme isEqualToString:@"rtmp"]) {
[IJKVideoViewController presentFromViewController:self withTitle:[NSString stringWithFormat:@"URL: %@", url] URL:url completion:^{
[self.navigationController popViewControllerAnimated:YES];
}];
}
最後我們就可以測試了,我們再終端重啓nginx,並輸入推流代碼,我這裏僅僅推送調用攝像頭的推流代碼,代碼和效果如下。
1. nginx
2. nginx -s reload
3. ffmpeg -f avfoundation -framerate 30 -i "0" -target pal-vcd ./hello.mpg -f flv rtmp://localhost:1935/rtmplive/room
然後我們運行xcode實現拉流。效果如下: