CN116055790A - 视频播放方法和系统、电子设备 - Google Patents
视频播放方法和系统、电子设备 Download PDFInfo
- Publication number
- CN116055790A CN116055790A CN202210907759.2A CN202210907759A CN116055790A CN 116055790 A CN116055790 A CN 116055790A CN 202210907759 A CN202210907759 A CN 202210907759A CN 116055790 A CN116055790 A CN 116055790A
- Authority
- CN
- China
- Prior art keywords
- data packet
- video
- packet
- electronic device
- sequence number
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 238000012545 processing Methods 0.000 claims abstract description 67
- 238000004891 communication Methods 0.000 claims description 193
- 238000001514 detection method Methods 0.000 claims description 64
- 230000003139 buffering effect Effects 0.000 claims description 26
- 238000003860 storage Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 abstract description 31
- 230000008569 process Effects 0.000 description 48
- 238000005266 casting Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 4
- 230000008707 rearrangement Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000005265 energy consumption Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012546 transfer 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/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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/4113—PC
-
- 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/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/4126—The peripheral being portable, e.g. PDAs or mobile phones
-
- 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
-
- 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
Abstract
本申请公开了一种视频播放方法,应用于第一电子设备,该方法包括:接收第二电子设备发送来的待播放视频对应的第一数据包,将接收到的第一数据包与预设的缓存池中的数据包进行比较,根据比较结果确定第一数据包的处理方式。即,若缓存池中不存在与第一数据包相同的数据包,则将该第一数据包缓存至缓存池中,若缓存池中存在与第一数据包相同的数据包,则丢弃该第一数据包。并且,根据缓存池的数据包播放待播放的视频。由此,对于接收到的第一数据包,可以缓存缓存池中不存在的第一数据包,以用于后续播放,丢弃缓存池中已经存在的第一数据包,可以防止数据包重复。如此,可以避免数据包重复引起的花屏问题,提升视频播放效果和用户体验。
Description
技术领域
本申请涉及视频播放技术领域,特别涉及一种视频播放方法和系统、电子设备。
背景技术
随着例如手机、大屏设备等电子设备的发展,电子设备可以支持投屏、视频点播等越来越多的功能。
例如,手机可以将手机中播放的视频,投屏至大屏设备进行播放。投屏过程中,若被投屏的大屏设备的WiFi芯片能力较差,会存在网络传输能力不佳以及网络抗干扰能力不佳的问题,进而会导致投屏过程中视频帧对应的数据包重复或者乱序等问题,从而引起大屏设备花屏的问题,影响视频播放效果和用户体验。另外,如果大屏设备所处的用户家庭环境干扰较大,也会导致网络传输能力不佳的问题,进而也会导致投屏过程中视频帧对应的数据包重复或者乱序等问题,从而引起大屏设备花屏的问题,影响视频播放效果和用户体验。
另外,在其他例如大屏设备进行视频点播等视频播放场景中,也存在由于数据包重复或者乱序等问题引起的花屏问题,影响视频播放效果和用户体验。
发明内容
本申请的目的在于解决现有技术中视频播放过程中存在的花屏问题。基于此,本申请提供了一种视频播放方法,可以减少或者避免视频播放过程中的花屏问题,提升视频播放效果和用户体验。
为解决上述技术问题,第一方面,本申请的实施方式公开了一种视频播放方法,应用于第一电子设备,该方法包括:接收第二电子设备发送来的待播放视频对应的第一数据包,第一数据包为待播放视频的视频帧的组成部分;将接收到的第一数据包与预设的缓存池中的数据包进行比较,根据比较结果确定第一数据包的处理方式,该处理方式包括,若缓存池中不存在与第一数据包相同的数据包,则将第一数据包缓存至缓存池中;若缓存池中存在与第一数据包相同的数据包,则丢弃第一数据包;根据缓存池中的数据包播放待播放视频。
第二电子设备可以为手机、平板、电脑、个人数字助理(Personal DigitalAssistant,PDA)、台式电脑等具有投屏功能的电子设备,第一电子设备可以是大屏设备、电视等能够接收投屏视频以播放该视频的设备,即该视频播放方法可以应用于投屏场景。或者第二电子设备可以是服务器等具备视频点播功能的电子设备,第一电子设备可以是具备视频点播功能的电子设备,即该视频播放方法可以应用于视频点播场景。当然,第一电子设备和第二电子设备也可以是其他类型的电子设备,该视频播放方法也可以应用于其他视频播放场景。
本申请实现方式中,通过将接收的第一数据包与预设的缓存池中的数据包进行比较,若第一电子设备确定缓存池中不存在与第一数据包相同的数据包,则将该第一数据包缓存至缓存池,以实现对缓池中的第一数据包的更新,以用于后续播放。若第一电子设备确定缓存池中存在与第一数据包相同的数据包,则丢弃第一数据包,避免数据包重复。并且后续根据缓存池的数据包播放待播放的视频。由此,对于接收到的第一数据包,若缓存池中已经存在相同的数据包,则将新接收到的第一数据包直接丢弃,防止数据包重复。对于缓存池中不存在的数据包,则将接收到的第一数据包缓存至缓存池中,以用于后续播放。如此,可以避免数据包重复引起的投屏、视频点播等视频播放场景中存在的花屏问题,提升视频播放效果和用户体验。
该第一数据包即为第一电子设备新接收到的数据包,或者也可以是第一电子设备接收到的特定类型的数据包等,其可以根据需要设置。
另外,根据缓存池中的数据包播放待播放视频,可以是依序处理(例如根据序列号由小到大)缓存池中存储的数据包,以播放待播放视频。
在上述第一方面的一种可能的实现中,将第一数据包与缓存池中的数据包进行比较,根据比较结果确定数据包的处理方式,包括:若确定第一电子设备的状态满足数据包缓存处理条件,则将第一数据包与缓存池中的数据包进行比较,根据比较结果确定数据包的处理方式。
即,可以只在第一电子设备的状态满足特定的数据包缓存处理条件的情况下,进行前述数据包缓存相关处理,以避免数据包重复引起的投屏、视频点播等视频播放场景中存在的花屏问题。而不需要在整个视频播放过程中都执行前述数据包缓存相关处理,可以有效地降低第一电子设备的能耗。
在上述第一方面的一种可能的实现中,确定第一电子设备的状态满足数据包缓存处理条件,包括:确定第一电子设备的当前网络通信质量;若当前网络通信质量不满足网络通信质量要求,则确定第一电子设备的状态满足数据包缓存处理条件。第一电子设备的当前网络通信质量也可以理解为第一电子设备与第二电子设备之间的当前网络通信质量。
即,若当前网络通信质量不佳,则存在数据包重复可能性较大。因此,可以在当前网络通信质量不佳时,进行前述数据包缓存相关处理,以避免数据包重复引起的投屏、视频点播等视频播放场景中存在的花屏问题,并且可以有效地降低第一电子设备的能耗。即,通过网络质量检测,可以确定是否进行相应的数据包缓存处理。
即,在上述第一方面的一种可能的实现中,将接收到的第一数据包与预设的缓存池中的数据包进行比较之前,该方法还包括:确定所述第一电子设备的当前网络通信质量;并且若当前网络通信质量不满足网络通信质量要求,则将接收到的第一数据包与预设的缓存池中的数据包进行比较。既可以在例如在当前网络通信质量不佳的时候,进行数据包缓存相关处理,以减少花屏次数,提升视频播放效果和用户体验。当前网络通信质量即为第一电子设备与第二电子设备之间进行数据传输的速率等信息。
在上述第一方面的一种可能的实现中,若当前网络通信质量满足网络通信质量要求,则不需要将接收到的第一数据包与预设的缓存池中的数据包进行比较,直接根据接收到的第一数据包播放待播放视频。
在上述第一方面的一种可能的实现中,网络通信质量根据数据包对应的视频帧之间的时间间隔确定,即根据第一电子设备接收到的例如两个相邻的视频帧之间的时间间隔确定,并且若时间间隔大于等于时间间隔阈值,则确定当前网络通信质量不满足网络通信质量要求。
例如,若第一电子设备确定接收到的相邻的两个视频帧之间的时间间隔大于等于时间间隔阈值,则说明当前网络环境较差,容易出现数据包重传导致的数据包重复问题,以及容易出现数据包乱序的问题等问题,从而导致花屏。对此条件下的数据包进行缓存处理,以丢弃重复的数据包,可以有效地减少花屏次数。
当然,在本申请的另一些实现方式中,视频帧之间的时间间隔,也可以是间隔一个或者多个视频帧的视频帧之间的时间间隔,其可以根据需要设置。
在上述第一方面的一种可能的实现中,时间间隔阈值通过以下方式确定:获取预先设置的时间间隔阈值。如此,可以方便、快速地确定该时间间隔阈值,该时间间隔阈值例如可以是150ms。
在上述第一方面的一种可能的实现中,时间间隔阈值通过以下方式确定:根据当前网络通信质量确定时间间隔阈值。
即,对当前网络通信质量不满足网络通信质量要求的数据包进行处理,可以实时基于网络通信质量调整数据包缓存处理条件,进而基于不同网络通信质量设置不同的缓存处理条件,对于数据包处理的条件进行更为准确地设置。例如,若当前网络通信质量较佳,则时间间隔阈值可以设置的较大,如此,可以避免在网络通信质量较佳的时候,多次进行检测,造成第一电子设备的系统功能的损耗。若当前网络通信质量较差,则时间间隔阈值可以设置的较小。如此,可以更为准确、全面地确定出重复数据包,进而减少花屏次数,提升视频播放效果和用户体验。即,在整个视频播放过程中,第一电子设备可以周期性地根据网络通信质量动态调整该时间间隔阈值。
在上述第一方面的一种可能的实现中,当前网络通信质量例如可以由当前网络通信速率确定,则时间间隔阈值通过以下方式确定:获取第一电子设备的当前网络通信速率;根据当前网络通信速率确定时间间隔阈值,并且若当前网络通信速率大于等于第一通信速率阈值,则时间间隔阈值为第一时间间隔阈值,若当前网络通信速率小于第一通信速率阈值,则时间间隔阈值为第二时间间隔阈值。
如此,根据当前网络通信速率,可以确定不同网络通信速率情况下对应的时间间隔阈值,可以更为准确、全面地确定出重复数据包,进而减少花屏次数,提升视频播放效果和用户体验。
在上述第一方面的一种可能的实现中,第一通信速率阈值可以大于等于600kb/s,例如第一通信速率阈值的取值范围例如可以是600kb/s~900kb/s,示例性的,例如600kb/s、750kb/s、860kb/s、900kb/s等。当然,第一通信速率阈值也可以是其他任意值,其可以根据需要设置。
在上述第一方面的一种可能的实现中,第一时间间隔阈值可以是小于150ms,第一时间间隔阈值的取值范围例如可以是100ms~140ms,例如100ms、135ms、140ms等。当然,第一时间间隔阈值也可以是其他任意值,其可以根据需要设置。
在上述第一方面的一种可能的实现中,第二时间间隔阈值例如可以大于等于150ms,第二时间间隔阈值的取值范围例如可以是150ms~200ms,例如150ms、160ms、200ms等。当然,第二时间间隔阈值也可以是其他任意值,其可以根据需要设置。
当然,在本申请的另一些可能的实现中,网络通信速率与时间间隔阈值之间也可以是其他的对应关系,其可以根据需要设置。
本申请实现方式中,采用两个视频帧之间的时间间隔确定是否进行数据包缓存处理,即将两个视频帧之间的时间间隔作为数据包重排序触发的条件。
在上述第一方面的一种可能的实现中,该方法还包括:根据检测周期周期性地确定视频帧之间的时间间隔。
根据检测周期周期性地确定视频帧之间的时间间隔,可以依据检测周期检测数据包,并对数据包进行去重操作,减少花屏次数,而不需要在整个视频播放过程中都执行前述数据包缓存相关处理,可以有效地降低第一电子设备的能耗。
在上述第一方面的一种可能的实现中,检测周期通过以下方式确定:获取预先设置的检测周期。如此,可以方便、快速地确定该检测周期,检测周期例如可以是200s。
在上述第一方面的一种可能的实现中,检测周期通过以下方式确定:根据当前网络通信质量确定检测周期。
即,可以实时基于网络通信质量调整检测周期,进而基于不同网络通信质量设置不同的检测周期。例如,若当前网络通信质量较佳,则检测周期可以设置的较大,如此,可以避免在网络通信质量较佳的时候,多次进行检测,造成第一电子设备的系统功能的损耗。若当前网络通信质量较差,则检测周期可以设置的较小。如此,可以更为准确、全面地确定出重复数据包,进而减少花屏次数,提升视频播放效果和用户体验。即,在整个视频播放过程中,第一电子设备可以周期性地根据网络通信质量动态调整该检测周期。
在上述第一方面的一种可能的实现中,当前网络通信质量例如可以由当前网络通信速率确定,则检测周期通过以下方式确定:根据当前网络通信速率确定检测周期,并且若当前网络通信速率大于等于第二通信速率阈值,则检测周期为第一检测周期,若当前网络通信速率小于第二通信速率阈值,则检测周期为第二检测周期。
如此,根据当前网络通信速率,可以确定不同网络通信速率情况下对应的检测周期,可以更为准确、全面地确定出重复数据包,进而减少花屏次数,提升视频播放效果和用户体验。
在上述第一方面的一种可能的实现中,第二通信速率阈值的取值范围例如可以与前述第一通信速率阈值的取值范围相同,即大于等于600kb/s,例如第一通信速率阈值的取值范围例如可以是600kb/s~900kb/s,示例性的,例如600kb/s、750kb/s、860kb/s、900kb/s等。第二速率阈值的取值范围例如也可以与前述第一通信速率阈值的取值范围不同,其取值例如为700kb/s~800kb/s,第二通信速率阈值例如为700kb/s、780kb/s、800kb/s等。当然,第二通信速率阈值也可以是其他任意值,其可以根据需要设置。
在上述第一方面的一种可能的实现中,第一检测周期的取值范围例如可以是200ms~1000ms,例如200ms、860ms、1000ms等,或者是1min左右等。当然,第一检测周期也可以是其他任意值,其可以根据需要设置。
在上述第一方面的一种可能的实现中,第二检测周期的取值范围例如可以是60ms~200ms,例如60ms、120ms、200ms等。当然,第二检测周期也可以是其他任意值,其可以根据需要设置。
当然,在本申请的另一些可能的实现中,网络通信速率与检测周期之间也可以是其他的对应关系,其可以根据需要设置。
在上述第一方面的一种可能的实现中,若确定第一电子设备的状态不满足数据包缓存处理条件,则直接根据数据包播放待播放视频。
即,若不满足数据包缓存处理条件,这说明当前网络环境或者网络通信质量较好,不会出现前述的数据包重复引起的花屏问题,因此不需要进行数据包缓存相关处理,直接根据数据包播放视频即可。
在上述第一方面的一种可能的实现中,将第一数据包缓存至缓存池中,包括:确定第一数据包的序列号,以及确定缓存池中各数据包的序列号;根据第一数据包的序列号和缓存池中的各数据包的序列号,将第一数据包插入至与其序列号相邻的数据包之间。
即,在缓存第一数据包的时候,可以通过将第一数据包的序列与缓存池中的数据包的序列号进行对比,将第一数据包插入至与其序列号相邻的数据包之间,以更新缓存池中的数据包。即在缓存第一数据包时,是按照数据包的序列号依次从小到大或者从大到小依次排列。如此,在后续播放视频时,既可以按照顺序依次获取对应的数据包进行视频播放,从而避免由于数据包乱序引起的花屏问题,提升了视频播放效果,从而有效地提升了用户体验。
在上述第一方面的一种可能的实现中,将第一数据包与预设的缓存池中的数据包进行比较,根据比较结果确定数据包的处理方式,包括:确定第一数据包的序列号,以及确定缓存池中各数据包的序列号;将第一数据包的序列号与缓存池中各数据包的序列号进行比较;若缓存池中不存在与第一数据包的序列号相同的数据包,则确定缓存池中不存在与第一数据包相同的数据包,将第一数据包缓存至缓存池中;若缓存池中存在与第一数据包的序列号相同的数据包,则确定缓存池中存在与第一数据包相同的数据包,丢弃第一数据包。
由此,通过进行数据包序列号的比对,既可以方便、准确地确定缓存池中是否存在对应的第一数据包,从而可以将相同的数据包去除,解决了数据包重复引起花屏问题。
在本申请的另一些实现方式中,也可以通过其他的方式确定缓存池中是否存在对应的数据包,其可以根据需要设置。
在上述第一方面的一种可能的实现中,缓存池中的数据包按照序列号自小至大的方式存储,则将第一数据包的序列号与缓存池中各数据包的序列号进行比较,根据比较结果确定数据包的处理方式,包括:将第一数据包的序列号与缓存池中头部位置的数据包的序列号进行比较,确定序列号的大小关系;若第一数据包的序列号小于等于缓存池中头部位置的数据包的序列号,则丢弃第一数据包;若第一数据包的序列号大于缓存池中头部位置的数据包的序列号,则依次确定缓存池中头部位置的数据包之后的下一个数据包的序列号,将第一数据包的序列号与缓存池中头部位置的数据包之后的下一个数据包的序列号进行比较,确定序列号的大小关系,根据大小关系,确定第一数据包的处理方式。
如此,可以方便地该第一数据包的序列号与缓存池中的各数据包的序列号依次进行比较,以将该第一数据包缓存至合适的位置,或者丢弃该第一数据包。
在上述第一方面的一种可能的实现中,根据缓存池中的数据包播放待播放视频,包括:确定目标视频帧,从缓存池中获取目标视频帧对应的数据包;提取数据包中的数据生成视频流;播放视频流。
如此,缓存池中的数据包不存在重复和/或乱序的问题,根据该数据包播放视频,解决了视频播放过程中,由于数据包重复和/或乱序等引起的花屏问题。
在上述第一方面的一种可能的实现中,数据包为基于实时传输协议的数据包。
当然,在上述第一方面的另一种可能的实现中,第一数据包也可以是基于其他网络传输协议的传输或者封装的数据包,其可以根据需要选择。
在上述第一方面的一种可能的实现中,该视频播放方法可以应用于投屏场景中,并且第一电子设备接收第二电子设备发送来的待播放视频对应的第一数据包之前,该方法还包括:第一电子设备与第二电子设备建立通信连接,并且开启视频投屏处理。
例如,第一电子设备接收第二电子设备发送来的待播放视频对应的第一数据包之前,该方法还包括:第二电子设备播放视频,第二电子设备接收用户针对该视频的投屏指令。第二电子设备确定需要进行投屏,将该视频作为待播放视频投屏至第二电子设备以外的第一电子设备播放,则第二电子设备开启视频投屏处理。第二电子设备先开启设备搜索处理,以搜索附近存在的可用于视频投屏的电子设备,并且显示搜索到的电子设备,例如显示搜索到的第一电子设备,该第一电子设备例如可以是大屏设备,以及显示其他例如平板电脑、投影仪、电视等电子设备。另外,第二电子设备搜索附近存在的可用于视频投屏的电子设备,即为搜索与第二电子设备处于同一家庭网络或者同一局域网中,具备投屏功能的电子设备。第二电子设备接收用户对第一电子设备的选择操作(例如点击操作),向第一电子设备发送连接请求,以请求与第一电子设备建立通信连接。该通信连接例如可以是WiFi通信连接等。第一电子设备接收到第二电子设备发送来的连接请求之后,显示提醒信息,以用于用户通过该提醒信息确定是否与第二电子设备建立通信连接。该提醒信息例如可以包括提示文字信息“是否与第二电子设备建立通信连接”,以及对应的选择控件“是”和“否”等。第一电子设备接收用户同意建立通信连接的指令(即例如接收到用户对选择控件“是”的点击操作),向第二电子设备发送同意建立通信连接的应答消息,并且建立与第二电子设备之间的通信连接。第二电子设备接收到第一电子设备发送来的同意建立通信连接的应答消息,建立与第一电子设备之间的通信连接。第二电子设备将播放视频(即投屏视频)对应的视频帧通过数据包的方式发送给第一电子设备。第一电子设备接收第二电子设备发送来的数据包,根据该数据包播放视频,以实现投屏播放第二电子设备侧播放的视频。
在本申请的另一些实现方式中,前述第二电子设备在开启设备搜索处理之前,还可以包括第二电子设备确定是否已与第一电子设备建立用于进行投屏的通信连接,若已建立,则直接将视屏对应的数据包发送给第一电子设备。若未建立,则开启设备搜索处理以发现用于投屏的电子设备。
在本申请的另一些实现方式中,第二电子设备在接收到用户针对前述视频的投屏指令与第一电子设备之间进行投屏的情况下,若第二电子设备和第一电子设备之间已建立通信连接,则该方法还包括:第二电子设备播放视频,接收用户针对该视频的的投屏指令。第二电子设备开启设备搜索处理,以搜索附近存在的可用于视频投屏的电子设备,并且显示搜索到的电子设备,例如显示搜索到的第一电子设备,该第一电子设备例如可以是大屏设备,以及其他例如平板电脑、投影仪、电视等电子设备。另外,第二电子设备搜索附近存在的可用于视频投屏的电子设备,即为搜索与第二电子设备处于同一家庭网络或者同一局域网中,具备投屏功能的电子设备。或者,第二电子设备直接显示已建立通信的第一电子设备。第二电子设备接收用户对第一电子设备的选择操作(例如点击操作),确定需要将播放的视频投屏至第一电子设备播放。第二电子设备将播放视频对应的视频帧通过数据包的方式发送给第一电子设备。第一电子设备接收第二电子设备发送来的数据包,根据该数据包播放视频,以实现投屏播放第二电子设备侧播放的视频。
当然,第二电子设备与第一电子设备建立通信连接的过程以及进行视频投屏的过程,也可以包括其他的步骤。
投屏过程中,由于通信质量不佳等原因极易引起数据包重复、乱序等问题,从而极易产生投屏花屏问题,即投屏场景中第一电子设备播放投屏视频的过程中,花屏问题比较显著。基于上述方式,第一电子设备可以与第二电子设备在投屏场景中,建立通信连接,实现投屏过程中,进行重复数据包的丢包处理,以及进行乱序数据包的重排序处理,可以有效地避免由于数据包重复、乱序引起的投屏花屏问题,提高视频播放效果以及用户体验。
第二方面,本申请的实施方式提供了一种视频播放系统,包括第一电子设备和第二电子设备,其中,第二电子设备用于向第一电子设备发送待播放视频的视频帧对应的第一数据包;第一电子设备用于接收第二电子设备发送来的第一数据包,第一数据包为待播放视频的视频帧的组成部分;将接收到的第一数据包与预设的缓存池中的数据包进行比较,根据比较结果确定数据包的处理方式,处理方式包括,若缓存池中不存在与第一数据包相同的数据包,则将第一数据包缓存至缓存池中;若缓存池中存在与第一数据包相同的数据包,则丢弃第一数据包;根据缓存池中的数据包播放待播放视频。
在上述第二方面的一种可能的实现中,第一电子设备可以进行前述网络通信质量确定、数据包排序等相关处理,此处不再赘述。
本申请提供的视频播放系统,包括用于执行上述第一方面和/或第一方面的任意一种可能的实现方式所提供的第一电子设备,因此也能实现第一方面提供的视频播放方法所具备的有益效果(或优点)。
第三方面,本申请的实施方式提供了一种电子设备,包括:存储器,用于存储计算机程序,计算机程序包括程序指令;处理器,用于执行程序指令,以使电子设备执行如上述第一方面和/或第一方面的任意一种可能的实现方式所提供的视频播放方法。
第四方面,本申请的实施方式提供了一种计算机可读取存储介质,计算机可读取存储介质存储有计算机程序,计算机程序包括程序指令,程序指令被电子设备运行以使电子设备执行如第一方面和/或第一方面的任意一种可能的实现方式所提供的视频播放方法。
可以理解的是,上述第二方面至第四方面的有益效果也可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所使用的附图作简单介绍。
图1是根据本申请的一些实施例,示出了一种视频播放系统的示意图;
图2是根据本申请的一些实施例,示出了一种大屏设备20的结构示意图;
图3是根据本申请的一些实施例,示出了一种大屏设备20的软件架构图;
图4A是根据本申请的一些实施例,示出了一种视频播放方法流程图;
图4B是根据本申请的一些实施例,示出了大屏设备20与手机10建立通信连接进行投屏的一种流程图;
图4C是根据本申请的一些实施例,示出了大屏设备20与手机10建立通信连接进行投屏的另一种流程图;
图5A是根据本申请的一些实施例,示出了一种数据包去重方法示意图;
图5B是根据本申请的一些实施例,示出了一种数据包排序方法示意图;
图6是根据本申请的一些实施例,示出了另一种视频播放方法流程图;
图7是根据本申请的一些实施例,示出了另一种视频播放方法流程图;
图8是根据本申请的一些实施例,示出了另一种视频播放方法流程图;
图9是根据本申请的一些实施例,示出了一种电子设备的结构示意图;
图10是根据本申请的一些实施例,示出了一种片上系统(SoC)的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
以投屏场景为例,请参见图1,在本申请的一种实现方式中,视频播放系统包括手机10和大屏设备20。其中,大屏设备20和手机10可以通过路由器(图中未示出)建立无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,WiFi)网络)通信连接,或者也可以通过其他无线通信方式或有线通信方式建立通信连接。
在投屏场景中,手机10播放待投屏的视频,并且根据用户操作进行投屏处理,将待投屏的视频以视频帧对应的数据包的方式发送至大屏设备20。大屏设备20接收到视频帧对应的数据包后,根据该数据包播放对应的视频,以实现视频的投屏播放。
如前所述,若大屏设备20的WiFi芯片的芯片能力较差,或者大屏设备20所处的用户家庭环境干扰较大等,皆会导致网络传输能力较差以及抗干扰能力较差等通信质量不佳的问题,导致视频帧对应的数据包存在重复和/或乱序的问题,从而在进行投屏时会导致大屏设备20出现花屏的问题,影响投屏效果,以及影响用户的投屏体验。
例如,当网络较好时,正常情况下接收到的数据包的序列号(也可以称为序号)例如为:1、2、3、4、5。
而网络较差情况下,可能存在数据包先发后至的情况,使得大屏设备20接收到的数据包乱序。例如,大屏设备20接收到的数据包序列号可能为1、3、4、2、5。数据包乱序,会造成花屏的问题。
另外,在特别极端的情况下,例如网络质量较差的情况下,由于手机10的驱动层(也可以理解为对应通信网络的数据链路层)的确认机制可能无法正常确认是否已将数据包发送给大屏设备20,因此会做数据包的重传,即会存在重复发包的情况,引起上层链路数据包重复的问题,使得大屏设备20接收到的数据包重复。例如,大屏设备20接收到的数据包序列号也可能为:1、2、3、2、4、5。数据包重复,也会造成花屏的问题。
综上,在视频播放过程中,数据包乱序和/或重复都会引起花屏问题,影响视频播放效果和用户体验。
基于此,本申请提出了一种视频播放方法,可以解决由于网络质量差引起的数据包(也可以称为报文)乱序或者重复而导致的视频花屏的问题,即可以减少花屏次数,或者避免花屏产生,提升视频播放效果和用户体验。
在本申请的一种实现方式中,该视频播放方法包括:手机10向大屏设备20发送待播放视频的数据包(例如实时传输协议(Real-time Transport Protocol,RTP)数据包)。大屏设备20接收到数据包后,进行相应视频的播放。在播放视频的过程中,大屏设备20周期性地确定当前的网络通信质量情况,若网络通信质量不佳,则确定会存在由于数据包重复问题而引起的花屏问题,则开启数据包缓存处理,将接收的数据包的例如序列号与预设的缓存池中的数据包的例如序列号进行比较,以确定缓存池中是否已存在该数据包。并且,若缓存池中不存在与数据包相同的数据包,则将该数据包缓存至缓存池,以用于后续播放,若缓存池中存在与数据包相同的数据包,则丢弃该数据包。并且,大屏设备20后续根据缓存池的数据包播放待播放视频。如此,通过丢弃重复的数据包的方式,可以减少花屏次数,提升视频播放效果和用户体验。若大屏设备20确定网络通信质量较佳,则不需要开启数据包缓存处理,即不需要对该数据包进行缓存相关处理,直接根据该数据包播放视频即可。
本实现方式中,可以通过周期性地确定例如相邻两个视频帧之间的时间间隔是否大于等于预设的时间阈值(例如可以是150ms)的方式,确定网络通信质量。例如,若相邻两个视频帧之间的时间间隔大于等于预设的时间阈值,则认为网络通信质量不佳。若相邻两个视频帧之间的时间间隔小于预设的时间阈值,则认为网络通信质量较佳。
进一步地,本实现方式中,大屏设备20在缓存数据包的时候,可以通过将数据包的序列号与缓存池中的数据包的序列号进行对比的方式,将数据包插入至与其序列号相邻的数据包之间。即在缓存数据包时,是按照数据包的序列号依次从小到大或者从大到小排列。如此,在后续播放视频时,即可以按照顺序依次获取对应的数据包进行视频播放,从而避免由于数据包乱序引起的花屏问题,提升了视频播放效果,从而有效地提升了用户体验。
在本申请的一种实现方式中,大屏设备20在进行投屏时,也可以不进行前述网络通信质量确定相关的处理,直接确定缓存池中是否存在接收到的数据包,以及进行后续相关处理。如此,不论网络质量情况如何,都可以减少由于数据包重复和/或乱序,引起的花屏次数,提升视频播放效果和用户体验。
下面对大屏设备20的结构进行说明。请参见图2,图2示出了一种大屏设备20的结构示意图。
大屏设备20可以包括处理器210,通信模块220、音频模块230、显示屏240、电源模块250和内部存储器260。
其中,处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
通信模块220可以提供应用在大屏设备20上的包括WLAN(Wi-Fi),BT等无线通信的解决方案。
手机10通过GPU,显示屏240,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏240和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
大屏设备20可以通过音频模块230以及应用处理器等实现音频功能。例如视频播放、音乐播放等。
大屏设备20可以通过电源模块250实现自身供电。
内部存储器260可以用于存储计算机可执行程序代码,该可执行程序代码包括指令。内部存储器260可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储大屏设备20使用过程中所创建的数据(比如视频数据)等。此外,内部存储器260可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器210通过运行存储在内部存储器260的指令,和/或存储在设置于处理器中的存储器的指令,执行大屏设备20的各种功能应用以及数据处理。
例如,内部存储器260存储指令可以使得大屏设备20执行视频播放相关步骤,例如使得大屏设备20对待播放的上一个视频帧与当前视频帧之间的时间间隔大于预设的时间阈值的当前视频帧进行RTP数据包缓冲,在缓冲过程中对RTP数据包进行去重和排序,以得到连续的RTP数据包,从而组成视频流并进行播放。
可以理解的是,本发明实施例示意的结构并不构成大屏设备20的限定。在本申请实施例另一些实施例中,大屏设备20可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
需要说明的是,本申请的手机10可以包括处理器,外部存储器接口,内部存储器,USB接头,充电管理模块,电源管理模块,电池,天线,移动通信模块,无线通信模块,音频模块,扬声器,受话器,麦克风,耳机接口,传感器模块,按键,马达,指示器,摄像头,显示屏,以及用户标识模块(subscriber identification module,SIM)卡接口等。
可以理解的是,本申请实施例示意的结构并不构成对手机10的具体限定。在本申请另一些实施例中,手机10可以包括更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。上述部件可以以硬件,软件或软件和硬件的组合实现。
下面对大屏设备20的软件系统进行说明。参见图3,本申请实现方式提供了一种大屏设备20用于执行视频播放方法的软件架构。
需要说明的是,本申请中,手机10和大屏设备20的系统可以是AndroidR系统,也可以是其他类型的系统。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,大屏设备20的系统可以包括应用层、框架层、库、硬件抽象层和内核。其中,应用层可以包括一系列应用程序包,框架层可以为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架,库可以包括协议栈,用于提供例如RTP数据包等数据包缓存、RTP数据包等数据包重排序、RTP数据包等数据包去重等功能,硬件抽象层用于提供与视频播放相关的视频解码、帧间隔检测等相关功能,内核用于提供实现视频播放相关的视频输出或者送显、音频输出、视频播放效果处理等相关功能。
示例性的,应用层包括应用界面模块和应用逻辑模块。其中,应用界面模块用于显示投屏界面和投屏内容。应用逻辑模块用于进行投屏等视频播放流程控制,以根据数据包播放视频。
框架层包括通信模块,通信模块用于大屏设备20和手机10进行通信。
库包括协议栈库,协议栈用于大屏设备20对待播放的视频帧的RTP数据包进行RTP缓冲、RTP去重以及RTP重排序等操作。
硬件抽象层包括解码模块,解码模块用于进行将视频流解码成用于播放的播放数据,还用于设置帧间隔检测处理等,例如用于检测两视频帧的之间的间隔是否大于预设的时间间隔阈值。
内核用于进行视频输出或送显,即将视频数据输出为可播放的视频流,并将待播放的视频的画面送显,还用于将待播放的视频的音频进行输出,还用于根据帧检测处理关键帧数据和图像帧数据,根据处理结果进行相应的视频播放效果处理以显示相应的视频。
需要说明的是,手机10也可以包括如上所述的应用层、框架层、库、硬件抽象层和内核等,其可以根据需要设置。
下面以应用场景为投屏场景,数据包为RTP数据包为例,对本申请涉及的视频播放方法进行说明。请参见图4,该视频播放方法包括以下步骤:
S110,手机10播放视频,接收用户的投屏指令,开始投屏,向大屏设备20发送投屏视频对应的RTP数据包。大屏设备20接收RTP数据包,开始投屏处理,以根据该RTP数据包播放对应的视频。
需要说明的是,在手机10接收到用户的投屏指令与大屏设备20之间进行投屏的情况下,若手机10和大屏设备20之间还未建立通信连接,请参见图4B,步骤S110可以包括以下步骤:
S1101,手机10播放视频,并且接收到用户针对该视频的投屏指令,该投屏指令用于指示手机10将手机10播放的视频投屏至手机10以外的其他例如大屏设备20等电子设备进行播放。
S1102,手机10开启设备搜索处理,以搜索附近存在的可用于视频投屏的电子设备,并且显示搜索到的电子设备,例如显示搜索到的大屏设备20,以及其他例如平板电脑、投影仪、电视等电子设备。另外,手机10搜索到的电子设备皆为与手机10处于同一家庭网络或者同一局域网中的具备投屏功能的电子设备(即可投屏电子设备)。
S1103,手机10接收用户对大屏设备20的选择操作(例如点击操作),确定需要将播放的视频投屏至大屏设备20播放。
S1104,手机10向大屏设备20发送连接请求,以请求与大屏设备20建立通信连接。该通信连接例如可以是WiFi通信连接等无线通信连接。
S1105,大屏设备20接收到手机10发送来的连接请求之后,显示提醒信息,以用于用户通过该提醒信息确定是否与手机10建立通信连接。该提醒信息例如可以包括提示文字“是否与手机10建立通信连接”,以及对应的选择控件“是”和“否”等。
S1106,大屏设备20接收用户同意建立通信连接的指令(例如接收到用户对选择控件“是”的点击操作)。
S1107,手机10向手机10发送同意建立通信连接的应答消息,以建立与手机10之间的通信连接。
S1108,手机10接收到大屏设备20发送来的同意建立通信连接的应答消息,建立与大屏设备20之间的通信连接。
需要说明的是,手机10与大屏设备20建立通信连接的过程中,包括建立传输控制协议(Transmission Control Protocol,TCP)通信连接,并基于TCP通信连接进行实时流传输协议(Real Time Streaming Protocol,RTSP)协商,以及建立用户数据包协议(UserDategram Prototal,UDP)通信连接,并基于UDP通信连接进行RTP协商等相关处理。
S1109,手机10将播放视频对应的视频帧通过RTP数据包的方式发送给大屏设备20。
S1110,大屏设备20接收手机10发送来的RTP数据包,开始投屏处理,根据该RTP数据包播放视频,以实现投屏播放手机10侧播放的视频。
当然,在手机10接收到用户的投屏指令与大屏设备20之间进行投屏的情况下,若手机10和大屏设备20之间已建立通信连接,请参见图4C,步骤S110可以包括以下步骤:
S1101’,手机10播放视频,接收用户针对该视频的投屏指令,该投屏指令用于指示手机10将手机10播放的视频投屏至手机10以外的其他例如大屏设备20等电子设备进行播放。
S1102’,手机10开启设备搜索处理,以搜索附近存在的可用于视频投屏的电子设备,并且显示搜索到的电子设备,例如显示搜索到的大屏设备20,以及其他例如平板电脑、投影仪、电视等电子设备。另外,手机10搜索到的电子设备皆为与手机10处于同一家庭网络或者同一局域网中的具备投屏功能的电子设备。或者,手机10直接显示已建立通信的大屏设备20。
S1103’,手机10接收用户对大屏设备20的选择操作(例如点击操作),确定需要将播放的视频投屏至大屏设备20播放。
S1104’,手机10将播放视频对应的视频帧通过RTP数据包的方式发送给大屏设备20。
S1105’,大屏设备20接收手机10发送来的RTP数据包,开始投屏处理,根据该RTP数据包播放视频,以实现投屏播放手机10侧播放的视频。
当然,在本申请的另一些实现方式中,前述手机10在开启设备搜索处理之前,还可以确定是否已与大屏设备20建立用于进行投屏的通信连接,若已建立,则直接将视屏对应的数据包发送给大屏设备20。若未建立,则开启设备搜索处理以发现用于投屏的电子设备。
或者,手机10在接收到用户的投屏指令的情况下,若确定已提前设置对应的默认投屏设备为大屏设备20,并且已与手机10建立通信连接,则手机10也可以直接将视频对应的RTP数据包发送给大屏设备20,而不需要执行设备搜索等步骤。当然,手机10和大屏设备20也可以以其他方式建立通信连接,以及开始投屏。即,手机10与大屏设备20建立通信连接的过程以及进行视频投屏的过程,也可以包括其他的步骤。
S120,大屏设备20在进行投屏播放的过程中,根据预设的检测周期,周期性地检测接收到的RTP数据包对应的相邻两个视频帧之间的时间间隔。即,大屏设备20按照检测周期,每隔一定的时间,检测一次相邻两个视频帧之间的时间间隔。
示例性的,该检测周期可以根据需要预先设置,其取值范围例如可以是10s~300s,例如设置为80s、200s、350s等。当然,该检测周期也可以是其他任意值。
进一步地,本实现方式中,相邻两个视频帧的时间间隔可以根据上一个视频帧对应的开始包的时间戳信息(timestamp)与当前视频帧对应的开始包的时间戳信息进行时间间隔计算得到该时间间隔,也可以根据上一个视频帧对应的结尾包的时间戳信息与当前视频帧对应的结尾包的时间戳信息进行时间间隔计算得到该时间间隔,或者以其他方式确定。
S130,大屏设备20判断两个视频帧之间的时间间隔是否大于等于预设的时间间隔阈值,若是,则认为当前网络通信质量不佳,执行步骤S150,若否,则认为当前网络通信质量较佳,执行步骤S140。
该时间间隔阈值例如可以是150ms,当然,其取值范围可以是100ms~200ms,例如还可以是130ms,180ms等,其可以根据需要选择。
S140,大屏设备20不开启RTP缓冲(即缓存),直接根据该RTP数据包进行投屏播放。
S150,大屏设备20开启RTP缓冲,并接着执行步骤S160。
即,大屏设备20接收RTP包,将RTP包与预设的缓存池中的RTP包进行比较,根据比较结果确定RTP包的处理方式。需要说明的是,缓存池设置在预设的数据存储区中。
S160,大屏设备20判断新接收到的RTP数据包与缓存池(即缓存区)的缓冲队列中的RTP数据包是否有相同的序列号,若有,则确定缓存池中已存在相同的数据包,执行步骤S170,若无,则确定缓存池中不存在相同的数据包,执行步骤S180。
示例性的,如图5A所示,若新接收到的RTP数据包的序列号为2,缓存池对应的缓冲队列中的RTP数据包的序列号分别为1、2、3、4,也即新接收到的RTP数据包2与缓存池的缓冲队列中的RTP数据包2为相同的数据包,则需要对该RTP数据包2进行去重,即丢弃该数据包,不需要将RTP数据包2缓存至缓存队列中。
S170,大屏设备20丢弃新接收到的RTP数据包。
即,若新接收到的RTP数据包的序列号与缓存池的缓冲队列中的各RTP数据包有相同的序列号,则大屏设备20将新接收到的RTP数据包丢弃,获取下一个RTP数据包的序列号,并确定是否与缓存池中的数据包重复。
S180,大屏设备20将新接收到的RTP数据包与缓存池(即缓存区)的缓冲队列中RTP数据包根据序列号进行排序。
示例性的,大屏设备20先将新接收到的RTP数据包的序列号与缓存池中各RTP数据包的序列号进行比较,确定序列号的大小关系,根据新接收到的RTP数据包的序列号和缓存池中的各RTP数据包的序列号,将新接收到的RTP数据包插入至与其序列号相邻的RTP数据包之间。
具体的,大屏设备20获取缓存池的缓冲队列头部位置的RTP数据包的序列号,将新接收到的RTP数据包的序列号与缓存池中各RTP数据包的序列号进行比较,判断新接收到的RTP数据包的序列号是否小于等于头部位置的RTP数据包的序列号。若新接收到的RTP数据包的序列号小于等于头部位置的RTP数据包的序列号,则丢弃新接收到的RTP数据包。由此,若新接收到的RTP数据包的序列号比缓存池的缓冲队列中头部位置的数据包的序列号小的话,这说明新接收到的RTP数据包为过期包,则不需要进入缓冲队列。
进一步地,若新接收到的RTP数据包的序列号大于头部位置的RTP数据包的序列号,则确定缓存池中头部位置的RTP数据包之后的下一个RTP数据包的序列号,将新接收到的RTP数据包的序列号与缓存池中头部位置的RTP数据包之后的下一个RTP数据包的序列号进行比较,确定序列号的大小关系,根据大小关系,确定该新接收到的RTP数据包的处理方式。即将新接收到的RTP数据包依次或者逐个与缓存池的缓冲队列中各RTP数据包的序列号进行比较,根据比较结果,将新接收到的RTP数据包缓存至缓存池。需要说明的是,缓存池中的RTP数据包按照序列号自小至大的方式存储。
例如,大屏设备20根据新接收到的RTP数据包的序列号和缓存池的缓冲队列中的各RTP数据包的序列号对新接收到的RTP数据包进行排序。如图5B所示,若新接收到的RTP数据包的序列号为2,缓存池对应的缓冲队列中的RTP数据包的序列号分别为1、3、4、5,则应该将新接收到的RTP数据包2插入至RTP数据包1和RTP数据包3之间,组成连续的RTP数据包序列。
进一步地,本申请实现方式中,若缓存池对应的缓冲队列中的RTP数据包的数据量小于预设的数据量阈值,则可以先将多个RTP数据包进行去重后全部插入缓冲队列中,再对多个新插入的RTP数据包进行排序。
更进一步地,本申请实现方式中,若缓存池的缓冲队列中的RTP数据包的数据量等于预设的数据量阈值,则可以将缓存池的缓冲队列中的部分RTP数据包取出后用于排序播放,再将新接收到的RTP数据包插入至缓冲队列并进行排序。
S190,大屏设备20提取RTP数据包中的数据组成ts(transport stream)流(作为视频流的一种示例),用于进行播放。
示例性的,大屏设备20可以根据视频对应的视频帧的播放顺序,依次确定目标视频帧,从缓存池中获取目标视频帧对应的数据包,提取数据包中的数据生成视频流,并播放该视频流。
示例性的,大屏设备20获取待播放的视频帧(目标视频帧)对应的开始包(即开始RTP数据包)的数据标识,根据缓存池中RTP数据包的排序顺序,获取头部位置的RTP数据包的数据标识,通过判断头部位置的RTP数据包是否为待播放的视频帧的开始包,也即,根据开始包的数据标识和头部位置的RTP数据包的数据标识判断开始包的数据标识与头部位置的RTP数据包的数据标识是否相同。若开始包的数据标识与头部位置的RTP数据包的数据标识相同,则确定头部位置的数据包为待播放的视频帧对应的开始包,也即若头部位置的数据包为待播放的视频帧的开始包,则查找与开始包对应的待播放的视频帧的结尾包,并获取开始包与结尾包之间的数据包。
若头部位置的RTP数据包不是待播放的视频帧的开始包,则根据开始包的数据标识和非头部位置的各RTP数据包的数据标识判断开始包的数据标识与非头部位置的各RTP数据包的数据标识是否相同,若开始包的数据标识与缓存池的缓冲队列中非头部位置的各RTP数据包的数据标识相同,则确定与开始包的数据标识相同的缓存池的缓冲队列中非头部位置的RTP数据包为待播放的视频帧对应的开始包。也即,查找到待播放的视频帧的开始包,并在查找到待播放的视频帧的开始包时,查找与开始包对应的待播放的视频帧的结尾包,并获取开始包与结尾包之间的RTP数据包。
进一步地,查找与开始包对应的结尾包的方式为大屏设备20获取待播放的视频帧的开始包对应的待播放的视频帧的结尾包的数据标识,根据视频帧的结尾包的数据标识判断缓存池的缓冲队列中开始包后的RTP数据包的数据标识与待播放的视频帧的结尾包的数据标识是否相同,若在缓存池的缓冲队列中RTP数据包的数据标识与视频帧的结尾包的数据标识相同,则确定RTP数据包为待播放的视频帧的结尾包。
如此,根据该头部包、结尾包以及二者之间的RTP数据包形成ts流。
或者,大屏设备20根据预设的取包顺序,按照序列号从小到大依次取数个RTP数据包以形成ts流。
S200,大屏设备20对ts流进行解码送显。
示例性的,大屏设备20根据待播放的视频帧的开始包、与开始包对应的待播放的视频帧的结尾包以及开始包与结尾包之间的数据包,对数据包进行重组得到ts流,并将ts流送到显示器进行显示,即实现了对应视频的播放。
需要说明的是,由于前述RTP数据包缓存处理等需要一定的时间,因此在进行视频播放的时候,大屏设备20播放的视频与手机10播放的视频之间存在一定的时间差,但是该时间差极小,可以忽略不计,并且不影响用户的观看体验。
在投屏场景中,由于通信质量不佳等原因极易引起数据包重复、乱序等问题,从而引起投屏花屏问题,即投屏场景中大屏设备20在播放视频的过程中,视频投屏花屏问题比较显著。
本实现方式中,若大屏设备20确定相邻的两个视频帧之间的间隔大于等于例如150ms,则视为当前网络通信质量不佳,或者视为当前网络环境非常不好。在网络不好的情况下,采用RTP数据包缓冲(即缓存)、RTP数据包重排(即重新排序)以及RTP数据包去重的数据包处理策略,对接收到的RTP数据包进行相应处理,可以显著地减少由于RTP数据包重复和/或乱序引起的花屏次数,从而提升投屏场景中的视频播放效果和用户体验。
即,在视频播放过程中,增加了RTP数据包缓冲处理,为RTP数据包重排提供了条件,通过重排的方式可以尽可能纠正RTP数据包乱序的问题,减少RTP数据包乱序导致的花屏次数,可以有效地提升视频播放效果和用户体验。
另外,在视频播放过程中,增加了RTP数据包去重处理,不重复保留相同的RTP数据包,可以避免RTP数据包重复导致的花屏次数,从而可以有效地提升视频播放效果和用户体验。
如此,通过进行RTP数据包重排和/或去重处理,可以显著地减少花屏次数,显著地提升了视频播放效果和用户体验。
需要说明的是,本实现方式提供的视频播放方法,应用于投屏场景中,可以认为是一种基于RTP处理的投屏花屏优化方法,可以改善投屏花屏的问题。
需要说明的是,本申请的另一种实现方式中,大屏设备20若确定获取的待播放的视频帧的开始包、开始包和结尾包之间的全部数据包以及缓存池中的结尾包不是连续的RTP数据包,也可以直接丢弃这一帧数据,进行下一个视频帧的检测。
由此,可以捕捉到会导致花屏的乱序的数据包,对乱序的数据包进行缓冲,在缓冲的过程中进行去重和重排序可以得到顺序正确的数据包,从而得到连续的视频流,并进行解码播放,解决了因网络差而导致数据包乱序引起花屏的问题,即减少了花屏次数,或者避免了花屏产生。
请参见图6,本申请的另一种实现方式中,该视频播放方法中,大屏设备20在执行前述步骤S110之后,也可以直接执行步骤S150,即直接开启RTP缓冲处理,以确定RTP数据包的处理方式。如此,可以不用考虑网络质量因素,在整个视频播放过程中,都进行RTP数据包的检测处理,以减少花屏次数,从而提升视频播放效果和用户体验。
需要说明的是,本申请的另一种实现方式中,前述检测周期也可以当前网络通信速率(作为当前网络通信质量的一种示例,也可以称为当前网络传输速率),以及预设的网络通信速率和检测周期的对应关系表确定。例如,若当前网络通信速率较大(例如大于一定的阈值,该阈值可以根据需要设置),则检测周期可以设置的较大,如此,可以避免在网络通信质量较佳的时候,多次进行检测,造成大屏设备20的系统功能的损耗。若当前网络通信速率较小(例如大于一定的阈值,该阈值可以根据需要设置),则检测周期可以设置的较小。如此,可以更为准确、全面地确定出重复数据包,进而减少花屏次数,提升视频播放效果和用户体验。
即,本申请的一种实现方式中,当前网络通信质量例如可以由当前网络通信速率确定,则时间间隔阈值通过以下方式确定:获取大屏设备20的当前网络通信速率,若该当前网络通信速率大于等于第一通信速率阈值,则时间间隔阈值为第一时间间隔阈值,若该当前网络通信速率小于第一通信速率阈值,则时间间隔阈值为第二时间间隔阈值。
如此,根据当前网络通信速率,可以确定不同网络通信速率情况下对应的时间间隔阈值,可以更为准确、全面地确定出重复数据包,进而减少花屏次数,提升视频播放效果和用户体验。
本申请的一种实现方式中,第一通信速率阈值可以大于等于600kb/s,例如第一通信速率阈值的取值范围例如可以是600kb/s~900kb/s,示例性的,例如600kb/s、750kb/s、860kb/s、900kb/s等。当然,第一通信速率阈值也可以是其他任意值,其可以根据需要设置。
本申请的一种实现方式中,第一时间间隔阈值可以是小于150ms,第一时间间隔阈值的取值范围例如可以是100ms~140ms,例如100ms、135ms、140ms等。当然,第一时间间隔阈值也可以是其他任意值,其可以根据需要设置。
本申请的一种实现方式中,第二时间间隔阈值例如可以大于等于150ms,第二时间间隔阈值的取值范围例如可以是150ms~200ms,例如150ms、160ms、200ms等。当然,第二时间间隔阈值也可以是其他任意值,其可以根据需要设置。
当然,在本申请的另一些实现方式中,网络通信速率与时间间隔阈值之间也可以是其他的对应关系,其可以根据需要设置。
当然,本申请实现方式中,也可以根据相隔一个或者两个以上的视频帧之间的开始包或者结尾包之间的时间确定前述时间间隔。
另外,本申请的另一种实现方式中,也可以根据当前网络通信速率(作为当前网络通信质量的一种示例),以及例如预设的网络通信速率和检测周期的对应关系表,确定时间间隔阈值。例如,若当前网络通信速率较大(例如大于一定的阈值,该阈值可以根据需要设置),则时间间隔阈值可以设置的较大,如此,可以避免在网络通信质量较佳的时候,多次进行检测,造成大屏设备20的系统功能的损耗。若当前网络通信速率较小(例如大于一定的阈值,该阈值可以根据需要设置),则时间间隔阈值可以设置的较小。如此,可以更为准确、全面地确定出重复数据包,进而减少花屏次数,提升视频播放效果和用户体验。
即,本申请的一种实现方式中,当前网络通信质量例如可以由当前网络通信速率确定,则检测周期通过以下方式确定:根据当前网络通信速率确定检测周期,并且若当前网络通信速率大于等于第二速率阈值,则检测周期为第一检测周期,若当前网络通信速率小于第二速率阈值,则检测周期为第二检测周期。
如此,根据当前网络通信速率,可以确定不同网络通信速率情况下对应的检测周期,可以更为准确、全面地确定出重复数据包,进而减少花屏次数,提升视频播放效果和用户体验。
本申请的一种实现方式中,第二通信速率阈值的取值范围例如可以与前述第一通信速率阈值的取值范围相同,即大于等于600kb/s,例如第一通信速率阈值的取值范围例如可以是600kb/s~900kb/s,示例性的,例如600kb/s、750kb/s、860kb/s、900kb/s等。第二速率阈值的取值范围例如也可以与前述第一通信速率阈值的取值范围不同,其取值例如为700kb/s~800kb/s,第二通信速率阈值例如为700kb/s、780kb/s、800kb/s等。当然,第二通信速率阈值也可以是其他任意值,其可以根据需要设置。
本申请的一种实现方式中,第一检测周期的取值范围例如可以是200ms~1000s,例如200ms、860ms、1000ms等,或者是1min左右等。当然,第一检测周期也可以是其他任意值,其可以根据需要设置。
本申请的一种实现方式中,第二检测周期的取值范围例如可以是60ms~200ms,例如60ms、120ms、200ms等。当然,第二检测周期也可以是其他任意值,其可以根据需要设置。
当然,在本申请的另一些实现方式中,网络通信速率与检测周期之间也可以是其他的对应关系,其可以根据需要设置。
在本申请的另一些实现方式中,当前网络通信质量也可以通过其他的通信参数确定。
在本申请的另一些实现方式中,前述RTP数据包也可以是基于用户数据报协议(User Dategram Protocol,UDP)或者其他协议封装或者传输的数据包。
在本申请的一些实现方式中,若前述当前网络通信质量不满足网络通信质量要求(即通信网络速率较小,或者低于一定的阈值),则确定满足数据包缓存处理条件,开启RTP数据包缓存处理。
在本申请的另一些实现方式中,该数据包缓存处理条件也可以是其他条件,其可以根据需要设置。并且若大屏设备20确定满足数据包缓存处理条件,则将数据包与缓存池中的数据包进行比较,根据比较结果确定数据包的处理方式。若大屏设备20确定不满足数据包缓存处理条件,则直接根据数据包播放待播放视频。
在本申请另一些实现方式中,大屏设备20也可以以其他方式确定缓存池中是否存在于新接收到的数据包相同的数据包。
则,请参见图7,在本申请另一种实现方式中,该视频播放方法包括以下步骤:
S210,大屏设备20接收数据包。
S220,大屏设备20确定是否满足数据包缓存处理条件。若否,执行步骤S230。若是,执行步骤S240。
S230,大屏设备20不开启数据包缓存处理。
S240,大屏设备20开启数据包缓存处理,并执行步骤S250。
S250,大屏设备20将数据包与预设的缓存池中的数据包进行比较,根据比较结果确定数据包的处理方式。即,若缓存池中存在与数据包相同的数据包,则执行步骤S260,丢弃数据包;若缓存池中不存在与数据包相同的数据包,则执行步骤S270,将数据包缓存至缓存池中。
S260,大屏设备20丢弃数据包。
S270,大屏设备20将数据包缓存至缓存池中,并执行步骤S280。
S280,大屏设备20根据缓存池中的数据包播放待播放视频。
本实现方式中,各步骤的具体实现可以参见前述图4相关的说明,此处不再赘述。
本实现方式中,大屏设备20通过将接收的数据包与预设的缓存池中的数据包进行比较,若大屏设备20确定缓存池中不存在与数据包相同的数据包,则将该数据包缓存至缓存池,以用于后续播放。若大屏设备20确定缓存池中存在与数据包相同的数据包,则丢弃数据包,避免数据包重复。并且后续根据缓存池的数据包播放待播放的视频。由此,对于接收到的数据包,若缓存池中已经存在相同的数据包,则将新接收到的数据包直接丢弃,防止数据包重复。对于缓存池中不存在数据包,则将接收的数据包缓存至缓存池中,以用于后续播放。如此,可以避免数据包重复引起的投屏、视频点播等视频播放场景中存在的花屏问题,提升视频播放效果和用户体验。
请参见图8,在本申请另一种实现方式中,大屏设备20在执行步骤S210之后,也可以不执行S220和S230,直接执行S240以及后续处理。如此,可以不用考虑网络质量因素,在整个视频播放过程中,都进行RTP数据包的检测处理,以减少花屏次数。
在本申请的另一些实现方式中,该视频播放方法也可以包括其他的步骤,或者以其他的顺序执行前述步骤,以实现投屏花屏帧的优化处理,其可以根据需要选择。
在本申请的另一些实现方式中,前述手机10作为第二电子设备的一种示例,该第二电子设备也可以是平板电脑等其他电子设备。
在本申请的另一些实现方式中,前述大屏设备20作为第一电子设备的一种示例,该第一电子设备也可以是电视、智慧屏等其他电子设备。
在本申请的另一些实现方式中,该视频播放系统和视频播放方法也可以应用于视频点播、视频通话等视频播放场景。则,其中第二电子设备也可以是服务器、云端等电子设备,第二电子设备可以是手机、平板电脑、电视等电子设备。
参见图9,图9所示为根据本申请的一实施方式提供的电子设备900的结构示意图。电子设备900可以包括耦合到控制器中枢904的一个或多个处理器901。对于至少一个实施例,控制器中枢904经由诸如前端总线(FSB)之类的多分支总线、诸如快速通道互连(QPI)之类的点对点接口、或者类似的连接与处理器901进行通信。处理器901执行控制一般类型的数据处理操作的指令。在一实施例中,控制器中枢904包括,但不局限于,图形存储器控制器中枢(GMCH)(图中未示出)和输入/输出中枢(IOH)(其可以在分开的芯片上)(图中未示出),其中GMCH包括存储器和图形控制器并与IOH耦合。
电子设备900还可包括耦合到控制器中枢904的协处理器906和存储器902。或者,存储器902和GMCH中的一个或两者可以被集成在处理器901内(如本申请中所描述的),存储器902和协处理器906直接耦合到处理器901以及控制器中枢904,控制器中枢904与IOH处于单个芯片中。
存储器902可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或这两者的组合。
在一个实施例中,协处理器906是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。协处理器906的任选性质用虚线表示在图9中。
在一个实施例中,电子设备900可以进一步包括网络接口(NIC)903。网络接口903可以包括收发器,用于为电子设备900提供无线电接口,进而与任何其他合适的设备(如前端模块,天线等)进行通信。在各种实施例中,网络接口903可以与电子设备900的其他组件集成。网络接口903可以实现上述实施例中的通信单元的功能。
电子设备900可以进一步包括输入/输出(I/O)设备905。输入/输出(I/O)设备905可以包括:用户界面,该设计使得用户能够与电子设备900进行交互;外围组件接口的设计使得外围组件也能够与电子设备900交互;和/或传感器设计用于确定与电子设备900相关的环境条件和/或位置信息。
值得注意的是,图9仅是示例性的。即虽然图9中示出了电子设备900包括处理器901、控制器中枢904、存储器902等多个器件,但是,在实际的应用中,使用本申请各方法的设备,可以仅包括电子设备900各器件中的一部分器件,例如,可以仅包含处理器901和NIC903。图9中可选器件的性质用虚线示出。
在该电子设备900的存储器中可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性计算机可读介质。计算机可读存储介质中存储有指令,具体而言,存储有该指令的暂时和永久副本。
本申请中,该电子设备900具体可以是前述的手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)或台式电脑等终端设备。该电子设备的存储器中存储的指令可以包括:由处理器中的至少一个单元执行时导致电子设备实施如前述提到的视频播放方法的指令。
参见图10,图10所示为根据本申请的一实施方式提供的SoC(System on Chip,片上系统)100的结构示意图。在图10中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC100的可选特征。该SoC100可以被用于根据本申请的任一电子设备,根据其所在的设备不同以及其内所存储的指令的不同,可以实现相应的功能。
在图10中,SoC100包括:互连单元102,其被耦合至处理器101;系统代理单元106;总线控制器单元105;集成存储器控制器单元103;一组或一个或多个协处理器107,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;SRAM(静态随机存取存储器)单元108;DMA(直接存储器存取)单元104。在一个实施例中,协处理器107包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
SRAM单元108中可以包括用于存储数据和/或指令的一个或多个计算机可读介质。计算机可读存储介质中可以存储有指令,具体而言,存储有该指令的暂时和永久副本。该指令可以包括:由处理器中的至少一个单元执行时导致电子设备实施如前述所提到的视频播放方法的指令。
本申请公开的机制的各实施例均可以以软件、硬件、固件或这些实现方法的组合等方式实现。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程程序包括至少一个处理器、存储器(或存储系统,包括易失性和非易失性存储器和/或存储单元)。
可将程序代码应用于输入指令,以执行文本描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。可以理解,在本申请的实施例中,处理系统可以是微处理器、数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)等,和/或其任何组合。根据另一方面,处理器可以是单核处理器、多核处理器等,和/或其任何组合。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理器通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,文本中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
至少一个实施例的一个或多个方面可以由存储在计算机可读取存储介质上的表示性指令来实现,指令表示处理器中的各种逻辑,指令在被机器读取时使得该机制作用于执行文本所述的技术的逻辑。被称为“IP核”的这些表示可以被存储在有形的计算机可读取存储介质上,并被提供给多个客户或生产设备实施以加载到实际制造该逻辑或处理器的制造机器中。
在一些情况下,指令转换器可用来将指令从源指令集转移至目标指令集。例如,指令转换器可以变换(例如使用静态二进制变换、包括动态编译的动态二进制变换)、变形、仿真或以其他方式将指令转换成由核来处理的一个或多个其他指令。指令转换器可以用软件、硬件、固件、或其他组合实现。指令转换器可以在处理器上、在处理器外、或者部分在处理器上且部分在处理器外。
需要说明的是,如本文所使用的,术语“模块”可以指代或者专用集成电路(ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用或群组)和/或存储器、组合逻辑电路、和/或提供所描述的功能的其他适当硬件组件,或者可以作为这些硬件组合的一部分。即本申请各设备实施例中的各模块都是逻辑模块,在物理上,一个逻辑模块可以是一个物理单元,也可以是一个物理单元的一部分,还可以是多个物理单元的组合实现。另外,本申请上述各设备实施例并没有将于解决本申请所提出的技术问题关系不太密切的模块引入,这并不表明上述设备实施例并不存在其他的模块。
需要说明的是,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
虽然通过参照本申请的某些优选实施方式,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。本领域技术人员可以在形式上和细节上对其作各种改变,包括做出若干简单推演或替换,而不偏离本申请的精神和范围。
Claims (14)
1.一种视频播放方法,其特征在于,应用于第一电子设备,所述方法包括:
接收第二电子设备发送来的待播放视频对应的第一数据包;
将接收到的所述第一数据包与预设的缓存池中的数据包进行比较,根据比较结果确定所述第一数据包的处理方式,所述处理方式包括,若所述缓存池中不存在与所述第一数据包相同的数据包,则将所述第一数据包缓存至所述缓存池中;若所述缓存池中存在与所述第一数据包相同的数据包,则丢弃所述第一数据包;
根据所述缓存池中的数据包播放所述待播放视频。
2.根据权利要求1所述的视频播放方法,其特征在于,将接收到的所述第一数据包与预设的缓存池中的数据包进行比较之前,所述方法还包括:
确定所述第一电子设备的当前网络通信质量;并且
若所述当前网络通信质量不满足网络通信质量要求,则将接收到的所述第一数据包与预设的缓存池中的数据包进行比较。
3.根据权利要求2所述的视频播放方法,其特征在于,所述网络通信质量根据接收到的数据包对应的视频帧之间的时间间隔确定,并且若所述时间间隔大于等于时间间隔阈值,则确定所述当前网络通信质量不满足所述网络通信质量要求。
4.根据权利要求3所述的视频播放方法,其特征在于,所述时间间隔阈值通过以下方式确定:
获取预先设置的所述时间间隔阈值;或者
获取当前网络通信速率;
根据所述当前网络通信速率确定所述时间间隔阈值,并且若所述当前网络通信速率大于等于第一通信速率阈值,则所述时间间隔阈值为第一时间间隔阈值,若所述当前网络通信速率小于第一通信速率阈值,则所述时间间隔阈值为第二时间间隔阈值。
5.根据权利要求4所述的视频播放方法,其特征在于,所述方法还包括:
根据检测周期周期性地确定视频帧之间的时间间隔。
6.根据权利要求5所述的视频播放方法,其特征在于,所述检测周期通过以下方式确定:
获取预先设置的所述检测周期;或者
根据所述当前网络通信速率确定所述检测周期,并且若所述当前网络通信速率大于等于第二通信速率阈值,则所述检测周期为第一检测周期,若所述当前网络通信速率小于第二通信速率阈值,则所述检测周期为第二检测周期。
7.根据权利要求1-6任意一项所述的视频播放方法,其特征在于,将所述第一数据包缓存至所述缓存池中,包括:
确定所述第一数据包的序列号,以及确定所述缓存池中各数据包的序列号;
根据所述第一数据包的序列号和所述缓存池中的各数据包的序列号,将所述第一数据包插入至与其序列号相邻的数据包之间。
8.根据权利要求1-7任意一项所述的视频播放方法,其特征在于,将所述第一数据包与预设的缓存池中的数据包进行比较,根据比较结果确定所述第一数据包的处理方式,包括:
确定所述第一数据包的序列号,以及确定所述缓存池中各数据包的序列号;
将所述第一数据包的序列号与所述缓存池中各数据包的序列号进行比较;
若所述缓存池中不存在与所述第一数据包的序列号相同的数据包,则确定所述缓存池中不存在与所述第一数据包相同的数据包,将所述第一数据包缓存至所述缓存池中;
若所述缓存池中存在与所述第一数据包的序列号相同的数据包,则确定所述缓存池中存在与所述第一数据包相同的数据包,丢弃所述第一数据包。
9.根据权利要求8所述的视频播放方法,其特征在于,所述缓存池中的数据包按照序列号自小至大的方式存储,则将所述第一数据包的序列号与所述缓存池中各数据包的序列号进行比较,根据比较结果确定所述第一数据包的处理方式,包括:
将所述第一数据包的序列号与所述缓存池中头部位置的数据包的序列号进行比较,确定序列号的大小关系;
若所述第一数据包的序列号小于等于所述缓存池中头部位置的数据包的序列号,则丢弃所述第一数据包;
若所述第一数据包的序列号大于所述缓存池中头部位置的数据包的序列号,则依次确定所述缓存池中头部位置的数据包之后的下一个数据包的序列号,将所述第一数据包的序列号与所述缓存池中头部位置的数据包之后的下一个数据包的序列号进行比较,确定序列号的大小关系,根据所述大小关系,确定所述第一数据包的处理方式。
10.根据权利要求1-9任意一项所述的视频播放方法,其特征在于,根据所述缓存池中的数据包播放所述待播放视频,包括:
确定目标视频帧,从所述缓存池中获取所述目标视频帧对应的数据包;
提取所述数据包中的数据生成视频流;
播放所述视频流。
11.根据权利要求1-10任意一项所述的视频播放方法,其特征在于,所述第一数据包为基于实时传输协议的数据包。
12.一种视频播放系统,其特征在于,包括第一电子设备和第二电子设备,其中,
所述第二电子设备用于向所述第一电子设备发送待播放视频对应的第一数据包;
所述第一电子设备用于接收第二电子设备发送来的所述第一数据包,将接收到的所述第一数据包与预设的缓存池中的数据包进行比较,根据比较结果确定所述第一数据包的处理方式,所述处理方式包括,若所述缓存池中不存在与所述第一数据包相同的数据包,则将所述第一数据包缓存至所述缓存池中;若所述缓存池中存在与所述第一数据包相同的数据包,则丢弃所述第一数据包;根据所述缓存池中的数据包播放所述待播放视频。
13.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序,所述计算机程序包括程序指令;
处理器,用于执行所述程序指令,以使所述电子设备执行如权利要求1-11任意一项所述的视频播放方法。
14.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被电子设备运行以使所述电子设备执行如权利要求1-11任意一项所述的视频播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210907759.2A CN116055790B (zh) | 2022-07-29 | 2022-07-29 | 视频播放方法和系统、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210907759.2A CN116055790B (zh) | 2022-07-29 | 2022-07-29 | 视频播放方法和系统、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116055790A true CN116055790A (zh) | 2023-05-02 |
CN116055790B CN116055790B (zh) | 2024-03-19 |
Family
ID=86120590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210907759.2A Active CN116055790B (zh) | 2022-07-29 | 2022-07-29 | 视频播放方法和系统、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116055790B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090097411A1 (en) * | 2007-10-15 | 2009-04-16 | Yokogawa Electric Corporation | Communication quality diagnostic unit |
CN103124412A (zh) * | 2012-11-16 | 2013-05-29 | 佳都新太科技股份有限公司 | 一种基于rtp协议的网络抖动处理技术 |
CN104486166A (zh) * | 2014-12-31 | 2015-04-01 | 北京理工大学 | 一种基于QoS的网络化控制系统采样周期调整方法 |
JP2016119557A (ja) * | 2014-12-19 | 2016-06-30 | 日本放送協会 | 映像送信装置及びプログラム |
CN108093430A (zh) * | 2017-12-21 | 2018-05-29 | 重庆脉实智能制造有限公司 | 一种适用于高速移动环境下的无线网络探测方法 |
CN111107440A (zh) * | 2019-12-26 | 2020-05-05 | 腾讯科技(深圳)有限公司 | 视频传输控制方法及装置、设备、存储介质 |
CN111970215A (zh) * | 2020-10-21 | 2020-11-20 | 武汉中科通达高新技术股份有限公司 | 一种数据包管理方法及装置 |
CN113542071A (zh) * | 2021-07-16 | 2021-10-22 | 迈普通信技术股份有限公司 | 网络质量监测方法、装置、电子设备及sdn网络系统 |
CN113711508A (zh) * | 2019-04-17 | 2021-11-26 | 高通股份有限公司 | 同步信号周期调整 |
CN113778364A (zh) * | 2021-09-24 | 2021-12-10 | 京东方科技集团股份有限公司 | 投屏方法、装置、电子设备及存储介质 |
CN114422866A (zh) * | 2022-01-17 | 2022-04-29 | 深圳Tcl新技术有限公司 | 一种视频处理方法、装置、电子设备和存储介质 |
WO2022143034A1 (zh) * | 2020-12-31 | 2022-07-07 | 华为技术有限公司 | 投屏音视频数据的传输方法以及相关设备 |
-
2022
- 2022-07-29 CN CN202210907759.2A patent/CN116055790B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090097411A1 (en) * | 2007-10-15 | 2009-04-16 | Yokogawa Electric Corporation | Communication quality diagnostic unit |
CN103124412A (zh) * | 2012-11-16 | 2013-05-29 | 佳都新太科技股份有限公司 | 一种基于rtp协议的网络抖动处理技术 |
JP2016119557A (ja) * | 2014-12-19 | 2016-06-30 | 日本放送協会 | 映像送信装置及びプログラム |
CN104486166A (zh) * | 2014-12-31 | 2015-04-01 | 北京理工大学 | 一种基于QoS的网络化控制系统采样周期调整方法 |
CN108093430A (zh) * | 2017-12-21 | 2018-05-29 | 重庆脉实智能制造有限公司 | 一种适用于高速移动环境下的无线网络探测方法 |
CN113711508A (zh) * | 2019-04-17 | 2021-11-26 | 高通股份有限公司 | 同步信号周期调整 |
CN111107440A (zh) * | 2019-12-26 | 2020-05-05 | 腾讯科技(深圳)有限公司 | 视频传输控制方法及装置、设备、存储介质 |
CN111970215A (zh) * | 2020-10-21 | 2020-11-20 | 武汉中科通达高新技术股份有限公司 | 一种数据包管理方法及装置 |
WO2022143034A1 (zh) * | 2020-12-31 | 2022-07-07 | 华为技术有限公司 | 投屏音视频数据的传输方法以及相关设备 |
CN113542071A (zh) * | 2021-07-16 | 2021-10-22 | 迈普通信技术股份有限公司 | 网络质量监测方法、装置、电子设备及sdn网络系统 |
CN113778364A (zh) * | 2021-09-24 | 2021-12-10 | 京东方科技集团股份有限公司 | 投屏方法、装置、电子设备及存储介质 |
CN114422866A (zh) * | 2022-01-17 | 2022-04-29 | 深圳Tcl新技术有限公司 | 一种视频处理方法、装置、电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
赵淑兰;宋人杰;李广仁;: "在接收端实现流媒体同步控制的方法", 东北电力大学学报, no. 02 * |
Also Published As
Publication number | Publication date |
---|---|
CN116055790B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110798868B (zh) | 网络切换方法、电子设备以及芯片子系统 | |
KR20220080198A (ko) | 오디오 데이터 프로세싱 방법, 서버, 및 저장 매체 | |
CN107438990B (zh) | 用于递送定时信息的方法和设备 | |
CN105163391B (zh) | 数据传输方法、终端及无线访问接入点 | |
CN116055790B (zh) | 视频播放方法和系统、电子设备 | |
CN112565876B (zh) | 投屏方法、装置、设备、系统及存储介质 | |
CN107430496A (zh) | 针对远程显示丢弃帧 | |
WO2021179314A1 (zh) | 下行传输发送方法、下行传输接收方法、装置和通信设备 | |
CN113038437B (zh) | 数据传输方法、装置、存储介质及终端设备 | |
JP7259018B2 (ja) | データ伝送方法、装置、デバイス、システム及び記憶媒体 | |
CN116055803B (zh) | 视频播放方法和系统、电子设备 | |
WO2022228569A1 (zh) | 蓝牙设备控制传输的方法和装置、电子设备 | |
CN115643441A (zh) | 视频播放方法、装置、设备、可读存储介质及程序产品 | |
CN114979793A (zh) | 一种直播数据传输方法、装置、系统、设备和介质 | |
JP6001724B1 (ja) | 通信システム | |
CN110856162B (zh) | 网络配置方法及相关装置 | |
WO2021223235A1 (zh) | 数据传输处理方法、装置、通信设备及存储介质 | |
US20220408469A1 (en) | Downlink control information configuration method and apparatus, and communication device and storage medium | |
JP7483000B2 (ja) | ダウンリンク制御情報の構成方法、装置、通信機器及び記憶媒体 | |
WO2022032593A1 (zh) | 一种跳频配置方法、跳频配置装置及存储介质 | |
WO2022032595A1 (zh) | 一种频率切换方法、频率切换装置及存储介质 | |
WO2023207348A1 (zh) | 一种视频帧处理方法、设备、视频系统、介质及芯片 | |
WO2022067768A1 (zh) | 一种资源配置方法、资源配置装置及存储介质 | |
RU2799998C1 (ru) | Способ и устройство для передачи данных и устройство связи | |
JP2011249922A (ja) | ネットワーク装置、tcpパケット受信装置及び方法 |
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 |