美文网首页
快速搭建属于自己的斗鱼TV

快速搭建属于自己的斗鱼TV

作者: Stark_Dylan | 来源:发表于2016-12-30 18:01 被阅读2114次

title: 快速搭建属于自己的斗鱼TV
date: 2016-12-30 13:31:45
tags: 直播
thumbnail: http://img.25pp.com/uploadfile/soft/images/2015/0724/20150724031211421.jpg


让小白也可以快速搭建属于自己的斗鱼TV的教程

简明扼要,开始干活:

  • 打开qiniu.com注册个人开发者帐号
  • 申请直播空间
  • 这里有个坎儿,就是你得有一个备案的域名,域名备案的服务我这里提供,可以找我QQ 958226951

申请之后等待3-7天,就会有结果了,一般不会被拒绝的,你的邮箱会收到一封审核通过的邮件:

再次打开自己的七牛开发者面板,发现顶部有一个黄色的提示,让你马上体验直播,或者点击左侧列表的直播标识也可以进入配置界面。然后就是一系列的简单配置,都是顾名思义的配置,大家自己照着配就好,配置CName是比较重要的环节,共有6个CName需要你配置到自己的已备案域名下。

接下来我们添加一个自己的房间:

名称大家自己随便起,接下来我们记录一下需要记录的一些信息:

这样,七牛这边的工作就完成了,按理说,我们应该准备一台服务器进行房间的创建操作,但是这里为了先让大家跑通流程,就不搞的那么麻烦了,直接手动在这里创建一个拿来用。接下来我们创建两个新的工程用于测试,一个用于推流,另一个用于播放。

推流项目
pod 'PLMediaStreamingKit'

都是有开发经验的人,我也不多说,引入PLMediaStreamingKit作为推流库,接下来进行配置(由于我使用的是Swift,所以这里在桥接文件中引入PLMediaStreamingKit.h):

首先,在使用推流前无比初始化推流环境:

PLStreamingEnv.initEnv()

首先按照官方文档创建一个Stream对象

// 创建流对象
  let stream = PLStream(json: NSDictionary(dictionary: ["id": "helloworld",
                                                        "title": "Hello world",
                                                        "hub" : "leafedu",
                                                        "publishkey": "bbc2d839fbeafa70",
                                                        "publishSecurity": "static",
                                                        "disabled": NSNumber(value: false),
                                                        "profiles": NSArray(objects: "420p", "720p"),
                                                        "hosts": [
                                                          "publish": [
                                                            "rtmp": "rtmp://pili-publish.devdylan.cn/leafedu/helloworld"
                                                          ],
                                                          "live": [
                                                            "hdl": "http://pili-live-hdl.devdylan.cn/leafedu/helloworld.flv",
                                                            "hls": "http://pili-live-hls.devdylan.cn/leafedu/helloworld.m3u8",
                                                            "rtmp": "rtmp://pili-live-rtmp.devdylan.cn/leafedu/helloworld",
                                                            "http": "http://pili-live-hls.devdylan.cn/leafedu/helloworld.m3u8"
                                                          ],
                                                          "playback": [
                                                            "hls": "http://live.devdylan.cn/notification",
                                                            "http": "http://live.devdylan.cn/notification"
                                                          ],
                                                          "play": [
                                                            "http": "http://pili-live-hls.devdylan.cn/leafedu/helloworld.m3u8",
                                                            "rtmp": "rtmp://pili-live-rtmp.devdylan.cn/leafedu/helloworld"
                                                          ]
    ]]) as! [AnyHashable : Any] )

这里的填充的内容是按照PLMediaStreamingKit的开发文档写的示例内容,由于我们没有自己的服务器,所以这里先随便填充一些内容,真正的使用我们刚才创建好的推流地址在后边,接下来创建一些基础的音视频,音视频流配置:

let videoCaptureConfiguration = PLVideoCaptureConfiguration.default()
let audioCaptureConfiguration = PLAudioCaptureConfiguration.default()

let videoStreamingConfiguration = PLVideoStreamingConfiguration.default()
let audioStreamingConfiguration = PLAudioStreamingConfiguration.default()

初始化推流Session并添加一个实时预览:

// 初始化Session
    session = PLMediaStreamingSession(videoCaptureConfiguration: videoCaptureConfiguration, audioCaptureConfiguration: audioCaptureConfiguration, videoStreamingConfiguration: videoStreamingConfiguration, audioStreamingConfiguration: audioStreamingConfiguration, stream: stream)

    // 添加预览
    if let preView = session?.previewView {
      view.addSubview(preView)
    }

