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
  • 运行还是不成功 - 直接将我的 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-直播的推流与拉流框架相关推荐

  1. PHP关于实现腾讯云直播的推流和拉流

    PHP关于实现腾讯云直播的推流和拉流 步骤如下 注册一个腾讯云账户,搜产品 :云直播,他们应该会送你20G的流量包,测试的时候足够用了: 设置推流域名和播放(拉流)域名: 推流域名腾讯会直接给你分配一 ...

  2. 推流和拉流的概念以及RTMP和HLS协议

    https://www.bbsmax.com/A/x9J2wZM56o/ 推流为将直播内容推送至服务器的过程:拉流为服务器已有直播内容,用指定地址进行拉取的过程. rtmp rtmp是Real Tim ...

  3. 关于直播类app中的推流、拉流技术(转载)

    关于直播类app中的推流.拉流技术 from:https://blog.csdn.net/lzllzllhl/article/details/80249069 图像处理:iOS端一般会用到GPUIma ...

  4. windows下ffmpeg结合Nginx搭建RTMP,直播中的推流和拉流

    windows下ffmpeg结合Nginx搭建RTMP,直播中的推流和拉流 推流和拉流的概念 以及RTMP协议 在直播中,一般需要三个角色:主播,服务器,用户.主播通过推流将数据推到服务器上,而用户可 ...

  5. 直播推流 ffmpeg 拉流二次转发 记录

    因 前两天老大给我发了个任务,说让我做一个flask 服务器接口,接收请求,在请求参数中获取 直播拉流地址和 推流地址,然后调用 ffmpeg 到拉流地址上进行拉流 将拉到的流媒体数据推到另一个直播服 ...

  6. 通过Nginx实现直播软件源码的推流和拉流

    推流和拉流是直播软件源码实现直播的重要步骤,今天我们分析一下如何通过Nginx实现直播软件源码的推拉流. ​ 理论介绍 1.RMTP, Real Time Messaging Protocol 实时消 ...

  7. 关于直播类app中的推流、拉流技术

    虽然直播app在2016年的时候就很火了,但是对于我这样的技术菜逼来说,从来没有真正的去了解过,而对于这方面的技术,我就更是不了解了.由于最近的项目中可能会用到直播之类的功能,所以就赶紧来恶补一下这方 ...

  8. 流媒体之从零实现搭建简单流媒体服务器,推流,拉流播放全景视频

    一.直播与点播 直播:在我的理解中是实时录制的内容,类似各个晚会的实时直播过程,在现场采集图像的同时传输影像到网络上. 点播:是提前录制完成的内容,类似某些直播平台上根据观众的需求播放某些电影或经典电 ...

  9. 【流媒体】推流与拉流简介

    本文目录 一.概念 1.1 推流 1.2 拉流 二.示意图 三.RTMP传输协议 四.流媒体协议与格式 一.概念 话不多说,先了解概念,再看示意图更直观: 1.1 推流 推流:将直播的内容推送至服务器 ...

最新文章

  1. Linux 文件系统及 ext2 文件系统
  2. 线性时间选择问题——分治
  3. 【跃迁之路】【425天】刻意练习系列184—SQL(2018.04.06)
  4. 聚类(中)层次聚类 基于密度的聚类算法
  5. 在ORACLE產生001,002的流水號
  6. 在Session中放HashMap在Jsp中用JSTL遍历方法
  7. wps 宏 禁用_WPS宏被禁用如何打开
  8. 基于LZ77算法和Huffman编码的文件压缩项目
  9. A Neural Algorithm of Artistic Style : Neural Style Transfer with Eager Executon
  10. 申请计算机助理的英语作文,助理面试英文自我介绍范文(通用5篇)
  11. box-sizing属性的的用法
  12. Java 日志框架简介
  13. 概述HTTPS,简单了解对称性加密算法、非对称性加密算法方式
  14. 抖音短视频变现的渠道有哪些
  15. 螺栓扭矩查找表excel下载
  16. 智商情商哪个重要_情商和智商,到底哪个更重要?
  17. 油猴(tampermonkey)脚本安装及使用教程
  18. 关于ios证书不受信任解决办法
  19. 邓仲祥:神奇魅力的太子山
  20. HBase第一天学习

热门文章

  1. slf4j 使用介绍
  2. 如何做到网站排名百战百胜
  3. 计算机应用考试实操试题,计算机应用基础上机操作试题(1)
  4. [Python 爬虫]从eBay页面获取商品高清图片
  5. 19年浙江大学软件学院推免面试总结
  6. python 替换word内容 doc转换成docx
  7. Anaconda卸载
  8. 存款利率下降如何应对
  9. 分享107个HTML电子商务模板,总有一款适合您
  10. python实现五环