CN108337283B - 一种iOS推流中获取最优推流节点的方法 - Google Patents

一种iOS推流中获取最优推流节点的方法 Download PDF

Info

Publication number
CN108337283B
CN108337283B CN201710047182.1A CN201710047182A CN108337283B CN 108337283 B CN108337283 B CN 108337283B CN 201710047182 A CN201710047182 A CN 201710047182A CN 108337283 B CN108337283 B CN 108337283B
Authority
CN
China
Prior art keywords
node
optimal
speed measurement
librtmp
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710047182.1A
Other languages
English (en)
Other versions
CN108337283A (zh
Inventor
尹召青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chuangsheng Shilian Digital Technology Beijing Co Ltd
Original Assignee
Chuangsheng Shilian Digital Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chuangsheng Shilian Digital Technology Beijing Co Ltd filed Critical Chuangsheng Shilian Digital Technology Beijing Co Ltd
Priority to CN201710047182.1A priority Critical patent/CN108337283B/zh
Publication of CN108337283A publication Critical patent/CN108337283A/zh
Application granted granted Critical
Publication of CN108337283B publication Critical patent/CN108337283B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/437Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44245Monitoring the upstream path of the transmission network, e.g. its availability, bandwidth

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种iOS推流中获取最优推流节点的方法,在主播用iOS手机直播前,从分布在全国各地的众多服务器节点中选择响应当前主播手机最快的最优节点,把流推到最优节点上,从而使直播尽可能的流畅,画面清晰;本发明能够减少主播的操作,程序内部会自动找到最优的推流服务器节点;同时采用异步测速,同时测多个节点的速度,减少了整体节点的测速时间;另外,过了超时时间可以立马得出最优节点是哪个,不用等待每一个节点的测速结果返回再确定哪个是最优节点。

Description

一种iOS推流中获取最优推流节点的方法
技术领域
本发明涉及网络服务器技术领域,具体为一种iOS推流中获取最优推流节点的方法。
背景技术
iOS移动端直播当下非常火爆,花椒,映客等iOS推流技术已经相当成熟,主播们可能位于全国各地,服务器的节点也可能分布于全国各地,当主播们开始推流的时候,首先要选择最优的服务器节点,这样才能保证视频流传输的流畅性,最优节点也就是所有服务器节点当中响应速度最快的节点,本篇专利就是讲述获取最优节点的方法。
现有技术中,由iOS客户端列出所有服务器节点,让主播自己选择离自己所在地最近的节点进行推流。现有技术的缺点:1.给主播的使用增加了一定的复杂性;2.主播不一定准确的知道哪个节点离自己所在地最近,因而可能造成误选,继而造成直播卡顿以及直播画面不清晰等恶劣后果。
发明内容
本发明的目的在于提供一种iOS推流中获取最优推流节点的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种iOS推流中获取最优推流节点的方法,包括以下步骤:
A、获取要进行测速的服务器节点列表,并放入一个数组中;
B、定义一个测速的最优结果的数组下标为0,此为默认的测速最优节点的数组下标值,最优测速响应时间设置为10000000毫秒;
C、创建global队列;
D、遍历所有的要测速的服务器节点列表。
优选的,所述步骤D中遍历所有的要测速的服务器节点列表包括以下步骤:
a、要使用到librtmp类库,用到的类名为LibRtmpSession,用测速节点的url构造librtmp类对象;
b、之后用步骤C中队列queue来创建异步线程;
c、获取当前时间,然后调用libRtmp的Connect方法启动libRtmp的连接;
d、之后调用libRtmp的IsConnected方法判断Rtmp是否连接成功,如果连接成功,就获取当前的时间,把当前的时间减去步骤c中获取的时间,差值就是连接rtmp所用的时间;
e、将步骤d中的差值时间和最优测速响应时间做对比,如果小于最优测速响应时间,则把步骤d中的差值时间设置为最优测速响应时间,再把此节点的数组下标值设置为测速最优节点的下标值
f、调用libRtmp的DisConnect方法关闭libRtmp连接,清空释放相应的libRtmp对象
g、如果某个节点0.5秒还没有连接成功的话,就认为此节点连接超时,表明该主播不适合往此节点上推流。
与现有技术相比,本发明的有益效果是:本发明能够减少主播的操作,程序内部会自动找到最优的推流服务器节点;同时采用异步测速,同时测多个节点的速度,减少了整体节点的测速时间;另外,过了超时时间可以立马得出最优节点是哪个,不用等待每一个节点的测速结果返回再确定哪个是最优节点;在主播用iOS手机直播前,从分布在全国各地的众多服务器节点中选择响应当前主播手机最快的最优节点,把流推到最优节点上,从而使直播尽可能的流畅,画面清晰。
附图说明
图1为本发明的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明提供一种技术方案:一种iOS推流中获取最优推流节点的方法,包括以下步骤:
A、获取要进行测速的服务器节点列表,并放入一个数组中;
B、定义一个测速的最优结果的数组下标为0,此为默认的测速最优节点的数组下标值,最优测速响应时间设置为10000000毫秒;
C、创建global队列;
D、遍历所有的要测速的服务器节点列表。
本实施例中,步骤D中遍历所有的要测速的服务器节点列表包括以下步骤:
a、要使用到librtmp类库,用到的类名为LibRtmpSession,用测速节点的url构造librtmp类对象;
b、之后用步骤C中队列queue来创建异步线程;
c、获取当前时间,然后调用libRtmp的Connect方法启动libRtmp的连接;
d、之后调用libRtmp的IsConnected方法判断Rtmp是否连接成功,如果连接成功,就获取当前的时间,把当前的时间减去步骤c中获取的时间,差值就是连接rtmp所用的时间;
e、将步骤d中的差值时间和最优测速响应时间做对比,如果小于最优测速响应时间,则把步骤d中的差值时间设置为最优测速响应时间,再把此节点的数组下标值设置为测速最优节点的下标值
f、调用libRtmp的DisConnect方法关闭libRtmp连接,清空释放相应的libRtmp对象
g、如果某个节点0.5秒还没有连接成功的话,就认为此节点连接超时,表明该主播不适合往此节点上推流。
把最优测速响应时间设置为0毫秒,因为已经记录下来0.5秒之内的测速最优节点,所以0.5秒之后把最优测速响应时间设置为0毫秒的话,那么所有响应时间大于0.5秒的服务器节点都不可能成为最优测速节点了。
本发明能够减少主播的操作,程序内部会自动找到最优的推流服务器节点;同时采用异步测速,同时测多个节点的速度,减少了整体节点的测速时间;另外,过了超时时间可以立马得出最优节点是哪个,不用等待每一个节点的测速结果返回再确定哪个是最优节点;在主播用iOS手机直播前,从分布在全国各地的众多服务器节点中选择响应当前主播手机最快的最优节点,把流推到最优节点上,从而使直播尽可能的流畅,画面清晰。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (1)

1.一种iOS推流中获取最优推流节点的方法,其特征在于:包括以下步骤:
A、获取要进行测速的服务器节点列表,并放入一个数组中;
B、定义一个测速的最优结果的数组下标为0,此为默认的测速最优节点的数组下标值,最优测速响应时间设置为10000000毫秒;
C、创建global队列;
D、遍历所有的要测速的服务器节点列表;
其中,所述遍历所有的要测速的服务器节点列表包括:
a、要使用到librtmp类库,用到的类名为LibRtmpSession,用测速节点的url构造librtmp类对象;
b、之后用步骤C中队列queue来创建异步线程;
c、获取当前时间,然后调用libRtmp的Connect方法启动libRtmp的连接;
d、之后调用libRtmp的IsConnected方法判断Rtmp是否连接成功,如果连接成功,就获取当前的时间,把当前的时间减去步骤c中获取的时间,差值就是连接rtmp所用的时间;
e、将步骤d中的差值时间和最优测速响应时间做对比,如果小于最优测速响应时间,则把步骤d中的差值时间设置为最优测速响应时间,再把此节点的数组下标值设置为测速最优节点的下标值;
f、调用libRtmp的DisConnect方法关闭libRtmp连接,清空释放相应的libRtmp对象;
g、如果某个节点0.5秒还没有连接成功的话,就认为此节点连接超时,表明该主播不适合往此节点上推流。
CN201710047182.1A 2017-01-20 2017-01-20 一种iOS推流中获取最优推流节点的方法 Active CN108337283B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710047182.1A CN108337283B (zh) 2017-01-20 2017-01-20 一种iOS推流中获取最优推流节点的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710047182.1A CN108337283B (zh) 2017-01-20 2017-01-20 一种iOS推流中获取最优推流节点的方法

Publications (2)

Publication Number Publication Date
CN108337283A CN108337283A (zh) 2018-07-27
CN108337283B true CN108337283B (zh) 2022-04-15

Family

ID=62921589

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710047182.1A Active CN108337283B (zh) 2017-01-20 2017-01-20 一种iOS推流中获取最优推流节点的方法

Country Status (1)

Country Link
CN (1) CN108337283B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110912820B (zh) * 2019-10-30 2021-08-06 深圳马可孛罗科技有限公司 分布式路由方法、分布式路由装置及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101005606A (zh) * 2006-12-31 2007-07-25 华为技术有限公司 一种减少媒体播放延时的方法和装置
KR20100084052A (ko) * 2009-01-15 2010-07-23 전자부품연구원 연관 콘텐츠 수신 장치, 연관 콘텐츠 제공 장치 및 그를 이용한 연관 콘텐츠 전송 시스템
CN104135672A (zh) * 2014-08-13 2014-11-05 浪潮软件集团有限公司 一种基于hls实现视频点播无缝容灾的方法
CN105721585A (zh) * 2016-02-24 2016-06-29 深圳羚羊极速科技有限公司 一种内容分发网络中边缘节点的优选方法
CN105721484A (zh) * 2016-03-04 2016-06-29 网宿科技股份有限公司 一种流媒体的转推方法、***及具有该***的服务器
CN106231365A (zh) * 2016-08-18 2016-12-14 北京斗牛科技有限公司 一种调度方法和***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101005606A (zh) * 2006-12-31 2007-07-25 华为技术有限公司 一种减少媒体播放延时的方法和装置
KR20100084052A (ko) * 2009-01-15 2010-07-23 전자부품연구원 연관 콘텐츠 수신 장치, 연관 콘텐츠 제공 장치 및 그를 이용한 연관 콘텐츠 전송 시스템
CN104135672A (zh) * 2014-08-13 2014-11-05 浪潮软件集团有限公司 一种基于hls实现视频点播无缝容灾的方法
CN105721585A (zh) * 2016-02-24 2016-06-29 深圳羚羊极速科技有限公司 一种内容分发网络中边缘节点的优选方法
CN105721484A (zh) * 2016-03-04 2016-06-29 网宿科技股份有限公司 一种流媒体的转推方法、***及具有该***的服务器
CN106231365A (zh) * 2016-08-18 2016-12-14 北京斗牛科技有限公司 一种调度方法和***

Also Published As

Publication number Publication date
CN108337283A (zh) 2018-07-27

Similar Documents

Publication Publication Date Title
CN105120299B (zh) 视频推送方法和装置
CN108737405B (zh) 一种对直播视频流进行导流的方法、ccl服务器和***
CN105933375B (zh) 一种连麦会话的监测方法、装置和服务器
US20180167689A1 (en) Video Studio Creating Method and Service Device
CN108259948B (zh) 一种直播音视频的播放方法、装置、计算机及存储介质
CN107071502B (zh) 视频播放方法和装置
CN106453231B (zh) 信令获取、传输方法和装置
CN111385666B (zh) 通信链路建立方法、装置、设备及存储介质
CN113423008B (zh) 视频数据传输方法、服务器和观众侧设备
CN110996180B (zh) 一种网络直播聊天方法、***及服务器
CN105338564B (zh) 一种客户端适配方法、客户端、服务器以及***
CN105791987B (zh) 媒体数据播放的方法及终端
CN108337283B (zh) 一种iOS推流中获取最优推流节点的方法
CN109525852B (zh) 直播视频流处理方法、装置、***及计算机可读存储介质
CN105430442A (zh) 多媒体设备音频语言设置方法和***
WO2015035934A1 (en) Methods and systems for facilitating video preview sessions
CN108650310B (zh) 一种服务发现方法
CN113673731A (zh) 一种会议场景生成方法和装置
CN104243469A (zh) 一种控制播放的方法、装置及***
CN111781848A (zh) 一种基于智能家居设备的服务器连接方法、装置及***
CN113573114B (zh) 一种投屏方法、装置、电子设备及存储介质
CN108076381B (zh) 视频显示方法、视频转发设备及***
CN109168039A (zh) Android***的码流清晰度切换方法、装置、终端及可读介质
CN115720121A (zh) 设备联动实时播报方法、装置、存储介质、计算机设备
CN103313124A (zh) 本地录制业务的实现方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant