iOS:基于RTMP的视频推流
iOS基于RTMP的视频推流
一、基本介绍
iOS直播一出世,立马火热的不行,各种直播平台如雨后春笋,正因为如此,也同样带动了直播的技术快速发展,在IT界精通直播技术的猴子可是很值钱的。直播技术涉及的知识面很广,最主要的大概就是这几个:软硬解码.h264、美颜处理、推流RTMP、拉流播放、视频录制、发送弹幕、即时通讯.
二、常用技术
- 软硬解码.h264:使用iOS8.0之后苹果开源的VideoToolBox,这正是很多直播软件最低兼容iOS8的原因了
- 美颜处理:CPUImage,内置150多种滤镜,功能强大
- 拉流播放:ijkplayer.framework、VLC
- 推流RTMP:安装nginx+rtmp服务器,ffmpeg推流
- 视频录制:UIImagePiackerController、AVCaptureSession、GPUImageVideoCamera
- 发送弹幕:BarrageRenderer第三方库
- 即时通讯:XMPP、环信、融云等
三、安装nginx+rtmp服务器流程,此处我直接安装成功,如有失败,请查看下面的参考原链接:http://www.jianshu.com/p/8ea016b2720e
1、安装Homebrew,打开终端, 查看是否已经安装了Homebrew, 直接终端输入命令
man brew
2、如果Mac已经安装了, 会显示一些命令的帮助信息. 此时输入Q退出即可, 直接进入第二步。反之, 如果没有安装,执行命令。此处可能需要输入密码,修改宿主目录读写权限。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
3、安装nginx,先clone nginx项目到本地
brew tap homebrew/nginx
4、执行安装
brew install nginx-full --with-rtmp-module
5、nginx和rtmp模块就安装好了,输入命令
nginx
6、在浏览器里打开http://localhost:8080,查看安装结果
7、安装成功后,配置nginx和ramp,找到nginx.conf文件所在位置
brew info nginx-full
8、编辑nginx.conf,在http节点后面加上rtmp配置
#在http节点后面加上rtmp配置
rtmp {
server {
listen 1935;
application rtmplive {
live on;
record off;
}
}
}
9、查看nginx版本号
nginx -v
10、替换成自己的nginx版本号,重启nginx
/usr/local/Cellar/nginx-full/1.10.3/bin/nginx -s reload
11、安装ffmpeg,大概50多M,建议翻or墙安装,本人翻or墙安装很快成功了。
brew install ffmpeg 注意:如果需要更新ffmpeg,使用后面这条命令:brew upgrade ffmpeg
12、安装一个支持rtmp协议的视频播放器VLC
框架: https://github.com/videolan/vlc播放器: VLC
13、ffmpeg推流,准备本地的一个视频文件
ffmpeg -re -i /Users/xiayuanquan/Desktop/movie.mp4 -vcodec libx264 -acodec aac -strict -2 -f flv rtmp://localhost:1935/rtmplive/room
14、将视频推流到服务器后,打开VLC,然后File->open network->输入,实现效果请查看下面的参考原地址第二条
rtmp://localhost:1935/rtmplive/room
三、参考原地址
1、VideoToolBox:http://www.jianshu.com/p/a6530fa46a88
2、基于RTMP推流:http://www.jianshu.com/p/8ea016b2720e(该博主Monkey_ALin 简书写的great,受益匪浅,感谢)
3、github下载地址:完整版视频直播:喵播下载地址(该博主Monkey_ALin 简书上的github地址)
4、GPUImage:http://www.cnblogs.com/XYQ-208910/p/5859683.html
5、ffmpeg:http://www.cnblogs.com/XYQ-208910/p/5857239.html
6、ijkplayer:http://www.cnblogs.com/XYQ-208910/p/5856815.html
iOS:基于RTMP的视频推流的更多相关文章
- iOS-- 快速集成iOS基于RTMP的视频推流
效果图 iTools有点卡, 但是推到服务器倒是很快的. 推流 前言 这篇blog是iOS视频直播初窥:<喵播APP>的一个补充. 因为之前传到github上的项目中没有集成视频的推流.有 ...
- 快速集成iOS基于RTMP的视频推流
前言 这篇blog是iOS视频直播初窥:<喵播APP>的一个补充. 因为之前传到github上的项目中没有集成视频的推流.有很多朋友简信和微博上问我推流这部分怎么实现的. 所以, 我重新集 ...
- iOS直播-基于RTMP的视频推送
iOS直播-基于RTMP的视频推送 所谓的视频推送就是把摄像头和麦克风捕获到视频和音频推送到直播服务器上.我们这里使用推送协议是RTMP协议. 扩展:腾讯直播平台,阿里直播平台,百度直播平台提供均为R ...
- iOS - 直播流程,视频推流,视频拉流,简介,SMTP、RTMP、HLS、 PLPlayerKit
收藏笔记 1 . 音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示1.数据采集:摄像机及拾音器收集视频及音频数据,此时得到的为原始数据涉及技术或协议:摄像机: ...
- iOS直播-播放基于RTMP协议的视频
iOS直播-播放基于RTMP协议的视频 流媒体协议介绍 1. 伪流媒体: 渐进式下载 : 边下边存, 文件会保存 使用http协议,也能够实现视频播放, 也能快进快退等, 体验上跟流媒体很像. 优酷, ...
- iOS 直播推流 - 搭建基于RTMP的本地Nginx服务器
前端时间,公司要调研直播相关的内容,特地花时间进行了一番调研. 本篇将记录其中的推流篇-本地推理播放测试. 关于Nginx: 配置Nginx以支持HLS.RTMP的推流与拉流,iOS系统使用LFLiv ...
- 【转】直播流程,视频推流,视频拉流,简介,SMTP、RTMP、HLS、 PLPlayerKit
原:https://www.cnblogs.com/baitongtong/p/11248966.html 1 .音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放 ...
- 视频推流模式HLS,HTTP,RTSP,RTMP协议的区别
HTTP: 先通过服务器将FLV下载到本地缓存,然后再通过NetConnection的本地连接来播放这个FLV,这种方法是播放本地的视频,并不是播放服务器的视频.因此在本地缓存里可以找到这个FLV.其 ...
- c# 基于RTMP推流 PC+移动端 拉流播放
网上关于直播相关的文章很多,但是讲解还是不够系统,对于刚刚接触直播开发的朋友实施起来会浪费不少时间.下面结合我自己的经验, 介绍一下直播方面的实战经验. 分成两个部分 第一部分是标题中介绍的基于RTM ...
随机推荐
- js防止安卓手机软键盘弹出挤压页面导致变形的方法
5防止安卓手机软键盘弹出挤压页面导致变形的方法 输入框定位在底部,手机端打开,输入框聚焦后软键盘打开为什么会瞬间自动关闭呢? 先看看问题: 1.原来是这样的: 2.在苹果手机里面是正常的: 3.到了安 ...
- Linux下的Sreen命令使用
详细的介绍请参看:http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html 一.简介 GNU Screen是一款由GNU计划开发的用于 ...
- Idea中快捷键与小技巧的总结-->持续更新
1.Scala类或单例对象中快速声明实例对象: eg. new SparkContext(conf).var 系统会自动提示,可以自动补全,如图: 2.ctrl+i与ctrl+o的区别: ctrl + ...
- springmvc controller动态设置content-type
springmvc RequestMappingHandlerAdapter#invokeHandlerMethod 通过ServletInvocableHandlerMethod#invokeAn ...
- Java中的泛型 --- Java 编程思想
前言 我一直都认为泛型是程序语言设计中一个非常基础,重要的概念,Java 中的泛型到底是怎么样的,为什么会有泛型,泛型怎么发展出来的.通透理解泛型是学好基础里面中非常重要的.于是,我对<Ja ...
- wireshark抓包工具详细说明及操作使用
https://blog.csdn.net/qq78069460/article/details/79153895
- asp.net结合html使用
在用asp.net开发系统时,用控件能更方便快捷,但是大家也知道用它的控件会导致不可控,特别是css,如何用前端定义的html+css+js来运用asp.net(c#)呢,下面写了一个小实例,实现页面 ...
- SQL 并联更新
UPDATE o SET col2 = c.col3 FROM bo1 AS o JOIN bo2 AS c ON c.col3<>'' WHERE c.col3<>'' UP ...
- C语言中存储类别又分为四类:自动(auto)、静态(static)、寄存器的(register)和外部的(extern)。
除法运算中注意: 如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如8/3 = 2:而两数中有一个为小数,结果则为小数,如:9.0/2 = 4.500000. 取余运算中注意: 该运算只适 ...
- SQL总结——存储过程
SQL总结(五)存储过程 概念 存储过程(Stored Procedure):已预编译为一个可执行过程的一个或多个SQL语句. 创建存储过程语法 CREATE proc | procedure pro ...