自行写一个按钮,在按钮动作中开始推流,这个时候写我们刚刚创建好房间的推流地址

self.session?.startStreaming(withPush: URL(string: "你的以rtmp开头的推流地址")!) {
        print($0)
      }

然后看日志输出,明白人能看的懂。

播放端
pod 'PLPlayerKit'

创建播放器:

let player = PLPlayer(liveWith: URL(string: "rtmp://pili-live-rtmp.devdylan.cn/leafedu/helloworld")!, option: PLPlayerOption.default())

上边是你播放推流的地址

然后添加到view上边,并设置代理:

    // 设置代理
    player?.delegate = self
    if let playView = player?.playerView {
      view.addSubview(playView)
    }

接下来,实现代理方法:

func player(_ player: PLPlayer, statusDidChange state: PLPlayerStatus) {

  }

  func player(_ player: PLPlayer, stoppedWithError error: Error?) {
    print(error?.localizedDescription ?? "444")
  }

  func player(_ player: PLPlayer, codecError error: Error) {
    print(error.localizedDescription )
  }

第一个方法是状态发生变化的时候,后两个是遇到错误的时候,同样,自己添加一个按钮控制开始播放,播放的代码为:

self.player?.play()
测试

打开推流端,点击推流按钮开始推流,在播放端点击开始播放,就会看到直播已经建立了起来。在测试前需要注意的事项:

  • Xcode权限的申请

我们需要申请Camera以及MicroPhone的隐私权限:

包括ATS,网络的权限,接下来大家就可以测试了,在测试的过程中,可以在七牛的开发者平台查看实时信息:

可以在创建直播服务是绑定的空间内查看到直播的记录文件,保存的时长依你创建是选择的为准。
这样,我们大概用20分钟的时间就打通了直播流程。接下来按照业务需求搭建自己服务器通过七牛直播服务端SDK创建房间等等的事情交给大家自己了。

配置

Pili为大家提供了整套的移动视频直播SDK(Android与iOS),PLMediaStreamingKit同样提供了高阶的一些使用,比如说美颜,声音混响等操作。这里是一份开发指南,大家可以细阅,可以达到80%的业务需求。

相关文章

  • 快速搭建属于自己的斗鱼TV

    title: 快速搭建属于自己的斗鱼TVdate: 2016-12-30 13:31:45tags: 直播thum...

  • 斗鱼 tv

    今天看了一篇斗鱼的报道,感慨年轻人的世界,虽然也是90后,也是产品经理,却觉得要与时代脱轨,首先要入流。 游戏视频...

  • 直播领域的用户调研报告

    一、调研背景和目的 公司目前正在布局直播领域,打算做一款游戏类的直播产品,类似斗鱼TV、战旗TV。本次调研属于...

  • 斗鱼

    斗鱼tv是一家弹幕式直播分享网站,为用户提供视频直播和赛事直播服务。斗鱼tv的前身为AXFUN生放送直播,...

  • 斗鱼TV(App)

    App标题:斗鱼-热门高清游戏直播平台-体育赛事户外直播-娱乐直播平台 slogan:每个人的直播平台(响应新上线...

  • 听斗鱼CEO谈创业经历

    斗鱼TV是一家弹幕式直播分享网站,为用户提供视频直播和赛事直播服务。斗鱼TV的前身为ACFUN生放送直播,于201...

  • 先睹为快:斗鱼TV上市路演PPT曝光了

    斗鱼TV是一家弹幕式直播分享网站,为用户提供视频直播和赛事直播服务。斗鱼TV的前身为ACFUN生放送直播,于201...

  • 斗鱼

    斗鱼TV是一家弹幕式直播分享网站,是国内直播分享网站中的一员。 2016年3月15日,斗鱼TV宣布获得腾讯领投的B...

  • 2018武汉国际斗鱼节,泛娱乐的盛宴,文娱产业的新风口!

    现在直播行业发展进入了高速发展的阶段,三月份国内两大直播平台斗鱼TV和虎牙TV又完成了融资,即将上市。上年的斗鱼嘉...

  • 如何快速搭建属于自己的个性网站?

    title: 如何快速搭建属于自己的个性网站?tags: 流弊技能keywords: 建站,博客,搭建网站,云建站...

网友评论

      本文标题:快速搭建属于自己的斗鱼TV

      本文链接:https://www.haomeiwen.com/subject/qjnmvttx.html