iOS-直播的推流与拉流框架
iOS-直播的推流与拉流框架
- 前言
- 前期准备:搭建基于RTMP的本地Nginx服务器和VLC安装
- 搭建基于RTMP的本地Nginx服务器
- VLC安装(此步骤可在集成完LFLiveKit和IJKPlayer后才做,可以先安装软件)
- 集成bilibili / IJKPlayer 拉流三方
- 集成LFLiveKit 推流三方
前言
- 关于直播技术的推流:LFLiveKit和IJKPlayer的基本集成和使用
- 集成后的demo下载
前期准备:搭建基于RTMP的本地Nginx服务器和VLC安装
搭建基于RTMP的本地Nginx服务器
- 第一步:查看brew有没有安装 终端输入如下:
man brew
- 如果有,如下图,直接跳到第二步,可直接在终端输入
wq
退出
- 如果没有安装,则在终端输入以下命令安装
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 如果有,如下图,直接跳到第二步,可直接在终端输入
- 第二步:先clone nginx项目到本地 终端输入如下:
brew tap homebrew/nginx
- 报错如下:
- 报错如下:
- 出现的原因是homebrew/nginx的git路径变了(貌似是2018年3月更新),查找得到把克隆到本地的命令更改后可解决,在终端再输入如下:
brew tap denji/homebrew-nginx
- 第三步:克隆成功,安装Nginx 终端输入如下:
brew install nginx-full --with-rtmp-module
- 如果报错,如下图,执行第四步,如果没有报错也执行一下第四步
- 第四步:克隆成功,安装Nginx 终端输入如下:
brew unlink nginx
- 第五步:启动Nginx 终端输入如下:
nginx
- 在你的浏览器输入 http://192.168.1.105:8080(192.168.1.105为本机IP地址) ,显示如下图则成功,如果不成功请百度搜索:8080端口被占用
- 如何查看当前电脑的ip地址
- 第六步:搜索nginx.conf
- 在终端 按住 Command+F 搜索 nginx.conf
- 第七步:打开nginx.conf - 回到桌面按住 Shift+Command+G 前往 nginx.conf (终端不要关闭,不然会重新来)
- 第八步:选择文本编辑打开 nginx.conf ,并且输入
- 1.配置Nginx,支持rtmp协议推流,将如下代码插入,如下图
rtmp {server {listen 1935;application rtmplive {live on;max_connections 1024;}application hls{live on;hls on;hls_path /usr/local/var/www/hls;hls_fragment 1s;}}
}
- 2.配置Nginx,支持http协议拉流,将如下代码插入,如下图
location /hls {#Serve HLS configtypes {application/vnd.apple.mpegurl m3u8;video/mp2t ts;}root /usr/local/var/www;add_header Cache-Control no-cache;}
- 第九步:最后一步,重启nginx 终端输入如下:
nginx -s reload
- 在此本地推流的工作完成,暂时不支持外网推流
VLC安装(此步骤可在集成完LFLiveKit和IJKPlayer后才做,可以先安装软件)
- 百度搜索 VLC
- 使用VLC:rtmp://192.168.1.105:1935/rtmplive/room (192.168.1.105为本机IP地址)
- rtmp://192.168.1.105:1935/rtmplive/room (192.168.1.105为本机IP地址) 将此复制进去,点击open,等待一会儿即可
集成bilibili / IJKPlayer 拉流三方
- github 搜索IJKPlayer,下载完成后,打开
- 运行肯定不成功
- 第一步在 终端输入,等待ffmpeg安装:
cd ijkplayer-master
./init-ios.sh
- 第二步 成功后,终端输入:
cd ios
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all
- 第一步在 终端输入,等待ffmpeg安装:
- 运行还是不成功 - 直接将我的 IJKMediaFramework.framework 拿出来即可
- 在工程中加入以下framework,并且将 IJKMediaFramework.framework 移到工程中
AudioToolbox.framework
AVFoundation.framework
CoreGraphics.framework
CoreMedia.framework
CoreVideo.framework
libbz2.tbd
libz.tbd
MediaPlayer.framework
MobileCoreServices.framework
OpenGLES.framework
QuartzCore.framework
UIKit.framework
VideoToolbox.framework
- 如果不够详细,百度ijkplayer的集成即可
集成LFLiveKit 推流三方
- 直接在pod中 输入即可集成:
pod 'LFLiveKit'
- 在info.plist 中输入
<key>NSCameraUsageDescription</key>
<string>打开相机</string><key>NSMicrophoneUsageDescription</key>
<string>打开麦克风</string>
- 直接使用直播 本地直播rtmp://192.168.1.105:1935/rtmplive/room (192.168.1.105为本机IP地址) 即可,在本文VLC安装 中有
iOS-直播的推流与拉流框架相关推荐
- PHP关于实现腾讯云直播的推流和拉流
PHP关于实现腾讯云直播的推流和拉流 步骤如下 注册一个腾讯云账户,搜产品 :云直播,他们应该会送你20G的流量包,测试的时候足够用了: 设置推流域名和播放(拉流)域名: 推流域名腾讯会直接给你分配一 ...
- 推流和拉流的概念以及RTMP和HLS协议
https://www.bbsmax.com/A/x9J2wZM56o/ 推流为将直播内容推送至服务器的过程:拉流为服务器已有直播内容,用指定地址进行拉取的过程. rtmp rtmp是Real Tim ...
- 关于直播类app中的推流、拉流技术(转载)
关于直播类app中的推流.拉流技术 from:https://blog.csdn.net/lzllzllhl/article/details/80249069 图像处理:iOS端一般会用到GPUIma ...
- windows下ffmpeg结合Nginx搭建RTMP,直播中的推流和拉流
windows下ffmpeg结合Nginx搭建RTMP,直播中的推流和拉流 推流和拉流的概念 以及RTMP协议 在直播中,一般需要三个角色:主播,服务器,用户.主播通过推流将数据推到服务器上,而用户可 ...
- 直播推流 ffmpeg 拉流二次转发 记录
因 前两天老大给我发了个任务,说让我做一个flask 服务器接口,接收请求,在请求参数中获取 直播拉流地址和 推流地址,然后调用 ffmpeg 到拉流地址上进行拉流 将拉到的流媒体数据推到另一个直播服 ...
- 通过Nginx实现直播软件源码的推流和拉流
推流和拉流是直播软件源码实现直播的重要步骤,今天我们分析一下如何通过Nginx实现直播软件源码的推拉流. 理论介绍 1.RMTP, Real Time Messaging Protocol 实时消 ...
- 关于直播类app中的推流、拉流技术
虽然直播app在2016年的时候就很火了,但是对于我这样的技术菜逼来说,从来没有真正的去了解过,而对于这方面的技术,我就更是不了解了.由于最近的项目中可能会用到直播之类的功能,所以就赶紧来恶补一下这方 ...
- 流媒体之从零实现搭建简单流媒体服务器,推流,拉流播放全景视频
一.直播与点播 直播:在我的理解中是实时录制的内容,类似各个晚会的实时直播过程,在现场采集图像的同时传输影像到网络上. 点播:是提前录制完成的内容,类似某些直播平台上根据观众的需求播放某些电影或经典电 ...
- 【流媒体】推流与拉流简介
本文目录 一.概念 1.1 推流 1.2 拉流 二.示意图 三.RTMP传输协议 四.流媒体协议与格式 一.概念 话不多说,先了解概念,再看示意图更直观: 1.1 推流 推流:将直播的内容推送至服务器 ...
最新文章
- Linux 文件系统及 ext2 文件系统
- 线性时间选择问题——分治
- 【跃迁之路】【425天】刻意练习系列184—SQL(2018.04.06)
- 聚类(中)层次聚类 基于密度的聚类算法
- 在ORACLE產生001,002的流水號
- 在Session中放HashMap在Jsp中用JSTL遍历方法
- wps 宏 禁用_WPS宏被禁用如何打开
- 基于LZ77算法和Huffman编码的文件压缩项目
- A Neural Algorithm of Artistic Style : Neural Style Transfer with Eager Executon
- 申请计算机助理的英语作文,助理面试英文自我介绍范文(通用5篇)
- box-sizing属性的的用法
- Java 日志框架简介
- 概述HTTPS,简单了解对称性加密算法、非对称性加密算法方式
- 抖音短视频变现的渠道有哪些
- 螺栓扭矩查找表excel下载
- 智商情商哪个重要_情商和智商,到底哪个更重要?
- 油猴(tampermonkey)脚本安装及使用教程
- 关于ios证书不受信任解决办法
- 邓仲祥:神奇魅力的太子山
- HBase第一天学习