CN114827636A - 一种视频播放异常的诊断方法及相关装置 - Google Patents
一种视频播放异常的诊断方法及相关装置 Download PDFInfo
- Publication number
- CN114827636A CN114827636A CN202110062183.XA CN202110062183A CN114827636A CN 114827636 A CN114827636 A CN 114827636A CN 202110062183 A CN202110062183 A CN 202110062183A CN 114827636 A CN114827636 A CN 114827636A
- Authority
- CN
- China
- Prior art keywords
- abnormal
- diagnosis
- information
- playing
- function
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 99
- 230000002159 abnormal effect Effects 0.000 claims abstract description 157
- 238000003745 diagnosis Methods 0.000 claims abstract description 129
- 230000005856 abnormality Effects 0.000 claims abstract description 55
- 230000008569 process Effects 0.000 claims abstract description 38
- 230000006870 function Effects 0.000 claims description 154
- 238000004590 computer program Methods 0.000 claims description 15
- 238000007726 management method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000002405 diagnostic procedure Methods 0.000 description 3
- 238000013024 troubleshooting Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/241—Operating system [OS] processes, e.g. server setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/442—Monitoring 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
Abstract
本发明提供了一种视频播放异常的诊断方法及相关设备,属于计算机技术领域,为了解决现有的视频播放过程出现播放异常时,诊断过程耗时较多,导致诊断效率较低的问题。方法包括:当检测到播放异常时,通过目标接口调用诊断函数,所述诊断函数用于对当前存在播放异常的直播间执行在线诊断;根据所述诊断函数获取播放异常参数,所述播放异常参数包括地址信息、推流码信息以及播放清晰度信息;根据所述播放异常参数生成诊断信息。
Description
技术领域
本发明涉及计算机技术领域,尤其是涉及一种视频播放异常的诊断方法及相关装置。
背景技术
在使用网络直播间收看直播的过程,有时会出现“拉流”失败的问题。所谓“拉流”是指在通过直播间的播放器播放视频流的过程中由于某种原因导致视频流获取失败的问题,例如,由于服务器的视频流的地址异常或者用户的网络状态较差等原因都会导致“拉流”失败。而从用户角度来看,当出现“拉流”失败的问题时,当前屏幕画面也会出现视频播放异常的现象,例如黑屏等情况。因此,在直播网站或平台播放直播视频的过程中,“拉流”失败的问题会直接影响用户的体验。
目前,在解决“拉流”失败的过程中,技术人员为了诊断这种视频播放异常情况的过程中,一般是通过服务器获取用户端中的日志,并基于该日志进行异常原因的诊断。然而,在实际应用中,现有的视频播放异常的诊断过程依赖于用户端的日志,而由于日志中保存了用户操作的大量数据,这就导致在诊断时需要消耗大量的时间,从而影响诊断效率。
发明内容
本发明的目的在于提供一种视频播放异常的诊断方法,能够通过目标接口调用的诊断函数对播放异常的直播间进行异常参数的获取,并基于异常参数生成诊断信息,从而实现了对播放异常的直播间进行在线诊断的效果,与现有技术相比,无需从用户端的日志进行排查,从而减少了诊断过程中所需分析的数据量,减少了诊断时所需时长,能够提高诊断效率。
第一方面,本发明提供一种视频播放异常的诊断方法包括以下步骤:
当检测到播放异常时,通过目标接口调用诊断函数,所述诊断函数用于对当前存在播放异常的直播间执行在线诊断;
根据所述诊断函数获取播放异常参数,所述播放异常参数包括地址信息、推流码信息以及播放清晰度信息;
根据所述播放异常参数生成诊断信息。
可选的,所述根据所述诊断函数获取播放异常参数包括:
通过视频流信息获取地址信息,其中,所述视频流信息是基于第一预设函数从直播间播放器的配置信息获取的。
可选的,所述根据所述诊断函数获取播放异常参数包括:
通过直播间标识获取推流码信息,其中,所述直播间标识是基于第二预设函数从直播间配置信息获取。
可选的,在所述当检测到播放异常时,通过目标接口调用诊断函数之前,所述方法还包括:
检测所述直播间在播放视频时是否存在异常标识,其中,所述异常标识包括地址异常标识、加载异常标识、播放异常标识,所述地址异常标识用于表征视频流地址异常,所述加载异常标识用于表征视频流加载失败或视频流地址加载超时,所述播放异常标识用于表征播放过程卡顿。
所述当检测到播放异常时,通过目标接口调用诊断函数,包括:
若检测到所述异常标识,则通过目标接口调用诊断函数。
可选的,在所述根据所述播放异常参数生成诊断信息之后,所述方法还包括:
通过所述播放器的配置信息确定播放器对象,并获取直播间配置信息,所述播放器对象是基于预设第三函数通过播放器标识获取的,所述播放器对象中包含有所述直播间在播放视频时的第一视频流地址;
根据所述直播间配置信息将第二视频流地址更新所述播放器对象中的第一视频流地址。
可选的,所述根据所述播放异常参数生成诊断信息包括:
将所述播放异常参数添加到诊断信息模板中,得到所述诊断信息,所述诊断信息模板是通过诊断管理类获取的。
可选的,所述目标接口包括:
box_callerWithCheckSelector(DYPBDiagnosisModuleInterfaceProtocol,@selector(recordPlaybackError:),recordPlaybackError:playbackErrorNumber);
所述通过目标接口调用诊断函数,包括:
通过box_callerWithCheckSelector指令从目标接口中调用recordPlaybackError诊断函数,其中,所述目标接口遵从于DYPBDiagnosisModuleInterfaceProtocol接口类,@selector用于表征函数地址,所述recordPlaybackError诊断函数用于基于代码层获取播放异常参数。
本发明提供的一种视频播放异常的诊断方法及相关装置,能够当检测到播放异常时,通过目标接口调用诊断函数;然后,根据所述诊断函数获取播放异常参数;最后,根据所述播放异常参数生成诊断信息,从而实现了一种能够在线对直播间中视频播放异常时的诊断功能。在上述方案中,所述诊断函数用于对当前存在播放异常的直播间执行在线诊断,且所述播放异常参数包括地址信息、推流码信息以及播放清晰度信息,这就可以确保在直播间中存在视频播放异常的问题时,能够基于该诊断函数在线获取异常参数,并基于异常参数进行诊断信息的生成,从而在诊断过程中无需从用户端生成的日志中进行诊断,而众所周知日志中的数据明显要多于在线时直播间中生成的数据量,这就可以确保诊断过程中减少诊断所需排查的数据量,减少诊断时间,继而提高诊断效率。同时,由于现有的基于用户日志进行诊断的过程中,用户日志都是基于用户发现异常后上报服务器或服务器检测出异常后进行获取的,也就是说现有的诊断方法必然依赖于视频播放异常后生成了对应的记录后才能执行诊断,而本发明的方法由于可以在线进行诊断,也就是说当直播间出现了播放异常的情况即可直接诊断,无需等待日志中记录的过程,从而确保了诊断能够及时进行,继而确保了后续能够基于诊断结果及时执行后续处理。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种视频播放异常的诊断方法流程图;
图2为本发明实施例提供的一种视频播放异常的诊断装置的实施例示意图;
图3为本申请实施例提供的一种电子设备的实施例示意图;
图4为本申请实施例提供的一种计算机可读存储介质的实施例示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
如图1所示,本发明实施例提供的一种视频播放异常的诊断方法包括以下步骤:
101、当检测到播放异常时,通过目标接口调用诊断函数。
其中,所述诊断函数用于对当前存在播放异常的直播间执行在线诊断,
由于在直播间播放视频时会由于种种异常情况导致播放失败,因此,在本实施例中可以在检测到播放异常时,直接利用目标接口来调用进行诊断所需的诊断函数。其中,该诊断函数可以理解为预先封装于目标接口的函数。这样,在发现播放异常时,能够直接基于目标接口进行调用,减少设置诊断函数的过程。同时,该目标接口可以是一个自定义的公共的对外接口,从而可以基于该目标接口在需要诊断时进行调用,从而实现多次调用的功能。
在一些实施例中,步骤101中的目标接口可以包括:
box_callerWithCheckSelector(DYPBDiagnosisModuleInterfaceProtocol,@selector(recordPlaybackError:),recordPlaybackError:playbackErrorNumber);
其中,box_callerWithCheckSelector是诊断函数的接口调用指令,这个指令内部是诊断函数的宏命令,同时DYPBDiagnosisModuleInterfaceProtocol是目标接口所遵守的接口类,而recordPlaybackError是诊断函数,可以记录异常参数并上报服务器,@selector是目标接口中函数的地址,另外,recordPlaybackError诊断函数还可以在获取到异常参数后能够反馈一个异常码信息,该异常码信息的数据类型为int型(整型)。该诊断函数可以为内置于系统内的系统函数,通过调用接口直接进行调用执行诊断功能,同时基于该函数内部设置,可以在获取到异常参数后反馈一个值,即所述异常代码信息用以表征获取到了所需的异常参数。
基于此,步骤101中通过目标接口调用诊断函数的过程,在执行时具体为:通过box_callerWithCheckSelector指令从目标接口中调用recordPlaybackError诊断函数。
这样,由于诊断函数可以基于目标接口直接调用,也就是说可以预先设置该诊断函数,而无需每次执行本示例所述的方法时再进行创建,节省了诊断过程所需的时间,提高了诊断效率。另外,由于诊断函数是预先设置的,在需要使用时直接利用目标接口调用即可,因此用户还可以根据自身的需要调整和设置该诊断函数,即可以根据需要对系统内置的诊断函数进行调整,且不影响调用,从而使本示例所述的诊断方法能够满足不同场景下的需求,改善了适用范围。
在一些实施例中,由于本实施例所述的方法是基于检测到播放异常的情况后执行的,因此为了确保及时诊断,在步骤101当检测到播放异常时,通过目标接口调用诊断函数之前,还可以对播放异常的情况进行分类和识别,从而确保及时发现异常并执行后续诊断,由此本实施例在执行101之前,所述方法还可以包括:检测所述直播间在播放视频时是否存在异常标识。
其中,所述异常标识包括地址异常标识、加载异常标识、播放异常标识,所述地址异常标识用于表征视频流地址异常,所述加载异常标识用于表征视频流加载失败或视频流地址加载超时,所述播放异常标识用于表征播放过程卡顿。进一步的,在实际应用中,所述加载异常标识可以具体表征视频流地址记载失败、或者视频地址记载超时的情况。同时,所述播放异常标识可以具体表征为CDN中间分发地址异常以及视频播放卡顿。
例如,在检测直播间在播放视频时是否存在异常标识的具体过程中,当地址异常标识为errorStatus时,例如当播放器中的播放信息为DYPlaybackErrorStatusHttpNotFound时,实际上该信息用于表征播放器播放视频过程中播放地址存在异常,而为了便于后续相关的函数能够直接识别出异常的特点,软件工程师在设置播放器的过程中一般都会在其中设置用于表征异常的主要标识,如errorStatus,因此,基于本示例的方法可以直接基于该播放信息的字符串中识别是否有errorStatus来确定当前存在地址异常标识。当然,在实际应用中地址异常标识、加载异常标识、播放异常标识还可以基于用户的需要进一步设置个更具体的子标识,本示例中errorStatus可以具体为无效的视频流地址,这样在检测到该标识后则能够确定出属于地址异常标识后,还能够确定具体的异常情况,从而便于后续故障的解决。
基于上述示例的描述可知,步骤101中所述当检测到播放异常时,通过目标接口调用诊断函数,在执行时可以包括:若检测到所述异常标识,则通过目标接口调用诊断函数。
由此,通过对异常标识进行检测,作为是否通过目标接口调用诊断函数的依据,能够实现一种在直播间播放出现异常后自动进行后续在线诊断的功能,从而确保了本示例所述的方法能够免去人工操作的过程,既能使用户省去了人力操作的过程,节省人工,还能够确保在出现异常时及时进行诊断。
102、根据诊断函数获取播放异常参数。
其中,所述播放异常参数包括地址信息、推流码信息以及播放清晰度信息。
基于本实施例所述的方法是对直播间播放异常时在线进行诊断的,也就是说当检测到播放异常时,可以通过该诊断函数实时基于直播间的播放器代码层进行相关信息的获取,其中包括本实施例用于生成诊断信息的播放异常参数。由于影响播放过程主要是围绕地址问题、推流码问题以及播放时的清晰度问题,因此,本实施例中诊断函数所需获取的播放异常参数也主要是获取地址信息、推流码信息以及播放清晰度信息。
在一些实施例中,当所需获取的为地址信息时,步骤102可以包括:通过视频流信息获取地址信息,其中,所述视频流信息是基于第一预设函数从直播间播放器的配置信息获取的。具体的,本实施例执行过程可以按照下述方式进行:
如前述示例中所述,诊断函数名称为recordPlaybackError(通过自定义的目标接口调用的)这个诊断函数在诊断过程中需要设置函数的格式类型参数,格式类型参数为NSinteger类型,这样,在设置了函数的格式类型后,基于诊断函数在进行地址信息的获取过程可以如下:
首先,定义一个cdn地址为__block NSString*ipCdn=nil;其中,这个cdn的地址置为nil(空)。然后通过一个自定义的函数,即第一函数,去获取cdn的地址(地址信息),以便在获取之后赋予到刚刚诊断函数中设置为空的cdn地址中。例如,这个自定义的函数(第一函数)名称可以为updateStreamBasicInfo。在使用第一函数的过程中,需要设置一个参数,这个参数是视频流信息。同时,这个视频流信息是一个以block(最小存储单位)保存的数据,可以通过结构体或类进行保存,其中,结构体具有可将多种类型数据进行保存的优势,结构在数据参数方面效率更高。而类在保存方法运算方面更有优势,在抽象多级别时较为方便,因此在选取保存方式时,可以根据实际需要进行选择,在此不做限定。
这样,通过视频流信息获取地址信息,能够确保地址信息与视频流相对应,确保了地址信息的准确性,也为后续基于地址信息及其他先关信息一并生成对应的诊断信息奠定基础。
在一些实施例中,当获取的为推流码信息时,步骤102可以包括:通过直播间标识获取推流码信息,其中,所述直播间标识是基于第二预设函数从直播间配置信息获取。具体的执行过程可以如下:首先,由于通过配置信息能够获取到直播间的标识,因此在本实施例中可以先去获取配置的信息,例如,在具体操作过程中:使用调用命令box_callerWithCheckSelector对预先设置的自定义函数currentRoomConfigInfo函数通过调用命令@selector(currentRoomConfigInfo(即该函数的指针)从接口DYPRVCInterfaceProtocol调用,并根据该函数进行获取,从而得到一个返回值roomConfigInfo其含义是直播间的配置信息,roomConfigInfo的类型是DYPRRoomConfigInfo类型。
在获取到直播间配置信息后,则可以基于该直播间配置信息需要获取所需的推流码信息pushStreamCode,这个推流码信息是通过函数pushStreamCodeFromRoomInfo(即预设第二函数)来获取的,也就是说直播间配置信息为所述预设第二函数执行时所需的参数roomConfigInfo,由于所需参数已确定,因此可以基于第二函数直接抓取到所需的内容即推流码信息pushStreamCode,。
由此,通过利用直播间标识获取推流码信息,能够确保获取到的推流码信息为存在播放异常的直播间的推流码,从而避免了获取不必要的其他推流码信息的过程,确保了获取数据的精确性。
103、根据播放异常参数生成诊断信息。
当获取到播放异常参数后,则可以通过该播放异常参数生成对应的诊断信息,由于诊断信息中一般是按照一定的格式和结构生成的,因此在执行时可以通过一些预设模板来进行生成。
基于此,在一些实施例中,步骤103中所述根据所述播放异常参数生成诊断信息在执行时可以具体包括:将所述播放异常参数添加到诊断信息模板中,得到所述诊断信息,所述诊断信息模板是通过诊断管理类获取的。
例如,在实际应用中,结合上述示例可知,述执行完毕之后,需要拿到诊断管理类,该诊断管理类是diagnosisManager,以便从该诊断管理类获取对应诊断信息的构架或模板形式的数据,这个诊断管理类可以通过调用函数来获取,该调用函数可以理解为系统内置的用于对诊断管理类进行获取的专用,例如,这个调用函数为名为updateStreamInfoWithBuilder,这个函数最终可以从诊断管理类中获取到一个诊断流的信息,这个诊断流streamInfo(即模板)是一个DYDiagnosisDetailSteamInfo类型的流信息。
然后,则可以根据播放异常参数和模板生成对应的诊断信息,即就上述获取到roomConfigInfo中的地址信息赋值给streamInfo信息的cdnLine变量;将roomConfigInfo中的清晰度信息赋值给streamInfo的definition变量;以及将上述获取到的推流码pushStreamCode赋值给streamInfo的推流码变量,这样就完成诊断信息的生成(将播放异常参数对应的三种信息的具体值赋给了模板中对应变量中),从而完成了直播间播放视频时播放异常的自动化在线诊断效果。随后可以基于用户设置和需要将诊断信息上传至服务器或输出至用户。
由此,通过将所述播放异常参数添加到诊断信息模板中,得到所述诊断信息,能够确保以模板形式生成诊断信息的过程,由于诊断信息中很多信息直接可以基于模板中得到,因此直接获取异常参数并添加即可,从而提高了诊断信息的生成效率。
这样基于步骤101至103的方法,实现了一种能够在直播间中存在视频播放异常的问题时,通过诊断函数的在线诊断的方法。由于通过诊断函数在线获取异常参数并基于异常参数进行诊断信息的生成时,整个执行过程是无需从用户端生成的日志中进行诊断的。也就是说在出现问题后能够立即进行在线诊断,同时众所周知的是,用户端的日志中包含有用户使用直播间应用或软件时的全部行为数据,因此其数据量明显要多于在线时直播间后台所生成的数据量,这就可以确保诊断过程中明显减少诊断所需排查的数据量,减少诊断时间,继而提高诊断效率。
另外,由于现有的基于用户端的日志进行诊断的过程中,用户端的日志都是基于用户发现异常后上报服务器或服务器检测出异常后进行获取的,也就是说现有的诊断方法必然依赖于视频播放异常后生成了对应的播放异常记录后才能执行诊断,但本发明的方法不同于现有技术基于日志进行滞后性的故障诊断、排查,而是可以在线进行诊断,也就是说当直播间出现了播放异常的情况即可直接诊断,无需等待日志中记录的过程,从而确保了诊断能够及时进行,继而确保了后续能够基于诊断结果及时执行后续处理。
在一些实施例中,为了在发现问题后能够及时排除故障、解决播放异常的问题,本实施例还可以在生成诊断信息后利用诊断函数所获取的数据进行故障的排除,从而解决“拉流”失败时直播间内视频播放异常的问题,基于此,在步骤103根据所述播放异常参数生成诊断信息执行之后,所述方法还可以按照下述方式进行一步执行,其中包括:
A、通过所述播放器的配置信息确定播放器对象,并获取直播间配置信息,所述播放器对象是基于预设第三函数通过播放器标识获取的,所述播放器对象中包含有所述直播间在播放视频时的第一视频流地址;
B、根据所述直播间配置信息将第二视频流地址更新所述播放器对象中的第一视频流地址。
具体的,基于上述步骤所述的方法,其执行过程可以具体为:
首先,通过预先设置的自定义的接口函数(预设第三函数)callerWithCheckSelector(DYPBPullStreamInterfaceProtocol)来获取当前直播间的播放器的对象,其目的在于获取直播间中播放器整体代码,callerWithCheckSelector属于常用的接口调用函数;本示例中,获取到的播放器是IJKPlayerManagerResponser;
然后,使用预设第三函数对这个播放器进行自定义的操作,该函数可以为:
[[DYIJKPlayerManagershareInstant]
operationPlayerBy:IJKPlayerManagerResponser
其中,在上述函数中DYIJKPlayerManager shareInstant是获取到的当前的播放器;operationPlayerBy是对这个播放器操作的预设第三函数标识。IJKPlayerManagerResponser为这个预设第三函数在执行过程中所需的参数。
最后,基于该预设第三函数将这个播放器进行视频流信息更新,例如更新后的视频流可以为[ijkPlayer getPlayerQualityWithInfo:qosInfo],这样后续直播间的播放器可以直接基于该[ijkPlayer getPlayerQualityWithInfo:qosInfo]进行视频的获取,实现了对存在问题的直播间的视频流更新操作,实现了故障的排除效果。
这样,基于上述步骤,在执行完诊断后,还能够将直播间的视频流重新更新,继而实现对播放异常时的故障的自动排除效果,减少了工作人员后续排除故障的介入,节省人力资源。
综上所述,当检测到播放异常时,通过目标接口调用诊断函数;然后,根据所述诊断函数获取播放异常参数;最后,根据所述播放异常参数生成诊断信息,从而实现了一种能够在线对直播间中视频播放异常时的诊断功能。在上述方案中,所述诊断函数用于对当前存在播放异常的直播间执行在线诊断,且所述播放异常参数包括地址信息、推流码信息以及播放清晰度信息,这就可以确保在直播间中存在视频播放异常的问题时,能够基于该诊断函数在线获取异常参数,并基于异常参数进行诊断信息的生成,从而在诊断过程中无需从用户端生成的日志中进行诊断,而众所周知日志中的数据明显要多于在线时直播间中生成的数据量,这就可以确保诊断过程中减少诊断所需排查的数据量,减少诊断时间,继而提高诊断效率。
同时,由于现有的基于用户日志进行诊断的过程中,用户日志都是基于用户发现异常后上报服务器或服务器检测出异常后进行获取的,也就是说现有的诊断方法必然依赖于视频播放异常后生成了对应的记录后才能执行诊断,而本发明的方法由于可以在线进行诊断,也就是说当直播间出现了播放异常的情况即可直接诊断,无需等待日志中记录的过程,从而确保了诊断能够及时进行,继而确保了后续能够基于诊断结果及时执行后续处理。
上面对本申请实施例中视频播放异常的诊断方法进行了描述,下面对本申请实施例中的视频播放异常的诊断装置进行描述。
请参阅图2,在本申请中视频播放异常的诊断装置的一个实施例,该装置包括:
调用单元21,可以用于当检测到播放异常时,通过目标接口调用诊断函数,所述诊断函数可以用于对当前存在播放异常的直播间执行在线诊断;
获取单元22,可以用于根据所述诊断函数获取播放异常参数,所述播放异常参数包括地址信息、推流码信息以及播放清晰度信息;
生成单元23,可以用于根据所述播放异常参数生成诊断信息。
请参阅图3,图3为本申请实施例提供的电子设备的实施例示意图。
如图3所示,本申请实施例提供了一种电子设备,包括存储器310、处理器320及存储在存储器310上并可在处理器320上运行的计算机程序311,处理器320执行计算机程序311时实现以下步骤:当检测到播放异常时,通过目标接口调用诊断函数,所述诊断函数用于对当前存在播放异常的直播间执行在线诊断;根据所述诊断函数获取播放异常参数,所述播放异常参数包括地址信息、推流码信息以及播放清晰度信息;根据所述播放异常参数生成诊断信息。
可选的,在一些实施例中,前述处理器320具体用于:所述根据所述诊断函数获取播放异常参数包括:
通过视频流信息获取地址信息,其中,所述视频流信息是基于第一预设函数从直播间播放器的配置信息获取的。
可选的,在一些实施例中,前述处理器320具体用于:所述根据所述诊断函数获取播放异常参数包括:
通过直播间标识获取推流码信息,其中,所述直播间标识是基于第二预设函数从直播间配置信息获取。
可选的,在一些实施例中,前述处理器320具体用于:在所述当检测到播放异常时,通过目标接口调用诊断函数之前,所述方法还包括:
检测所述直播间在播放视频时是否存在异常标识,其中,所述异常标识包括地址异常标识、加载异常标识、播放异常标识,所述地址异常标识用于表征视频流地址异常,所述加载异常标识用于表征视频流加载失败或视频流地址加载超时,所述播放异常标识用于表征播放过程卡顿。
所述当检测到播放异常时,通过目标接口调用诊断函数,包括:
若检测到所述异常标识,则通过目标接口调用诊断函数。
可选的,在一些实施例中,前述处理器320具体用于:在所述根据所述播放异常参数生成诊断信息之后,所述方法还包括:
通过所述播放器的配置信息确定播放器对象,并获取直播间配置信息,所述播放器对象是基于预设第三函数通过播放器标识获取的,所述播放器对象中包含有所述直播间在播放视频时的第一视频流地址;
根据所述直播间配置信息将第二视频流地址更新所述播放器对象中的第一视频流地址。
可选的,在一些实施例中,前述处理器320具体用于:所述根据所述播放异常参数生成诊断信息包括:
将所述播放异常参数添加到诊断信息模板中,得到所述诊断信息,所述诊断信息模板是通过诊断管理类获取的。
可选的,在一些实施例中,前述处理器320具体用于:所述目标接口包括:
box_callerWithCheckSelector(DYPBDiagnosisModuleInterfaceProtocol,@selector(recordPlaybackError:),recordPlaybackError:playbackErrorNumber);
所述通过目标接口调用诊断函数,包括:
通过box_callerWithCheckSelector指令从目标接口中调用recordPlaybackError诊断函数,其中,所述目标接口遵从于DYPBDiagnosisModuleInterfaceProtocol接口类,@selector用于表征函数地址,所述recordPlaybackError诊断函数用于基于代码层获取播放异常参数。
如图4所示,本实施例提供了一种计算机可读存储介质400,其上存储有计算机程序411,该计算机程序411被处理器执行时实现如下步骤:当检测到播放异常时,通过目标接口调用诊断函数,所述诊断函数用于对当前存在播放异常的直播间执行在线诊断;根据所述诊断函数获取播放异常参数,所述播放异常参数包括地址信息、推流码信息以及播放清晰度信息;根据所述播放异常参数生成诊断信息。
可选的,在一种可能的实施例中,该计算机程序411被处理器执行时具体用于:所述根据所述诊断函数获取播放异常参数包括:
通过视频流信息获取地址信息,其中,所述视频流信息是基于第一预设函数从直播间播放器的配置信息获取的。
可选的,在一种可能的实施例中,该计算机程序411被处理器执行时具体用于:所述根据所述诊断函数获取播放异常参数包括:
通过直播间标识获取推流码信息,其中,所述直播间标识是基于第二预设函数从直播间配置信息获取。
可选的,在一种可能的实施例中,该计算机程序411被处理器执行时具体用于:在所述当检测到播放异常时,通过目标接口调用诊断函数之前,所述方法还包括:
检测所述直播间在播放视频时是否存在异常标识,其中,所述异常标识包括地址异常标识、加载异常标识、播放异常标识,所述地址异常标识用于表征视频流地址异常,所述加载异常标识用于表征视频流加载失败或视频流地址加载超时,所述播放异常标识用于表征播放过程卡顿。
所述当检测到播放异常时,通过目标接口调用诊断函数,包括:
若检测到所述异常标识,则通过目标接口调用诊断函数。
可选的,在一种可能的实施例中,该计算机程序411被处理器执行时具体用于:在所述根据所述播放异常参数生成诊断信息之后,所述方法还包括:
通过所述播放器的配置信息确定播放器对象,并获取直播间配置信息,所述播放器对象是基于预设第三函数通过播放器标识获取的,所述播放器对象中包含有所述直播间在播放视频时的第一视频流地址;
根据所述直播间配置信息将第二视频流地址更新所述播放器对象中的第一视频流地址。
可选的,在一种可能的实施例中,该计算机程序411被处理器执行时具体用于:所述根据所述播放异常参数生成诊断信息包括:
将所述播放异常参数添加到诊断信息模板中,得到所述诊断信息,所述诊断信息模板是通过诊断管理类获取的。
可选的,在一种可能的实施例中,该计算机程序411被处理器执行时具体用于:所述目标接口包括:
box_callerWithCheckSelector(DYPBDiagnosisModuleInterfaceProtocol,@selector(recordPlaybackError:),recordPlaybackError:playbackErrorNumber);
所述通过目标接口调用诊断函数,包括:
通过box_callerWithCheckSelector指令从目标接口中调用recordPlaybackError诊断函数,其中,所述目标接口遵从于DYPBDiagnosisModuleInterfaceProtocol接口类,@selector用于表征函数地址,所述recordPlaybackError诊断函数用于基于代码层获取播放异常参数。
需要说明的是,上述装置、处理器以及电子设备所执行的视频播放异常的诊断方法的步骤皆与前述方法实施例中图1所对应的方法、步骤一致,在此不再一一赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,上述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
又例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,再例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上上述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种视频播放异常的诊断方法,其特征在于,包括以下步骤:
当检测到播放异常时,通过目标接口调用诊断函数,所述诊断函数用于对当前存在播放异常的直播间执行在线诊断;
根据所述诊断函数获取播放异常参数,所述播放异常参数包括地址信息、推流码信息以及播放清晰度信息;
根据所述播放异常参数生成诊断信息。
2.根据权利要求1所述的视频播放异常的诊断方法,其特征在于,所述根据所述诊断函数获取播放异常参数包括:
通过视频流信息获取地址信息,其中,所述视频流信息是基于第一预设函数从直播间播放器的配置信息获取的。
3.根据权利要求1所述的视频播放异常的诊断方法,其特征在于,所述根据所述诊断函数获取播放异常参数包括:
通过直播间标识获取推流码信息,其中,所述直播间标识是基于第二预设函数从直播间配置信息获取。
4.根据权利要求3所述的视频播放异常的诊断方法,其特征在于,在所述当检测到播放异常时,通过目标接口调用诊断函数之前,所述方法还包括:
检测所述直播间在播放视频时是否存在异常标识,其中,所述异常标识包括地址异常标识、加载异常标识、播放异常标识,所述地址异常标识用于表征视频流地址异常,所述加载异常标识用于表征视频流加载失败或视频流地址加载超时,所述播放异常标识用于表征播放过程卡顿;
所述当检测到播放异常时,通过目标接口调用诊断函数,包括:
若检测到所述异常标识,则通过目标接口调用诊断函数。
5.根据权利要求4所述的视频播放异常的诊断方法,其特征在于,在所述根据所述播放异常参数生成诊断信息之后,所述方法还包括:
通过所述播放器的配置信息确定播放器对象,并获取直播间配置信息,所述播放器对象是基于预设第三函数通过播放器标识获取的,所述播放器对象中包含有所述直播间在播放视频时的第一视频流地址;
根据所述直播间配置信息将第二视频流地址更新所述播放器对象中的第一视频流地址。
6.根据权利要求5所述的视频播放异常的诊断方法,其特征在于,所述根据所述播放异常参数生成诊断信息包括:
将所述播放异常参数添加到诊断信息模板中,得到所述诊断信息,所述诊断信息模板是通过诊断管理类获取的。
7.根据权利要求1-6所述的视频播放异常的诊断方法,其特征在于,所述目标接口包括:
box_callerWithCheckSelector(DYPBDiagnosisModuleInterfaceProtocol,@selector(recordPlaybackError:),recordPlaybackError:playbackErrorNumber);
其中,所述box_callerWithCheckSelector为用于调用函数的调用指令;所述recordPlaybackError为用于基于代码层获取播放异常参数的诊断函数;所述@selector用于表征函数地址;
所述通过目标接口调用诊断函数,包括:
通过box_callerWithCheckSelector指令从目标接口中调用recordPlaybackError诊断函数,其中,所述目标接口遵从于DYPBDiagnosisModuleInterfaceProtocol接口类。
8.一种视频播放异常的诊断装置,其特征在于,包括:
调用单元,用于当检测到播放异常时,通过目标接口调用诊断函数,所述诊断函数用于对当前存在播放异常的直播间执行在线诊断;
获取单元,用于根据所述诊断函数获取播放异常参数,所述播放异常参数包括地址信息、推流码信息以及播放清晰度信息;
生成单元,用于根据所述播放异常参数生成诊断信息。
9.一种电子设备,包括:储存器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-7中任一项所述的视频播放异常的诊断方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的视频播放异常的诊断方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110062183.XA CN114827636A (zh) | 2021-01-18 | 2021-01-18 | 一种视频播放异常的诊断方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110062183.XA CN114827636A (zh) | 2021-01-18 | 2021-01-18 | 一种视频播放异常的诊断方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114827636A true CN114827636A (zh) | 2022-07-29 |
Family
ID=82524067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110062183.XA Pending CN114827636A (zh) | 2021-01-18 | 2021-01-18 | 一种视频播放异常的诊断方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114827636A (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050171731A1 (en) * | 2003-12-30 | 2005-08-04 | Canon Kabushiki Kaisha | Method, program, and storage medium for acquiring logs |
JP2010139527A (ja) * | 2008-12-09 | 2010-06-24 | Canon Inc | 映像処理装置、映像処理装置の制御方法 |
CN104967877A (zh) * | 2014-10-31 | 2015-10-07 | 腾讯科技(北京)有限公司 | 一种获取在播放视频时产生的异常信息的方法及装置 |
CN105472417A (zh) * | 2015-11-24 | 2016-04-06 | 腾讯科技(深圳)有限公司 | 获取视频播放器异常的方法及装置 |
CN106155828A (zh) * | 2016-07-13 | 2016-11-23 | 微鲸科技有限公司 | 用于播放应用程序资源控制方法和设备 |
CN106557398A (zh) * | 2015-09-29 | 2017-04-05 | 腾讯科技(深圳)有限公司 | 信息上报方法和装置 |
CN107643980A (zh) * | 2017-08-21 | 2018-01-30 | 武汉斗鱼网络科技有限公司 | 一种定位崩溃信息的方法与设备 |
CN108521570A (zh) * | 2018-03-16 | 2018-09-11 | 网宿科技股份有限公司 | 一种视频播放器的监控系统 |
CN109068157A (zh) * | 2018-08-21 | 2018-12-21 | 北京潘达互娱科技有限公司 | 一种直播中推流参数的调整方法、装置及服务器 |
US20190095300A1 (en) * | 2017-09-27 | 2019-03-28 | Panasonic Intellectual Property Corporation Of America | Anomaly diagnosis method and anomaly diagnosis apparatus |
US20190230391A1 (en) * | 2018-01-19 | 2019-07-25 | Mux, Inc. | Video Analytics System |
CN111447193A (zh) * | 2020-03-23 | 2020-07-24 | 网宿科技股份有限公司 | 一种针对实时数据流进行异常检测的方法及装置 |
-
2021
- 2021-01-18 CN CN202110062183.XA patent/CN114827636A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050171731A1 (en) * | 2003-12-30 | 2005-08-04 | Canon Kabushiki Kaisha | Method, program, and storage medium for acquiring logs |
JP2010139527A (ja) * | 2008-12-09 | 2010-06-24 | Canon Inc | 映像処理装置、映像処理装置の制御方法 |
CN104967877A (zh) * | 2014-10-31 | 2015-10-07 | 腾讯科技(北京)有限公司 | 一种获取在播放视频时产生的异常信息的方法及装置 |
CN106557398A (zh) * | 2015-09-29 | 2017-04-05 | 腾讯科技(深圳)有限公司 | 信息上报方法和装置 |
CN105472417A (zh) * | 2015-11-24 | 2016-04-06 | 腾讯科技(深圳)有限公司 | 获取视频播放器异常的方法及装置 |
CN106155828A (zh) * | 2016-07-13 | 2016-11-23 | 微鲸科技有限公司 | 用于播放应用程序资源控制方法和设备 |
CN107643980A (zh) * | 2017-08-21 | 2018-01-30 | 武汉斗鱼网络科技有限公司 | 一种定位崩溃信息的方法与设备 |
US20190095300A1 (en) * | 2017-09-27 | 2019-03-28 | Panasonic Intellectual Property Corporation Of America | Anomaly diagnosis method and anomaly diagnosis apparatus |
US20190230391A1 (en) * | 2018-01-19 | 2019-07-25 | Mux, Inc. | Video Analytics System |
CN108521570A (zh) * | 2018-03-16 | 2018-09-11 | 网宿科技股份有限公司 | 一种视频播放器的监控系统 |
CN109068157A (zh) * | 2018-08-21 | 2018-12-21 | 北京潘达互娱科技有限公司 | 一种直播中推流参数的调整方法、装置及服务器 |
CN111447193A (zh) * | 2020-03-23 | 2020-07-24 | 网宿科技股份有限公司 | 一种针对实时数据流进行异常检测的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111104315A (zh) | 一种测试脚本生成方法及装置、计算机可读存储介质 | |
US8719634B2 (en) | System health and performance care of computing devices | |
CN110674025B (zh) | 交互行为监测方法、装置以及计算机设备 | |
CN105472417B (zh) | 获取视频播放器异常的方法及装置 | |
CN109618176B (zh) | 一种直播业务的处理方法、设备和存储介质 | |
CN112115038A (zh) | 一种应用测试方法、装置和存储介质 | |
CN111611140A (zh) | 埋点数据的上报验证方法、装置、电子设备及存储介质 | |
CN113824987A (zh) | 直播间首帧耗时的确定方法、介质、装置和计算设备 | |
CN114827636A (zh) | 一种视频播放异常的诊断方法及相关装置 | |
CN111124828B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN115276844B (zh) | 通信模组的测试方法、装置、存储介质及电子设备 | |
CN114661569B (zh) | 用户行为数据动态埋点采集方法 | |
CN107203471B (zh) | 联调方法、服务平台及计算机存储介质 | |
CN115190293A (zh) | 一种拨测方法、装置、电子设备及计算机存储介质 | |
CN115391223A (zh) | 一种基于流量录制回放的无侵入式策略重建方法及装置 | |
CN113836013A (zh) | 一种埋点测试方法、装置、计算机设备和计算机可读存储介质 | |
CN111314743B (zh) | 一种界面数据的回放方法及其装置 | |
CN112199229A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN113821443A (zh) | 应用程序的功能检测方法、装置、设备及存储介质 | |
CN109947630B (zh) | 一种故障告示方法、装置及存储介质 | |
CN112416735A (zh) | 一种应用程序检测方法、装置及终端设备、存储介质 | |
CN113722236B (zh) | 游戏调试方法、装置、设备、存储介质 | |
CN117234949B (zh) | 测试数据降噪方法、装置、存储介质、计算机设备 | |
CN116056134A (zh) | 车辆远程升级组件的测试方法、装置、处理器和车辆 | |
CN107679161B (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 |