Itools a bit of a card, but pushing to the server is fast.
Preface to push Flow
This blog is a supplement to the:< Meow app> for iOS video broadcast. Because there is no push stream for integrated video on projects that were previously uploaded to GitHub. There are a lot of friends 简信 and 微博 ask me how to push the flow this part of how to achieve. So, I've re-integrated RTMP the push flow and merged it into the previous project.
Download link
GitHub (full version video live)
Blog details (suggested that you join this article to see together)
Mac Build Nginx+rtmp Server
I built a server in my personal computer a long time ago, nginx+rtmp but yesterday in the company's computer construction, when manually entered the command, or there is a bug (so, we recommend that you directly copy the command, do not enter the command manually). So record a detailed set of steps to prevent the jump pit again ...
This tutorial refers to self-propelled cool: Mac build nginx+rtmp Server
-
- Open terminal to see if it is already installed
Homebrew , direct terminal input command
man brew
If your Mac is already installed, it displays help for some commands. Enter Q to exit and go directly to the second step.
Conversely, if not installed, execute the command
-e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
If after installation, you want to uninstall
-e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
Clone Nginx Project first to local
brew tap homebrew/nginx
To perform the installation:
install nginx-full --with-rtmp-module
At this point, the Nginx and rtmp modules are installed
Enter the command:
nginx
Open http://localhost:8080 in the browser
If present, the installation is successful
Installation Successful
If you are prompted on the terminal
Nginx: [Emerg] bind () to 0.0.0.0:8080 failed (48:address already on use)
Nginx: [Emerg] bind () to 0.0.0.0:8080 failed (48:address already on use)
Nginx: [Emerg] bind () to 0.0.0.0:8080 failed (48:address already on use)
Nginx: [Emerg] bind () to 0.0.0.0:8080 failed (48:address already on use)
.....
Indicates 8080 that the port is occupied, view the port PID
lsof -i tcp:8080
Based on the port PID, kill (Here's the 9603 pid for your own 8080 port)
kill 9603
Then re nginx -execute, open http://localhost:8080
- 3. Configuring Nginx and Ramp
First we look nginx at where it's installed.
brew info nginx-full
To find the nginx.conf location of your file
Nginx.conf
vim Finder 前往 前往文件夹 输入/usr/local/etc/nginx/nginx.conf Open with Notepad tool (recommended Sublime Text ), nginx.conf or by clicking on it.
Roll directly to the last line, and add it after the last } (that is, the last space, without any {} )
# 在http节点后面加上rtmp配置:rtmp { server { listen 1935; application rtmplive { live on; record off; } }}
Then restart the Nginx (where the 1.10.1 to replace your own installed nginx version number, check the version number with the nginx -v command)
/usr/local/Cellar/nginx-full/1.10.1/bin/nginx -s reload
Yesterday, at the time of the execution of this order, the pit appeared. (If your command succeeds, the reboot succeeds, no exception, please jump to the next step directly)
When the command is executed, the report is abnormal.
in /usr/local/etc/nginx/nginx.conf:119
rtmphas become an unknown instruction. I hurried to Google, the answer has been tried again, the bug is still the sound. Finally there is no way, brew list look at all the installed modules, only to find that their own manual knocking command, will nginx-full become nginx -full .
On the solution:
Unloadingnginx
uninstall nginx
Install againnginx
install nginx-full --with-rtmp-module
Execute command
install ffmpeg
ffmpegthe installation time will be a little longer. If the speed is too slow, it is recommended to FQ. But it's just over 50 m, just be patient. Wait time, install a video player that supports RTMP protocolVLC
-
- FFmpeg Push Stream
Take one of my desktops loginmovie.mp4 (prepare a video file yourself, or use Resource the two video files in my GitHub project) as an example to perform a push-flow command
Ffmpeg-re-i/users/sunlin/desktop/loginmovie.mp4-vcodec Libx264-acodec aac-strict-2-F FLV Rtmp://localhost:1935/rtm Plive/room
After the video is pushed to the server, open VLC, and then File->open network-> input:
Rtmp://localhost:1935/rtmplive/room
Effect
Push stream fast integrated live push stream
Prerequisites:
- Go to GitHub to download the latest Meow project.
- Configure the NGINX+RTMP server according to the tutorial above.
Originally prepared to achieve their own live streaming, but today in the technology group chat, a friend recommended Youku Tudou 来疯直播 shortly before the open source iOS push stream framework Lflivekit. is written in OC, it is suitable for learning (I am also ready to delve into this framework, what questions you can discuss together) , the integration is also very simple, a few lines of code is OK.
Download good I write after the meow, in the lower left of Xcode direct search ShowTimeViewController , enter ShowTimeViewController.m . Search - (IBAction)living:(UIButton *)sender , replace the inside with stream.url your own rtmp address.
Tip: LFLiveKit already integrated, GPUImage if there is integration in the project GPUImage , you need to remove the previous one. and the integration LFLiveKit needs to be closed Bitcode .
Closing submissions
Now meow is a relatively complete video live project, although the use of a lot of third parties, but also save the development time, improve the development efficiency.
Later this project I will continue to improve, if you have any good idea or effect, you can micro-blog private messages to me, if I can fix, I will add as soon as possible.
GitHub
Full video Live: Meow
Wen/monkey_alin (author of Jane's book)
Original link: http://www.jianshu.com/p/8ea016b2720e
Copyright belongs to the author, please contact the author to obtain authorization, and Mark "book author".
ios--Fast Integration iOS rtmp-based video push stream