CN114071235B - 一种基于gstreamer的播放器提升起播黑屏性能的方法 - Google Patents

一种基于gstreamer的播放器提升起播黑屏性能的方法 Download PDF

Info

Publication number
CN114071235B
CN114071235B CN202111328061.7A CN202111328061A CN114071235B CN 114071235 B CN114071235 B CN 114071235B CN 202111328061 A CN202111328061 A CN 202111328061A CN 114071235 B CN114071235 B CN 114071235B
Authority
CN
China
Prior art keywords
video
playing
gstreamer
asynchronous
player based
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
CN202111328061.7A
Other languages
English (en)
Other versions
CN114071235A (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.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric 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 Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN202111328061.7A priority Critical patent/CN114071235B/zh
Publication of CN114071235A publication Critical patent/CN114071235A/zh
Application granted granted Critical
Publication of CN114071235B publication Critical patent/CN114071235B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/4425Monitoring of client processing errors or hardware failure
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明提供了一种基于gstreamer的播放器提升起播黑屏性能的方法,包括步骤一:在音视频播放前,在产品系统相应目录下的配置文件中配置预滚和异步预滚开关;步骤二:在Android产品系统和基于gstreamer的流媒体播放器之间的中间自适应层,获取步骤一配置的开关;步骤三:在基于gstreamer的流媒体播放器的sink层中,根据步骤二中异步预滚开关重起一个线程来控制预滚显示,对于从头起播和seek起播使用不同的起播流程;通过本发明的方法,可以实现在视频起播缓冲完成以及系统底层解mute之前,视频播放不会处于黑屏状态,显著缩短了视频起播的黑屏时长,大大提升了视频播放的快速起播体验感,从而进一步提高了产品核心竞争力。

Description

一种基于gstreamer的播放器提升起播黑屏性能的方法
技术领域
本发明涉及流媒体播放技术领域,具体涉及一种基于gstreamer的播放器提升起播黑屏性能的方法。
背景技术
随着网络技术和流媒体技术的快速发展,电子消费类产品不断增长,人们对于消费类电子产品的要求越来越高。而消费类电子产品使用最多的功能之一就是音视频播放功能,因此提升音视频播放体验是流媒体开发领域重点关注的问题,也是在这个精益求精的年代提升产品竞争力的关键因素之一。
而视频播放的第一个直观感受就是视频起播性能,目前Android系统上的播放器在起播视频的时候,在视频缓冲完成以及系统底层解mute之前,会存在一定时长的黑屏问题,即在点击视频播放到出现视频画面之间会存在黑屏现象。这是因为Android系统底层显示视频需要在获得稳定视频信号一段时间后,才真正在屏幕上显示,其需要的时间长度不固定,执行解mute的时间点也无法捕获。有时候黑屏的时间很长,这非常影响播放体验感。
发明内容
本发明的目的在于提供一种基于gstreamer的播放器提升起播黑屏性能的方法,以期解决背景技术中存在的技术问题。
为了实现上述目的,本发明采用以下技术方案:
一种基于gstreamer的播放器提升起播黑屏性能的方法,包括:
步骤一:在音视频播放前,在产品系统相应目录下的配置文件中配置预滚和异步预滚开关;
步骤二:在Android产品系统和基于gstreamer的流媒体播放器之间的中间自适应层,获取步骤一配置的开关;
步骤三:在基于gstreamer的流媒体播放器的sink层中,根据步骤二中异步预滚开关重起一个线程来控制预滚显示,对于从头起播和seek起播使用不同的起播流程;
步骤四:在基于gstreamer的流媒体播放器的sink层中,根据步骤二中的预滚和异步预滚开关值以及步骤三中的异步延时来控制视频第一帧的显示;依据预滚开关的值来决定在解码出第一帧视频后是否需要立马直接显示;并根据异步预滚开关值来决定是否需要延时等待seek操作;
步骤五:如果是从头起播视频,当解码完第一帧视频,则立马送去显示;如果是seek起播,则第一帧不做预滚preroll显示,然后视频起播成功开始播放play。
在一些实施例中,所述配置文件中配置预滚和异步预滚开关是采用的是系统配置文件的形式配置开关。
有益效果
本发明提出了一种基于gstreamer的播放器提升起播黑屏性能的方法,通过本发明的方法,可以实现在视频起播缓冲完成以及系统底层解mute之前,视频播放不会处于黑屏状态,显著缩短了视频起播的黑屏时长,大大提升了视频播放的快速起播体验感,从而进一步提高了产品核心竞争力。
附图说明
图1为实施例中Android系统上播放器起播视频的正常流程。
图2为本发明方法的视频起播流程:其中蓝色虚框中的流程是本发明提出的异步预滚(async preroll)显示第一帧视频画面的起播流程。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
相反,本申请涵盖任何由权利要求定义的在本申请的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本申请有更好的了解,在下文对本申请的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。
本发明提出了一种基于gstreamer的播放器提升起播黑屏性能的方法,使得视频起播缓冲完成以及系统底层解mute之前,视频播放不会处于黑屏状态。
具体包括如下技术步骤:
步骤一:在音视频播放前,在产品系统(如电视系统)相应目录下的配置文件中配置预滚(preroll)和异步预滚(async preroll)开关,采用的是系统配置文件的形式配置开关,可以随时进行开关控制且操作方便,并不需要去通过修改代码来控制;
步骤二:在Android产品系统和基于gstreamer的流媒体播放器之间的中间自适应层,获取步骤一配置的开关;
步骤三:在基于gstreamer的流媒体播放器的sink(显示)层中,根据步骤二中异步预滚(async preroll)开关重起一个线程来控制预滚显示,从而达到一种异步控制的效果,对于从头起播和seek起播使用不同的起播流程;
步骤四:在基于gstreamer的流媒体播放器的sink(显示)层中根据步骤二中的预滚(preroll)和异步预滚(async preroll)开关值以及步骤三中的异步延时来控制视频第一帧的显示。依据预滚(preroll)开关的值来决定在解码出第一帧视频后是否需要立马直接显示;并根据异步预滚(async preroll)开关值来决定是否需要延时等待seek操作;
步骤五:如果是从头起播视频,当解码完第一帧视频,则立马送去显示;如果是seek起播(续播如跳过片头\从上次结束位置起播),则第一帧不做预滚preroll显示(seek前的视频第一帧),然后视频起播成功开始播放play。
以上步骤只在音视频起播的时候执行一次。
以上步骤一中,配置配置预滚(preroll)和异步预滚(async preroll)开关采用音视频播放器技术领域固有的实现方法;以上步骤二中,开关从Android产品系统到播放器的传递采用音视频播放器技术领域固有的实现方法;以上步骤三、步骤四、步骤五中的异步控制第一帧视频的显示的方法采用C语言标准库里的函数。
以下结合附图的实现流程图对比图,对本发明的具体实施方式进行详细的说明:
如附图1所示,目前Android系统上播放器起播视频的正常流程是:
起播视频(set url)-→缓冲prepared视频数据-→续播(存在seek to操作)-→播放视频(play)-→显示视频画面(show frame)--→解mute。
如附图2所示,是本发明提出的一种基于gstreamer的播放器提升起播黑屏性能的方法,从而解决视频起播黑屏现象的方法,其与一般播放器起播视频流程附图1的区别具体包括如下步骤:
步骤一:在音视频起播前,在产品系统(如电视系统/vendor/etc/mmp/mmp.conf)相应目录下的配置文件mmp.conf中配置预滚(preroll)和异步预滚(async preroll)开关,采用的是系统配置文件的形式配置开关,可以随时进行开关控制且操作方便,并不需要去通过修改代码来控制;
步骤二:点击播腾讯应用中的《您好,母亲大人》,在Android产品系统和基于gstreamer的流媒体播放器之间的中间自适应层,获取步骤一配置的开关;
步骤三:视频解码出第一帧视频后,在基于gstreamer的流媒体播放器的sink(显示)层中,根据步骤二中获取到的异步预滚(async preroll)开关值重起一个线程来控制视频第一帧的显示与否(延时判断),从而达到一种异步控制的效果,对于从头起播和seek起播使用不同的预滚策略;
步骤四:在基于gstreamer的流媒体播放器的sink(显示)层中根据步骤二中的预滚(preroll)和异步预滚(async preroll)开关值以及步骤三中的异步延时来控制视频第一帧的显示。依据预滚(preroll)开关的值来决定在解码出第一帧视频后是否需要立马直接显示;并根据异步预滚(async preroll)开关值来决定是否需要延时等待seek操作;
步骤五:如果是从头起播视频,当解码完第一帧视频,则立马送去显示,解mute看到视频画面,然后播放play;如果是seek起播(续播如跳过片头\从上次结束位置起播),则第一帧不做预滚preroll显示(seek前的视频第一帧),然后视频起播成功开始播放play。
以上步骤只在音视频起播的时候执行一次。
本发明专利针对以上Android系统上的播放器在起播视频存在黑屏现象,提出了一种基于gstreamer的播放器提升起播黑屏性能的方法,即采用异步preroll的方式,延迟50ms后进行判断,如果这期间未进行seek操作,则在解码出第一帧视频后,不考虑时间戳以及播放状态,直接显示;若期间进行了seek操作,就不进行预滚preroll显示。
通过本发明的方法,可以实现在视频起播缓冲完成以及系统底层解mute之前,视频播放不会处于黑屏状态,显著缩短了视频起播的黑屏时长,大大提升了视频播放的快速起播体验感,从而进一步提高了产品核心竞争力。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种基于gstreamer的播放器提升起播黑屏性能的方法,其特征在于,包括:
步骤一:在音视频播放前,在Android产品系统相应目录下的配置文件中配置预滚和异步预滚开关;
步骤二:在Android产品系统和基于gstreamer的流媒体播放器之间的中间自适应层,获取步骤一配置的预滚和异步预滚开关;
步骤三:在基于gstreamer的流媒体播放器的sink层中,根据步骤二中异步预滚开关重起一个线程来控制预滚显示,达到异步控制,对于从头起播和seek起播使用不同的起播流程;
步骤四:在基于gstreamer的流媒体播放器的sink层中,根据步骤二中的预滚和异步预滚开关以及步骤三中的异步控制来控制视频第一帧的显示;依据预滚开关的值来决定在解码出第一帧视频后是否需要立马直接显示;并根据异步预滚开关值来决定是否需要延时等待seek操作;
步骤五:如果是从头起播视频,当解码完第一帧视频,则立马送去显示;如果是seek起播,则第一帧不做预滚preroll显示,然后视频起播成功开始播放play。
2.根据权利要求1所述的一种基于gstreamer的播放器提升起播黑屏性能的方法,其特征在于,所述配置文件中配置预滚和异步预滚开关是采用的是系统配置文件的形式配置开关。
CN202111328061.7A 2021-11-10 2021-11-10 一种基于gstreamer的播放器提升起播黑屏性能的方法 Active CN114071235B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111328061.7A CN114071235B (zh) 2021-11-10 2021-11-10 一种基于gstreamer的播放器提升起播黑屏性能的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111328061.7A CN114071235B (zh) 2021-11-10 2021-11-10 一种基于gstreamer的播放器提升起播黑屏性能的方法

Publications (2)

Publication Number Publication Date
CN114071235A CN114071235A (zh) 2022-02-18
CN114071235B true CN114071235B (zh) 2022-12-13

Family

ID=80274841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111328061.7A Active CN114071235B (zh) 2021-11-10 2021-11-10 一种基于gstreamer的播放器提升起播黑屏性能的方法

Country Status (1)

Country Link
CN (1) CN114071235B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102625193B (zh) * 2011-01-27 2014-07-09 郑州威科姆科技股份有限公司 一种借助辅助文件实现多媒体文件网络播放的方法
CN105763938B (zh) * 2014-12-15 2018-09-04 深圳Tcl数字技术有限公司 GStreamer解密加密数据的方法及装置
CN106385574B (zh) * 2016-09-13 2018-10-26 微鲸科技有限公司 一种投影设备及投影系统工作模式的切换方法和切换装置
CN109348295A (zh) * 2018-11-28 2019-02-15 四川长虹电器股份有限公司 一种解决android广告视频启播前黑屏的方法
CN113132798B (zh) * 2019-12-30 2022-03-15 海信集团有限公司 一种视频播放方法、装置、电子设备及介质

Also Published As

Publication number Publication date
CN114071235A (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
US8472779B2 (en) Concurrently displaying multiple trick streams for video
US7860996B2 (en) Media streaming with seamless ad insertion
CN104837051B (zh) 视频播放方法及客户端
CN105721921A (zh) 一种多窗口视频解码器的自适应选择方法
CN103596059A (zh) 智能电视媒体播放器及其播放进度调整方法、智能电视
CN108234903B (zh) 互动特效视频的处理方法、介质和终端设备
WO2009081478A1 (ja) 電子装置、制御方法及びプログラム
CN105657524A (zh) 一种视频间无缝切换的方法
CN111432260A (zh) 多路视频画面的同步方法、装置、设备及存储介质
JP5282383B2 (ja) コンテンツ再生装置、コンテンツ再生方法、プログラム、およびコンテンツ再生システム
CN114071235B (zh) 一种基于gstreamer的播放器提升起播黑屏性能的方法
KR100246762B1 (ko) 비디오데이터 디코딩방법
CN101795366A (zh) 一种渐进换台方法及应用此方法的电视机
CN112019858B (zh) 一种视频播放方法、装置、计算机设备和存储介质
JP2006019888A (ja) 記録装置および記録制御方法
CN100428788C (zh) 开机画面录制的方法
CN113490043A (zh) 一种蓝牙音频数据处理方法、装置、介质及设备
CN111436007A (zh) 一种多媒体节目播放方法、装置及机顶盒
JP2009010603A (ja) 記録装置および記録方法
KR20100076499A (ko) 화면 전환 장치 및 방법
WO2020195879A1 (ja) 情報処理端末、情報処理方法、およびプログラム
CN202513995U (zh) 电视机
JP2012029216A (ja) 再生装置、再生方法、およびプログラム
CN109257636B (zh) 视频增强的切换方法、装置、电子设备及存储介质
CN105812938B (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