博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS:基于RTMP的视频推流
阅读量:6971 次
发布时间:2019-06-27

本文共 1727 字,大约阅读时间需要 5 分钟。

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服务器流程,此处我直接安装成功,如有失败,请查看下面的参考原链接:

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、在浏览器里打开,查看安装结果

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

12、安装一个支持rtmp协议的视频播放器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://

2、基于RTMP推流:(该博主 写的great,受益匪浅,感谢)

3、github下载地址:(该博主 上的github地址)

4、GPUImage:

5、ffmpeg:

6、ijkplayer:

转载地址:http://tcasl.baihongyu.com/

你可能感兴趣的文章
JS_简单无缝图片滚动
查看>>
如何关闭SQL进程
查看>>
编程高手
查看>>
mysql查询查询条件越多速度越快_mysql优化(一)判断什么时候加索引
查看>>
python动态线程_python在动态中杀(停止)子线程的方法
查看>>
springmvc怎么解析post_springmvc的数据接收
查看>>
没有找到mysql。sock_mysql8基于gtid方式搭建主从或恢复
查看>>
php 下拉源码,PHP采集百度下拉框数据的脚本程序源码
查看>>
linux 删除 html文件,如何在 Linux 上恢复误删除的文件或目录
查看>>
linux qt默认编码方式是什么,QT编码方式
查看>>
html五子人机对战游戏代码,HTML5+JS 《五子飞》游戏实现(八)人机对战
查看>>
cfb为什么不需要填充_石墨接地为什么不需要电焊?
查看>>
c++线程中更新ui_大比拼 | 下一代高性能跨平台UI渲染引擎
查看>>
asp.net gridview 为什么只显示一行数据_针对mysql,数据库干货分享,值得收藏
查看>>
反驳生命的起点是rna_关于RNA世界假说的不精确复制是否有利及膜蛋白在其中的作用的假说...
查看>>
r 选取从小到大的数据_收藏|零基础学R之数据结构,一个学习R的理由足够
查看>>
向量图 正弦交流电路_立体几何大题——向量法(二面角)专题
查看>>
处于停机等非正常状态_工地停工,停机很久之后的挖掘机,重启前要检查什么...
查看>>
创建前缀一样的文件_8 个文件整理高级技巧,让你效率倍增
查看>>
mysql 配置程序_4 MySQL程序概述(包含mysql配置文件配置原理)-学习笔记
查看>>