一个简单的直播 IOS客户端 + 服务端
2017-12-21 16:51
731 查看
一个简单的直播 IOS客户端 + 服务端
我的 demo
我的 demo
IOS 端
LFLiveKit
LaiFengiOS/LFLiveKitprivate let streamUrl = "rtmp://192.168.1.113:1935/rtmplive/test" lazy var session: LFLiveSession = { let audioConfiguration = LFLiveAudioConfiguration.default() let videoConfiguration = LFLiveVideoConfiguration.defaultConfiguration(for: LFLiveVideoQuality.low3, outputImageOrientation: UIInterfaceOrientation.portrait) let session = LFLiveSession(audioConfiguration: audioConfiguration, videoConfiguration: videoConfiguration) session?.delegate = self session?.preView = self.view session?.running = true return session! }() func startLive() -> Void { let stream = LFLiveStreamInfo() stream.url = streamUrl session.startLive(stream) } func stopLive() -> Void { session.stopLive() }
IJKFramework
let urlStr = "rtmp://192.168.1.113:1935/rtmplive/test" let options = IJKFFOptions.byDefault() IJKFFMoviePlayerController.setLogReport(false) IJKFFMoviePlayerController.setLogLevel(k_IJK_LOG_ERROR) IJKFFMoviePlayerController.checkIfFFmpegVersionMatch(true) moviePlayerController = IJKFFMoviePlayerController(contentURLString: urlStr, with: options) moviePlayerController.view.autoresizingMask = [UIViewAutoresizing.flexibleWidth, .flexibleHeight] moviePlayerController.view.frame = UIScreen.main.bounds moviePlayerController.scalingMode = IJKMPMovieScalingMode.aspectFit moviePlayerController.shouldAutoplay = true self.view.addSubview(moviePlayerController.view) moviePlayerController.prepareToPlay() moviePlayerController.play()
Mac搭建nginx+rtmp服务器
Homebrew
终端运行man brew查询是否安装
Homebrew
Homebrew安装
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"[/code]Homebrew卸载ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"[/code]Nginx
clone Nginx 项目到本地brew tap homebrew/nginx
安装brew install nginx-full --with-rtmp-module
测试
输入nginx在浏览器打开 http://localhost:8080 能正常访问表示安装成功
查看
输入brew info nginx-full在输出信息中我找到
==> Caveats
Docroot is: /usr/local/var/www
The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.
nginx will load all files in /usr/local/etc/nginx/servers/.
编辑nginx.conf添加 RTMP 配置# 在http节点后面加上rtmp配置: rtmp { server { listen 1935; #直播流配置 application rtmplive { live on; #为 rtmp 引擎设置最大连接数。默认为 off max_connections 1024; } application hls{ live on; hls on; hls_path /usr/local/var/www/hls; hls_fragment 1s; } } }
重启 Nginx/usr/local/Cellar/nginx-full/1.12.2/bin/nginx -s reload
或者nginx -s reloadnginx -s stop// 停止nginx -s quit// 退出FFmpeg
安装brew install ffmpeg使用 FFmpeg 推流
推流拉流同时进行
推流 MOV 视频文件ffmpeg -re -i /Users/syc/Desktop/test.MOV -vcodec libx264 -acodec aac -strict -2 -f flv rtmp://localhost:1935/rtmplive/test
推流 桌面(桌面分享)ffmpeg -f avfoundation -i "1" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv rtmp://localhost:1935/rtmplive/test
推流 桌面+麦克风ffmpeg -f avfoundation -i "1:0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:1935/rtmplive/test
推流 桌面+麦克风+摄像头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:1935/rtmplive/test使用 VLC 拉流播放
Open Network打开rtmp://localhost:1935/rtmplive/test参考
cocoachina iOS直播实用篇(手把手教)
cnglogs ffmpeg 常用命令
FFmpeg常用推流命令
ffmpeg处理RTMP流媒体的命令大全
相关文章推荐
- 30分钟跑直播 客户端(iOS)+服务端(nginx--rtmp-module)
- golang使用net库实现一个简单的服务端和客户端通信
- 用.Net打造一个移动客户端(Android/IOS)的服务端框架NHM(二)——“请求”“交互”与传输数据(服务器端)
- 用.Net打造一个移动客户端(Android/IOS)的服务端框架NHM(四)——Android端Http访问类
- 一个简单的TCP客户端、服务端会话程序(C#)
- 用.Net打造一个移动客户端(Android/IOS)的服务端框架NHM(四)——Android端Http访问类(转)
- 用.Net打造一个移动客户端(Android/IOS)的服务端框架NHM——Android端消息处理机制
- 一个简单的客户端和服务端网络连接程序
- 一个简单的socket客户端和服务端的例子
- 一个最简单的SOAP客户端与服务端测试实例(主要是该例子一个类中写了多个方法)
- (原)一个简单的UDP服务端和客户端程序
- php创建一个最简单的soap服务端与客户端测试的实例
- 直播时代:让IOS普通开发者一天内做出一个RTMP直播客户端,并且带有美艳直播功能。(文章最下面有github源码地址)
- Java网络编程(一)- 一个简单的服务端/客户端应用程序
- 一个简单的完成端口(服务端/客户端)类
- 一个简单的完成端口(服务端/客户端)类
- 一个PHP写的简单webservice服务端+客户端
- 一个简单的完成端口(服务端/客户端)类
- Java网络编程(一)- 一个简单的服务端/客户端应用程序
- 一个简单的完成端口(服务端/客户端)类