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

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

Info

Publication number
CN108337283A
CN108337283A CN201710047182.1A CN201710047182A CN108337283A CN 108337283 A CN108337283 A CN 108337283A CN 201710047182 A CN201710047182 A CN 201710047182A CN 108337283 A CN108337283 A CN 108337283A
Authority
CN
China
Prior art keywords
node
speed
optimal
plug
librtmp
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.)
Granted
Application number
CN201710047182.1A
Other languages
English (en)
Other versions
CN108337283B (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.)
Johnsen Shilian Digital Technology (beijing) Co Ltd
Original Assignee
Johnsen 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 Johnsen Shilian Digital Technology (beijing) Co Ltd filed Critical Johnsen 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

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 (2)

1.一种iOS推流中获取最优推流节点的方法,其特征在于:包括以下步骤:
A、获取要进行测速的服务器节点列表,并放入一个数组中;
B、定义一个测速的最优结果的数组下标为0,此为默认的测速最优节点的数组下标值,最优测速响应时间设置为10000000毫秒;
C、创建global队列;
D、遍历所有的要测速的服务器节点列表。
2.根据权利要求1所述的一种iOS推流中获取最优推流节点的方法,其特征在于:所述步骤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 true CN108337283A (zh) 2018-07-27
CN108337283B 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)

Cited By (1)

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

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实现视频点播无缝容灾的方法
CN105721484A (zh) * 2016-03-04 2016-06-29 网宿科技股份有限公司 一种流媒体的转推方法、系统及具有该系统的服务器
CN105721585A (zh) * 2016-02-24 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 北京斗牛科技有限公司 一种调度方法和系统

Cited By (1)

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

Also Published As

Publication number Publication date
CN108337283B (zh) 2022-04-15

Similar Documents

Publication Publication Date Title
US10757050B2 (en) System and method for topic based segregation in instant messaging
CN105120299B (zh) 视频推送方法和装置
CN105933375B (zh) 一种连麦会话的监测方法、装置和服务器
CN106851427B (zh) 一种游戏直播视频的传输控制方法以及装置
CN103945240B (zh) 一种基于视频聚合的视频播放方法及装置
CN104519124B (zh) 一种虚拟资源的分配方法以及装置
CN105915944A (zh) 一种视频共享方法及装置
CN109428784B (zh) 网络探测方法及装置、计算机存储介质及设备
US11259063B2 (en) Method and system for setting video cover
CN108174305A (zh) 直播聊天室的消息处理方法及装置
CN105099860B (zh) 即时通讯中进行实时互动的方法、系统及客户端
CN106412192B (zh) 一种移动终端测试方法及其系统
CN109168059A (zh) 一种在不同设备上分别播放音频与视频的唇音同步方法
CN106028088B (zh) 媒体数据的插入方法和装置
CN103281566B (zh) 一种视频切换的方法及装置
CN104333769B (zh) 一种视频直播的方法以及装置
Chang et al. A tale of three videoconferencing applications: Zoom, Webex, and Meet
CN108337283A (zh) 一种iOS推流中获取最优推流节点的方法
US20150156326A1 (en) Communication Method and User Equipment
CN105141882B (zh) 一种显示控制方法及装置
Wuttidittachotti et al. QoE of social network applications: A study of VoIP quality from Skype vs LINE over 3G and 4G
KR20070018269A (ko) 다지점 영상 회의 제어장치, 이를 이용한 영상 회의 서비스확장 시스템 및 그 방법
CN103313124B (zh) 本地录制业务的实现方法和装置
CN108076381B (zh) 视频显示方法、视频转发设备及系统
CN113543262B (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