CN109151571B - 数字电视中基于GStreamer框架的流媒体播放器提升画质的方法 - Google Patents
数字电视中基于GStreamer框架的流媒体播放器提升画质的方法 Download PDFInfo
- Publication number
- CN109151571B CN109151571B CN201811180154.8A CN201811180154A CN109151571B CN 109151571 B CN109151571 B CN 109151571B CN 201811180154 A CN201811180154 A CN 201811180154A CN 109151571 B CN109151571 B CN 109151571B
- Authority
- CN
- China
- Prior art keywords
- gstreamer
- frame
- surfaceview
- hard decoding
- android
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 10
- 238000013507 mapping Methods 0.000 claims description 3
- 238000009877 rendering Methods 0.000 claims description 3
- 230000007547 defect Effects 0.000 abstract description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
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/44—Processing 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/44012—Processing 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 rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
-
- 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 or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing 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 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/443—OS 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)
- Software Systems (AREA)
- Television Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提出一种数字电视中基于GStreamer框架的流媒体播放器提升画质的方法,属于多媒体播放技术领域。本发明解决了目前数字电视中流媒体播放存在缺陷的问题,其技术方案要点为:交叉编译使得GStreamer SDK和Android framework实现API可互操作;实现播放器;实现硬解码插件,使其调用基于原生Android MediaCodec API实现视频流硬解码功能,将解码出视频帧的序列索引index与MediaCodec分配的frame buffer键值对作key/value匹配,并且硬解插件开放,使得硬解码插件可以与上层给定的SurfaceView绑定;使GStreamer能够与Android标准组件SurfaceView交互。
Description
技术领域
本发明涉及流媒体播放技术,特别涉及数字电视上基于GStreamer的流媒体播放器利用芯片平台硬件解码加速及视频画面PQ画质调节技术。
背景技术
近年来,随着移动互联网的飞速发展,消费类电子产品呈现出了爆发式增长,而数字电视中流媒体播放却存在如下缺陷:
【缺陷一】尤其是数字电视上对流媒体播放的要求越来越高,不仅要支持各种格式的媒体播放,以及各种协议的流媒体数据,而传统的Android系统原生实现的流媒体框架媒体支撑能力较弱,不能很好的支撑市场上各种播放业务的需求;
【缺陷二】另外,芯片方也往往各自为战,大都基于自身硬件平台提出一套解决方案,导致电视厂商要各个平台都要适配,花费大量人力财力;
【缺陷三】GStreamer框架虽然灵活,但是在Android平台其视频输出仅支持基于OpenGLES方式输出,解码后的数据需要作纹理拷贝,性能低下。而且在SurfaceTexture上输出的视频纹理,无法充分利用芯片方硬件PQ画质调节,输出的画面色彩还原度不佳,画质效果低劣。
发明内容
本发明的目的是提供一种数字电视中基于GStreamer框架的流媒体播放器提升画质的方法,解决目前数字电视中流媒体播放存在缺陷的问题。
本发明解决其技术问题,采用的技术方案是:数字电视中基于GStreamer框架的流媒体播放器提升画质的方法,包括如下步骤:
步骤1、交叉编译使得GStreamer SDK和Android framework实现API可互操作;
步骤2、在libmediaplayerservice层基于GStreamer重新实现MediaPlayerInterface.h头文件约束,实现播放器VideoPlayer;
步骤3、实现硬解码插件VDecPlugin,使其调用基于原生Android MediaCodec API实现视频流硬解码功能,将解码出视频帧的序列索引index与MediaCodec分配的framebuffer键值对作key/value匹配,并且硬解插件开放ANativeWindow Interface,使得硬解码插件可以与上层给定的SurfaceView绑定;
步骤4、实现视频输出插件VSinkPlugin,以步骤3中VDecPlugin中实现的key/value键值对作为输入,在SurfaceView上渲染视频帧;
步骤5、将步骤3与步骤4中实现的VDecPlugin和VSinkPlugin插件的rank值设为最高256,使得GStreamer框架在自动构建pipeline时,以第一优先级智能加载;
步骤6、基于java的APP应用,利用标准的MediaPlayer setDisplay接口,传递SurfaceView对象到步骤2中实现的VideoPlayer播放器中,同时将java对象映射到C/C++的ANativeWindow接口,并将此对象传递给步骤3中的VDecPlugin以及GStreamer框架;
步骤7、结合上述步骤1~6,使得GStreamer能够与Android标准组件SurfaceView交互。
本发明的有益效果是,通过上述数字电视中基于GStreamer框架的流媒体播放器提升画质的方法,使用SurfaceView充分利用芯片平台硬件解码加速及视频画面PQ画质调节功能,使得高清、极高清视频播放更流畅,画面显示更加绚丽,极大的提升了用户使用体验;另外,遵循google Android硬件编解码模块libstatefright通用事实标准,因此不特定于某一个芯片平台,支持包括但不限于MTK,MSTAR,海思等平台电视解决方案,具有较强的通用性,解决了因平台限制,每个硬件平台视频输出需要单独适配的问题,节约成本,因此极大的提高了生产力。
具体实施方式
下面详细描述本发明的技术方案。
本发明所述数字电视中基于GStreamer框架的流媒体播放器提升画质的方法,包括如下步骤:
步骤1、交叉编译使得GStreamer SDK和Android framework,实现API可互操作;
步骤2、在libmediaplayerservice层基于GStreamer重新实现MediaPlayerInterface.h头文件约束,实现播放器VideoPlayer;
步骤3、实现硬解码(HW decoder)插件VDecPlugin,使其调用基于原生AndroidMediaCodecAPI实现视频流硬解码功能,将解码出视频帧的序列索引index与MediaCodec分配的framebuffer键值对作key/value匹配,并且硬解插件开放ANativeWindow Interface,使得硬解码插件可以与上层给定的SurfaceView绑定,此步骤为关键步骤,同时需要考虑媒体框架因为各种原因导致drop frame时,索引对应的帧buffer能够归还给底层buffer的拥有者;
步骤4、实现视频输出插件VSinkPlugin,以步骤3中VDecPlugin中实现的key/value键值对作为输入,实现在SurfaceView上渲染视频帧目的,并且考虑重复帧输出时如何保证索引所对应帧buffer的唯一性;
步骤5、将步骤3与步骤4中实现的VDecPlugin和VSinkPlugin插件的rank值设为最高256,使得GStreamer框架在自动构建pipeline时,能够以第一优先级智能加载;
步骤6、基于java的APP应用,利用标准的MediaPlayer setDisplay接口,传递SurfaceView对象到步骤2中实现的VideoPlayer播放器中,同时将java对象映射到C/C++的ANativeWindow接口,并将此对象传递给步骤3中的VDecPlugin以及GStreamer框架;
步骤7、结合上述步骤1~6,使得GStreamer能够与Android标准组件SurfaceView交互,从而路由调用到芯片厂商硬件解码以及画质PQ调节功能,通过通用的标准组件,取代传统的硬件解码加速及画质PQ调节的私有接口调用。
Claims (1)
1.数字电视中基于GStreamer框架的流媒体播放器提升画质的方法,其特征在于,包括如下步骤:
步骤1、交叉编译使得GStreamer SDK和Android framework实现API可互操作;
步骤2、在libmediaplayerservice层基于GStreamer重新实现MediaPlayerInterface.h头文件约束,实现播放器VideoPlayer;
步骤3、实现硬解码插件VDecPlugin,使其调用基于原生Android MediaCodec API实现视频流硬解码功能,将解码出视频帧的序列索引index与MediaCodec分配的frame buffer键值对作key/value匹配,并且硬解码插件开放ANativeWindow Interface,使得硬解码插件可以与上层给定的SurfaceView绑定;
步骤4、实现视频输出插件VSinkPlugin,以步骤3中VDecPlugin中实现的key/value键值对作为输入,在SurfaceView上渲染视频帧;
步骤5、将步骤3与步骤4中实现的VDecPlugin和VSinkPlugin插件的rank值设为最高256,使得GStreamer框架在自动构建pipeline时,以第一优先级智能加载;
步骤6、基于java的APP应用,利用标准的MediaPlayer setDisplay接口,传递SurfaceView对象到步骤2中实现的VideoPlayer播放器中,同时将java对象映射到C/C++的ANativeWindow接口,并将此对象传递给步骤3中的VDecPlugin以及GStreamer框架;
步骤7、结合上述步骤1~6,使得GStreamer能够与Android标准组件SurfaceView交互,从而路由调用到芯片厂商硬件解码以及画质PQ调节功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811180154.8A CN109151571B (zh) | 2018-10-10 | 2018-10-10 | 数字电视中基于GStreamer框架的流媒体播放器提升画质的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811180154.8A CN109151571B (zh) | 2018-10-10 | 2018-10-10 | 数字电视中基于GStreamer框架的流媒体播放器提升画质的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109151571A CN109151571A (zh) | 2019-01-04 |
CN109151571B true CN109151571B (zh) | 2021-03-02 |
Family
ID=64811378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811180154.8A Active CN109151571B (zh) | 2018-10-10 | 2018-10-10 | 数字电视中基于GStreamer框架的流媒体播放器提升画质的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109151571B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918598B (zh) * | 2019-03-07 | 2022-10-18 | 四川长虹电器股份有限公司 | 一种基于Android电视浏览器的web页面渲染方法 |
CN113852854B (zh) * | 2021-08-11 | 2024-02-23 | 武汉光庭信息技术股份有限公司 | 基于Android系统的视频推流拉流实现方法及系统 |
CN115734011A (zh) * | 2021-08-25 | 2023-03-03 | 上海擎感智能科技有限公司 | 视频数据的处理方法及视频播放系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101431622A (zh) * | 2007-11-07 | 2009-05-13 | 晨星半导体股份有限公司 | 数字电视的处理装置及处理方法 |
CN102547394A (zh) * | 2011-12-27 | 2012-07-04 | 福建升腾资讯有限公司 | Vdi环境下云接入设备通用的音视频重定向方法 |
CN102695092A (zh) * | 2012-05-25 | 2012-09-26 | 四川长虹电器股份有限公司 | 一种提升iptv电视画质的方法 |
CN103064662A (zh) * | 2012-08-28 | 2013-04-24 | 华南理工大学 | 基于Android平台的PhoneGap跨平台媒体扩展框架 |
CN104754349A (zh) * | 2013-12-25 | 2015-07-01 | 炫一下(北京)科技有限公司 | 硬解码音视频的方法及装置 |
CN104796768A (zh) * | 2015-04-17 | 2015-07-22 | 苏州健雄职业技术学院 | 一种基于omap硬解码加速的嵌入式高清媒体播放器及其操作方法 |
CN107613369A (zh) * | 2017-10-10 | 2018-01-19 | 青岛海信电器股份有限公司 | 基于GStreamer框架的视频播放方法、装置及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120042310A1 (en) * | 2010-02-14 | 2012-02-16 | Nokia Corporation | Method, apparatus and computer program product for platform independent framework |
-
2018
- 2018-10-10 CN CN201811180154.8A patent/CN109151571B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101431622A (zh) * | 2007-11-07 | 2009-05-13 | 晨星半导体股份有限公司 | 数字电视的处理装置及处理方法 |
CN102547394A (zh) * | 2011-12-27 | 2012-07-04 | 福建升腾资讯有限公司 | Vdi环境下云接入设备通用的音视频重定向方法 |
CN102695092A (zh) * | 2012-05-25 | 2012-09-26 | 四川长虹电器股份有限公司 | 一种提升iptv电视画质的方法 |
CN103064662A (zh) * | 2012-08-28 | 2013-04-24 | 华南理工大学 | 基于Android平台的PhoneGap跨平台媒体扩展框架 |
CN104754349A (zh) * | 2013-12-25 | 2015-07-01 | 炫一下(北京)科技有限公司 | 硬解码音视频的方法及装置 |
CN104796768A (zh) * | 2015-04-17 | 2015-07-22 | 苏州健雄职业技术学院 | 一种基于omap硬解码加速的嵌入式高清媒体播放器及其操作方法 |
CN107613369A (zh) * | 2017-10-10 | 2018-01-19 | 青岛海信电器股份有限公司 | 基于GStreamer框架的视频播放方法、装置及电子设备 |
Non-Patent Citations (2)
Title |
---|
An HTML5 player for a gstreamer based MPEG DASH client;E. Quacchio ET AL;《2012 Visual Communications and Image Processing》;20130117;全文 * |
基于GStreamer的媒体播放研究;王蕊;《电子设计工程》;20120428;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109151571A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230328305A1 (en) | Method and device for adapting the video content decoded from elementary streams to the characteristics of a display | |
CN109151571B (zh) | 数字电视中基于GStreamer框架的流媒体播放器提升画质的方法 | |
WO2019024919A1 (zh) | 视频转码方法及其装置、服务器、可读存储介质 | |
JP6202330B2 (ja) | 復号装置および復号方法、並びに符号化装置および符号化方法 | |
JP2017063485A (ja) | 表示方法および表示装置 | |
US8218622B2 (en) | System and method for processing videos and images to a determined quality level | |
US9432624B2 (en) | Method for improving an MCU's performance using common properties of the H.264 codec standard | |
CN108966006A (zh) | 视频的播放方法、浏览器设备及可读存储介质 | |
US11895309B2 (en) | Transmitting apparatus, transmitting method, receiving apparatus, and receiving method | |
JP2022517911A (ja) | 重み付け予測に適応された双方向オプティカルフローによる映像符号化及び復号の方法及び装置 | |
CN112291628A (zh) | 一种基于web浏览器的多线程视频解码播放方法 | |
TW202209879A (zh) | 圖像編碼方法、圖像解碼方法及相關裝置 | |
US11968380B2 (en) | Encoding and decoding video | |
CN105379281B (zh) | 用于使用图形处理器的视频解码的图片参考控制 | |
CN112203097A (zh) | 一种自适应视频解码方法、装置,终端设备及存储介质 | |
CN108737877A (zh) | 图像处理的方法、装置和终端设备 | |
US20240275960A1 (en) | High-level syntax for picture resampling | |
CN116939233A (zh) | 直播视频处理方法、装置、设备、存储介质及计算机程序 | |
WO2016107174A1 (zh) | 多媒体文件数据的处理方法及系统、播放器和客户端 | |
CN104780390A (zh) | 一种视频处理方法及装置 | |
WO2024213421A1 (en) | Method and device for energy reduction of visual content based on attenuation map using mpeg display adaptation | |
US20240080484A1 (en) | Method and device for luma mapping with cross component scaling | |
US20230394636A1 (en) | Method, device and apparatus for avoiding chroma clipping in a tone mapper while maintaining saturation and preserving hue | |
WO2024126030A1 (en) | Method and device for encoding and decoding attenuation map for energy aware images | |
WO2023222521A1 (en) | Sei adapted for multiple conformance points |
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 |