iOS rtmp本地实现视频直播资料整理

2016-11-24  本文已影响102人  kenewang

搭建nginx+rtmp:
http://blog.csdn.net/a454431208/article/details/52780970
注:然后电脑上打开vlc这个播放器软件 点击File—->Open Network 在弹出来的框中选择Network然后输入URL:
rtmp://localhost:1935/zbcs/room" rtmp默认端口是1935,也可以自己设置成喜欢的
例如:rtmp://localhost:2016/rtmplive/room,这个要到对应的nginx.conf中修改

http{}后面
rtmp {
server {
listen 2016;
application rtmplive {
live on;
record off;
}
}
}

注:改了之后需要重启Nginx服务:nginx -s reload即可。

库:librtmp
播放器:ijkplayer就可以 git地址:https://github.com/Bilibili/ijkplayer

你就可以把ijkplayer拆了,自己实现通信协议,拿到码流,自己解码,自己显示,自己播放声音,按时间戳实现音视频同步,这个也好了的话,就去弄推流,推流协议不用管,只需要采集和推流。考虑到qos,推流前需要做个缓冲池,通过网络情况调整采集编码参数。

调整的最简单方式就是 预先配置几个配置,按照网络情况进行快降慢升。

最后整个流程大概就这么多,其实没多少东西,只是细节需要注意。

关于编解码的,苹果直接调用api就可以实现。

2016-11-24:
1、本地搭建一个ngnix+rtmp的服务器(具体看开头的博客地址)
2、手机和电脑是同一个网段
3、使用第三方的视频播放器(ijkplayer)https://github.com/Bilibili/ijkplayer 这个b站开源框架git地址
当然还有别人整理的demo,用来就可以直接播放;地址:http://www.jianshu.com/p/5218f8c952fb

注:demo中需要写播放地址的url(rtmp开头);这个url必须和电脑上临时搭建流的地址一样,这样就可以看到直播的视频了

首先:终端中FFmpeg推流命令:
1、本地视频播放流命令:ffmpeg -re -i /Users/charles_wtx/Desktop/鬼吹灯之黄皮子坟01.mp4 -vcodec copy -f flv rtmp://localhost:2016/rtmplive/room
2、桌面实时流命令:
1)将桌面录制或者分享,可以使用命令行如下:
ffmpeg -f avfoundation -i "1" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv rtmp://localhost:2016/rtmplive/room
2)桌面+麦克风
ffmpeg -f avfoundation -i "1:0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:2016/rtmplive/room
3)桌面+麦克风,摄像头拍摄到自己
ffmpeg -f avfoundation -framerate 30 -i "1:0" -f avfoundation -framerate 30 -video_size 640x480 -i "0" -c:v libx264 -preset ultrafast -filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:2016/rtmplive/room

其次:
//这里必须写成实际电脑的ip地址。。。
NSString *path = @"rtmp://192.168.1.101:1935/zbcs/room";
[IJKVideoViewController presentFromViewController:self withTitle:@"正在播放:。。。" URL:[NSURL URLWithString:path] completion:^{
NSLog(@"播放器初始化完成!");
}];

未完待续...

上一篇下一篇

猜你喜欢

热点阅读