CN108566552B - 适用于数字机顶盒的多媒体播放方法及系统 - Google Patents

适用于数字机顶盒的多媒体播放方法及系统 Download PDF

Info

Publication number
CN108566552B
CN108566552B CN201810359413.7A CN201810359413A CN108566552B CN 108566552 B CN108566552 B CN 108566552B CN 201810359413 A CN201810359413 A CN 201810359413A CN 108566552 B CN108566552 B CN 108566552B
Authority
CN
China
Prior art keywords
video
playing
pes
audio
stream
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
CN201810359413.7A
Other languages
English (en)
Other versions
CN108566552A (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 Network Technology Co Ltd
Original Assignee
Sichuan Changhong Network Technology 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 Network Technology Co Ltd filed Critical Sichuan Changhong Network Technology Co Ltd
Priority to CN201810359413.7A priority Critical patent/CN108566552B/zh
Publication of CN108566552A publication Critical patent/CN108566552A/zh
Application granted granted Critical
Publication of CN108566552B publication Critical patent/CN108566552B/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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/233Processing of audio elementary streams
    • H04N21/2335Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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/439Processing of audio elementary streams
    • H04N21/4398Processing of audio elementary streams involving reformatting operations of audio signals
    • 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/4402Processing 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
    • H04N21/440218Processing 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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明涉及多媒体播放领域,针对数字机顶盒内芯片平台因多媒体解析能力差异造成不同播放体验的问题,提出了一种适用于数字机顶盒的多媒体播放方法,步骤一、客户端根据用户选择的播放源确定播放地址并传送播放地址和用户选择的播放控制指令至服务端;步骤二、服务端根据所述播放地址获取播放文件,根据所述播放控制指令对所述播放文件进行协议解析获得ES流及媒体信息并将ES流打包为PES流,将PES流和媒体信息传送至客户端;步骤三、客户端读取PES流和媒体信息,根据媒体信息对PES流进行解码并进行音频和视频的时间同步控制后显示。本发明适用于数字机顶盒的多媒体播放。

Description

适用于数字机顶盒的多媒体播放方法及系统
技术领域
本发明涉及多媒体播放领域,特别涉及数字机顶盒的多媒体播放领域。
背景技术
多媒体播放器主要功能包括协议解析、音频解码、视频解码、字幕解码、音视频及字幕的显示,多媒体播放器的工作流程大致为:读取多媒体文件获得数据,对数据进行解析把音频、视频以及字幕数据分离,分离后的数据分别送往各自的解码器,解码器从数据中解析出基本码流数据后送往渲染器,渲染器根据基本码流数据的时间标签在正确的时间把音视频以及字幕在显示设备上显示出来。
多媒体包括传统的MKV、AVI、FLV、WMV、TS等容器格式以及流媒体中的HLS、SmoothStreaming、MPEG DASH等协议格式,长期以来数字机顶盒上多媒体播放器的功能严重依耐于机顶盒内部芯片软件开发工具包提供的媒体播放接口实现上述解析解码操作,而各种数字机顶盒不同的芯片平台对多媒体的协议解析功能参差不齐致使现有的数字机顶盒不能支持各种格式多媒体的播放,如此极大的影响了用户的播放体验。
发明内容
本发明所要解决的技术问题是:克服数字机顶盒内芯片平台因多媒体解析能力差异造成不同播放体验的问题,提出一种适用于数字机顶盒的多媒体播放方法及系统。
为解决上述技术问题,本发明的适用于数字机顶盒的多媒体播放方法,包括如下步骤:
步骤一、客户端根据用户选择的播放源确定播放地址并传送播放地址和用户选择的播放控制指令至服务端;
步骤二、服务端根据所述播放地址获取播放文件,根据所述播放控制指令对所述播放文件进行协议解析获得ES流(基本码流)及媒体信息并将ES流打包为PES流(基本码流包),将PES流和媒体信息传送至客户端;
步骤三、客户端读取PES流和媒体信息,根据媒体信息对PES流进行解码并进行音频和视频的时间同步控制后显示。
为解决客户端与服务端的通讯效率低的问题,作为上述适用于数字机顶盒的多媒体播放方法的改进,所述客户端和服务端之间还设置有共享内存用于客户端和服务端之间数据的传递,所述数据包括播放地址、播放控制指令、PES流和媒体信息,所述PES流包括视频PES流和音频PES流,所述媒体信息包括音频及视频的编码格式、音频及视频的PID(包标识符)值,所述播放文件的时长和解析状态信息。
为了防止数据溢出而致使的显示花屏,作为上述适用于数字机顶盒的多媒体播放方法的改进,所述步骤二中,所述共享内存包括用于存放视频PES流的视频循环缓存、用于存放音频PES流的音频循环缓存和用于存放播放地址、播放控制指令和媒体信息的控制信息缓存,所述服务端轮询视频循环缓存的状态,若服务端写入到视频循环缓存中的视频PES流总量减去被客户端读取的视频PES流总量大于视频循环缓存空间值的五分之三,则服务端暂停向共享内存中写入视频PES流和音频PES流。
为了解决起播后不流畅的问题,作为上述适用于数字机顶盒的多媒体播放方法的改进,所述步骤三中,所述客户端轮询所述共享内存的存储状态,若共享内存中视频PES流超过起播阈值后客户端开始读取PES流。
为了解决音频视频不同步的问题,作为上述适用于数字机顶盒的多媒体播放方法的改进,所述步骤三中,时间同步控制包括如下步骤:获取视频PES流中视频第一帧的PTS(显示时间戳)与系统时间戳同步,每隔段时间获取PES流中视频帧的PTS与系统时间戳的差值即差值一并获取PES流中音频帧的PTS和系统时间戳的差值即差值二,若差值一与差值二的差值大于时间差阈值,则收取下一个音频帧获取该音频帧的PTS与系统时间戳的差值即差值三,若差值三小于差值二,则客户端将差值三对应的音频帧进行解码。
为解决所述技术问题,本发明的适用于数字机顶盒的多媒体播放系统,包括服务端和客户端,所述客户端内设置有显示模块、读解析数据模块、解码器和音频视频同步控制模块,所述服务端设置有解析模块和写解析数据模块;
所述显示模块用于获取用户选择的播放源确定播放地址并发送播放地址和用户选择的播放控制指令到服务端,并用于音频视频的输出显示;
所述解析模块用于根据所述播放地址获取播放文件,根据所述播放控制指令对所述播放文件进行协议解析获得ES流及媒体信息并将ES流打包为PES流;
所述写解析数据模块用于将所述PES流和所述媒体信息传送至客户端;
所述读解析数据模块用于读取所述PES流和所述媒体信息;
所述解码器用于根据媒体信息对所述PES流进行解码得到音频数据和视频数据;
所述音频视频同步控制模块用于控制音频和视频的同步。
为解决客户端与服务端的通讯效率低的问题,作为上述适用于数字机顶盒的多媒体播放系统的改进,所述客户端和服务端之间设置有共享内存模块用于客户端和服务端之间数据的传递,所述显示模块向共享内存模块中写入播放地址和播放控制指令,所述解析模块向共享内存模块中读出播放地址和播放控制指令,所述写解析数据模块向共享内存模块中写入PES流和媒体信息,所述读解析数据模块从共享内存模块中读出PES流和媒体信息,所述PES流包括视频PES流和音频PES流,所述媒体信息包括音频及视频的编码格式、音频及视频的PID值、播放文件的时长和解析状态信息。
为了防止数据溢出而致使的显示花屏,作为上述适用于数字机顶盒的多媒体播放系统的改进,所述共享内存模块包括用于存放视频PES流的视频循环缓存单元、用于存放音频PES流的音频循环缓存单元和用于存放播放地址、播放控制指令和媒体信息的控制信息缓存单元,所述服务端轮询视频循环缓存单元的状态,若写解析数据模块写入到视频循环缓存单元中的视频PES流总量减去读解析数据模块读取的视频PES流总量大于视频循环缓存单元空间值的五分之三,则写解析数据模块暂停向共享内存模块中写入视频PES流和音频PES流。
为了解决起播后不流畅的问题,作为上述适用于数字机顶盒的多媒体播放系统的改进,所述客户端轮询所述共享内存的存储状态,若共享内存中视频PES流的数量超过起播阈值后读解析数据模块开始读取PES流。
为了解决音视频不同步的问题,作为上述适用于数字机顶盒的多媒体播放系统的改进,所述音频视频同步控制模获取视频PES流中视频第一帧的PTS与系统时间戳同步,每隔段时间获取PES流中视频帧的PTS与系统时间戳的差值即差值一并获取PES流中音频帧的PTS和系统时间戳的差值即差值二,若差值一与差值二的差值大于时间差阈值,则收取下一个音频帧获取该音频帧的PTS与系统时间戳的差值即差值三,若差值三小于差值二,则将差值三对应的音频帧写入解码器进行解码。
本发明的有益效果是:
1)利用开源软件VLC(多媒体播放器)或FFMPEG(快速的运动图像专家组格式播放器)完成服务端的协议解析功能,仅利用数字机顶盒内部的芯片平台提供的解码器解码独立的音视频PES流,多媒体播放器其余功能均采用软件自行实现,保证了解码效率的同时,取消了多媒体的协议解析对芯片平台的依赖,实现了在不同芯片平台上集成具有统一播放体验的多媒体播放器。
2)采用共享内存实现了客户端与服务端之间进行异步通信交换数据,提高了通信效率。
3)采用循环缓存存储PES数据,提高存储空间利用率,同时通过判断写入到视频循环缓存的视频PES流与从视频循环缓存读出的视频PES流的数据差来决定是否继续向共享内存中写入PES流,避免了数据溢出花屏的问题。
4)当共享内存中PES流超过起播阈值后开始读取PES流使得起播后数据缓存有余量,使得起播后播放更流畅。
5)采用音视频数据与系统时间戳的相对差值,使得音视频时间上得到同步。
附图说明
图1为本发明实施例的适用于数字机顶盒的多媒体播放方法的执行流程图。
图2为本发明实施例的适用于数字机顶盒的多媒体播放系统的逻辑框图。
图3为本发明实施例的读取视频PES流数据量的算法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明进行进一步详细说明。
本发明旨在克服数字机顶盒内芯片平台因多媒体解析能力差异造成不同播放体验的问题,提出了一种适用于数字机顶盒的多媒体播放方法及系统。
本发明的适用于数字机顶盒的多媒体播放方法,包括如下步骤:
步骤一、客户端根据用户选择的播放源确定播放地址并传送播放地址和用户选择的播放控制指令至服务端;
步骤二、服务端根据所述播放地址获取播放文件,根据所述播放控制指令对所述播放文件进行协议解析获得ES流及媒体信息并将ES流打包为PES流,将PES流和媒体信息传送至客户端;
步骤三、客户端读取PES流和媒体信息,根据媒体信息对PES流进行解码并进行音频和视频的时间同步控制后显示。
本发明的适用于数字机顶盒的多媒体播放系统,包括服务端和客户端,所述客户端内设置有显示模块、读解析数据模块、解码器和音频视频同步控制模块,所述服务端设置有解析模块和写解析数据模块;所述显示模块用于获取用户选择的播放源确定播放地址并发送播放地址和用户选择的播放控制指令到服务端,并用于音频视频的输出显示;所述解析模块用于根据所述播放地址获取播放文件,根据所述播放控制指令对所述播放文件进行协议解析获得ES流及媒体信息并将ES流打包为PES流;所述写解析数据模块用于将所述PES流和所述媒体信息传送至客户端;所述读解析数据模块用于读取所述PES流和所述媒体信息;所述解码器用于根据媒体信息对所述PES流进行解码;所述音频视频同步控制模块用于控制音频和视频的同步。
实施例
本发明可采用开源软件VLC或FFMPEG完成多媒体的协议解析,本实施例中以开源的VLC进行多媒体协议解析进行举例以期详细说明本发明的工作原理。本实施例采用C/S(客户机/服务器)架构模式实现,客户端向服务端发起播放请求传递播放地址和播放控制指令,开启读解析数据模块作为线程并打开数字机顶盒底层芯片的解码器,之后等待共享内存模块中PES流的视频数据量达到起播阈值。VLC进程作为服务器端初始化分配共享内存,并映射本地进程地址,等待多媒体解析请求,VLC进程获取播放地址后开启解析现场进行解析获得音视频流ES数据并编码为PES流,同时将获取的媒体信息传回给客户端,另一方面VLC进程开启写解析数据线程将写入分配的共享内存缓存供客户端取用,客户端在获取媒体信息后配置音视频解码器解码格式,读解析数据模块等待共享内存内视频PES流的数据量达到起播阈值后立即开始读取视频PES流数据整块写入对应的解码器缓存进行解码,同时开启音频PES流的读取。
如图1所示,本发明的适用于数字机顶盒的多媒体播放方法,包括如下步骤:
步骤一、客户端根据用户选择的播放源确定播放地址并传送播放地址和用户选择的播放控制指令至服务端,播放控制指令如定点播放,暂停,恢复和快进快退等,其中,为了使客户端与服务端之间进行异步通信交换数据而得以提高通信效率,客户端和服务端之间还设置有共享内存用于客户端和服务端之间数据的传递。
步骤二、服务端通过共享内存获取播放地址和播放控制指令并根据所述播放地址获取播放文件,根据所述播放控制指令对所述播放文件进行协议解析获得ES流及媒体信息并对ES流进行打包为PES流,将PES流和媒体信息写入共享内存;其中,为了使客户端明确得知音频及视频的编码格式等信息便于解码,所述媒体信息包括音频及视频的编码格式、音频及视频的PID值、播放文件的时长和文件播放到结尾及文件解析出错等解析状态信息。所述PES流包括视频PES流和音频PES流,为了防止数据溢出花屏,所述共享内存包括用于存放视频PES流的视频循环缓存、用于存放音频PES流的音频循环缓存和用于存放播放地址、播放控制指令和媒体信息的控制信息缓存,所述服务端轮询视频循环缓存的状态,若服务端写入到视频循环缓存中的视频PES流总量减去被客户端读取的视频PES流总量大于视频循环缓存空间值的五分之三,则服务端暂停向共享内存中写入视频PES流和音频PES流。
步骤三、客户端读取PES流和媒体信息,根据媒体信息对PES流进行解码并音频和视频的时间同步控制后进行显示。其中,客户端读取PES流的算法将在下文中结合图3进行说明,另外为了解决起播后不流畅的问题,所述客户端轮询所述共享内存的存储状态,若共享内存中视频PES流的数量超过起播阈值后客户端开始读取PES流。为了解决音视频不同步的问题,步骤三中,时间同步控制包括如下步骤:获取视频PES流中视频第一帧的PTS与系统时间戳同步,每隔段时间获取PES流中视频帧的PTS与系统时间戳的差值即差值一并获取PES流中音频帧的PTS和系统时间戳的差值即差值二,若差值一与差值二的差值大于时间差阈值,则收取下一个音频帧获取该音频帧的PTS与系统时间戳的差值即差值三,若差值三小于差值二,则客户端将差值三对应的音频帧进行解码。
如图2所示,本发明中适用于数字机顶盒的多媒体播放系统,包括服务端和客户端这两个进程,所述客户端内设置有显示模块、读解析数据模块、解码器和音频视频同步控制模块,所述服务端设置有解析模块和写解析数据模块;
所述显示模块用于获取用户选择的播放源确定播放地址并发送播放地址和用户选择的播放控制指令到服务端,并用于音频视频的输出显示,其中,播放控制指令如定点播放,暂停,恢复和快进快退等,所述解析模块用于根据所述播放地址获取播放文件,根据所述播放控制指令对所述播放文件进行协议解析获得ES流及媒体信息并将ES流打包为PES流;所述写解析数据模块用于将所述PES流和所述媒体信息传送至客户端;所述读解析数据模块用于读取所述PES流和所述媒体信息;所述解码器用于根据媒体信息对所述PES流进行解码;所述音频视频同步控制模块用于控制音频和视频的同步。
其中,为了使客户端与服务端之间进行异步通信交换数据而得以提高通信效率,客户端和服务端之间还设置有共享内存模块用于客户端和服务端之间数据的传递,所述显示模块向共享内存模块中写入播放地址和播放控制指令,所述解析模块向共享内存模块中读出播放地址和播放控制指令,所述写解析数据模块向共享内存模块中写入PES流和媒体信息,所述读解析数据模块从共享内存模块中读出PES流和媒体信息,所述PES流包括视频PES流和音频PES流,所述媒体信息包括音频及视频的编码格式、音频及视频的PID值、播放文件的时长和解析状态信息。
为了防止数据溢出花屏,所述共享内存模块包括用于存放视频PES流的视频循环缓存单元、用于存放音频PES流的音频循环缓存单元和用于存放播放地址、播放控制指令和媒体信息的控制信息缓存单元,所述服务端轮询视频循环缓存单元的状态,若写解析数据模块写入到视频循环缓存单元中的视频PES流总量减去读解析数据模块读取的视频PES流总量大于视频循环缓存单元空间值的五分之三,则写解析数据模块暂停向共享内存模块中写入视频PES流和音频PES流。
为了解决起播后不流畅的问题,所述客户端轮询所述共享内存的存储状态,若共享内存中视频PES流的数量超过起播阈值后读解析数据模块开始读取PES流。起播阈值的大小会影响起播时间与起播后的流畅性,该值可量化为20KByte,如此播放器的起播时间小于15秒。
为了解决音视频不同步的问题,所述音频视频同步控制模获取视频PES流中视频第一帧的PTS与系统时间戳同步,每隔段时间获取PES流中视频帧的PTS与系统时间戳的差值即差值一并获取PES流中音频帧的PTS和系统时间戳的差值即差值二,若差值一与差值二的差值大于时间差阈值,则收取下一个音频帧获取该音频帧的PTS与系统时间戳的差值即差值三,若差值三小于差值二,则将差值三对应的音频帧写入解码器进行解码。
具体的来说,本实施例的以VLC进程来提取媒体文件ES数据并以共享内存方式交付客户端的实现方式为:
1)服务端的VLC进程以文件写入方式输出媒体文件解析的并打包后的PES流到循环缓存,具体控制命令为:
argv[argc++]="-vvv";argv[argc++]="--no-loop";argv[argc++]="--sout";
argv[argc++]="#es{access=file,
dst-video=/mnt/usb/video_%d.%c,st-audio=/mnt/usb/audio_%d.%c}";
该控制指令为将解析输出的ES流写入到本地存储盘/mnt/usb。
2)VLC进程运行初始化阶段关联共享内存地址到本地内存地址,内存大小分配为视频PES数据缓存为3.768M字节,音频PES数据缓存为1.88M字节,控制信息缓存1024K字节。
3)VLC进程接收播放请求后,获取文件播放地址后调用libvlc_media_get_duration获取媒体的时长信息,通过接口libvlc_media_get_tracks_info获取音频及视频的编码格式信息,通过调用接口libvlc_media_player_play开启VLC的播放流程。
4)VLC将解析获取的音频及视频的编码格式、播放文件的时长和音视频的PID信息写入共享内存控制信息缓存。
5)打断VLC原有的播放流程,修改函数DecoderProcessSout在得到解析ES数据后,将解析的视频ES数据编码成视频PES流经重新封装的接口sout_AccessOutMemoryWrite写入共享内存中视频循环缓存,解析的音频ES数据编码成音频PES流经重新封装的接口sout_AccessOutMemoryWrite写入共享内存中音频循环缓存。
6)在解析过程遇到解析状态信息变化时同步写入文件播放到结尾及文件解析出错等解析状态信息值控制信息缓存。
如图3所示,该图为读取视频PES流数据量的算法流程图,鉴于读取视频PES流的过程为循环读取的过程,该流程图仅展示了一轮读取的过程,写解析数据模块记录有写地址偏移值和写循环次数,读解析数据模块记录有读地址偏移值和读循环次数,其中,写循环次数为完整写完一遍视频循环缓存的次数,读循环次数为完整读完一遍视频循环缓存的次数。读取视频PES流的步骤包括:
A、首先判断写地址偏移值是否小于读地址偏移值,若判定为是,则进入步骤B,否则进入步骤C。
B、判断写循环次数是否大于读循环次数,若判定为是,则进入步骤D,否则进入步骤M。
C、判断写循环次数是否等于读循环次数,若判定为是,则进入步骤E,否则进入步骤F。
D、待读取数据量等于写地址偏移量加上视频循环缓存的大小减去读地址偏移值后减去一,读取相应待读取数据量的视频PES流,进入步骤H。
E、待读取数据量等于写地址偏移值减去读地址偏移值,读取相应待读取数据量的视频PES流,进入步骤H。
F、判断写循环次数是否大于读循环次数,若判断为是,则进入步骤G,否则进入步骤O。
G、待读取数据量等于写地址偏移值,读取相应待读取数据量的视频PES流,进入步骤H。
H、待读取数据量写入底层解码器缓存,进入步骤I。
I、读取解码器状态返回实际写入解码器的数据量,进入步骤J。
J、判定读地址偏移量加上实际写入解码器的数据量是否大于视频缓存空间大小,若判定为是,则进入步骤K,否则进入步骤L。
K、更新读状态,新一轮的读地址偏移量等于实际写入解码器的数据量减去视频缓存大小加上读地址偏移量加一,读循环次数加一,进入步骤O。
L、更新读状态,新一轮的读地址偏移量等于读地址偏移量加上实际写入解码器的数据量,读循环次数保持不变,进入步骤O。
M、抛出读控制异常,读地址偏移量等于写地址偏移量,读循环次数等于写循环次数。
O、本轮循环结束。
音频PES数据缓存也是一个循环缓存,读音频PES流的流程图与上述读视频PES流的流程图类似,不再赘述。

Claims (8)

1.适用于数字机顶盒的多媒体播放方法,其特征在于,包括如下步骤:
步骤一、客户端根据用户选择的播放源确定播放地址并传送播放地址和用户选择的播放控制指令至服务端;
步骤二、服务端根据所述播放地址获取播放文件,根据所述播放控制指令对所述播放文件进行协议解析获得ES流及媒体信息并将ES流打包为PES流,将PES流和媒体信息传送至客户端,所述客户端和服务端之间还设置有共享内存用于客户端和服务端之间数据的传递,所述共享内存包括用于存放视频PES流的视频循环缓存、用于存放音频PES流的音频循环缓存和用于存放播放地址、播放控制指令和媒体信息的控制信息缓存,所述服务端轮询视频循环缓存的状态,若服务端写入到视频循环缓存中的视频PES流总量减去被客户端读取的视频PES流总量大于视频循环缓存空间值的五分之三,则服务端暂停向共享内存中写入视频PES流和音频PES流;
步骤三、客户端读取PES流和媒体信息,根据媒体信息对PES流进行解码并进行音频和视频的时间同步控制后显示。
2.如权利要求1所述的适用于数字机顶盒的多媒体播放方法,其特征在于,所述数据包括播放地址、播放控制指令、PES流和媒体信息,所述PES流包括视频PES流和音频PES流,所述媒体信息包括音频及视频的编码格式、音频及视频的PID值,所述播放文件的时长和解析状态信息。
3.如权利要求1或2所述的适用于数字机顶盒的多媒体播放方法,其特征在于,所述步骤三中,所述客户端轮询所述共享内存的存储状态,若共享内存中视频PES流的数量超过起播阈值后客户端开始读取PES流。
4.如权利要求1所述的适用于数字机顶盒的多媒体播放方法,其特征在于,所述步骤三中,时间同步控制包括如下步骤:获取视频PES流中视频第一帧的PTS与系统时间戳同步,每隔段时间获取PES流中视频帧的PTS与系统时间戳的差值即差值一并获取PES流中音频帧的PTS和系统时间戳的差值即差值二,若差值一与差值二的差值大于时间差阈值,则收取下一个音频帧获取该音频帧的PTS与系统时间戳的差值即差值三,若差值三小于差值二,则客户端将差值三对应的音频帧进行解码。
5.适用于数字机顶盒的多媒体播放系统,其特征在于,包括服务端和客户端,所述客户端内设置有显示模块、读解析数据模块、解码器和音频视频同步控制模块,所述服务端设置有解析模块和写解析数据模块,所述客户端和服务端之间设置有共享内存模块用于客户端和服务端之间数据的传递;
所述显示模块用于获取用户选择的播放源确定播放地址并发送播放地址和用户选择的播放控制指令到服务端,并用于音频视频的输出显示;
所述解析模块用于根据所述播放地址获取播放文件,根据所述播放控制指令对所述播放文件进行协议解析获得ES流及媒体信息并将ES流打包为PES流;
所述写解析数据模块用于将所述PES流和所述媒体信息传送至客户端;
所述共享内存模块包括用于存放视频PES流的视频循环缓存单元、用于存放音频PES流的音频循环缓存单元和用于存放播放地址、播放控制指令和媒体信息的控制信息缓存单元,所述服务端轮询视频循环缓存单元的状态,若写解析数据模块写入到视频循环缓存单元中的视频PES流总量减去读解析数据模块读取的视频PES流总量大于视频循环缓存单元空间值的五分之三,则写解析数据模块暂停向共享内存模块中写入视频PES流和音频PES流;
所述读解析数据模块用于读取所述PES流和所述媒体信息;
所述解码器用于根据媒体信息对所述PES流进行解码;
所述音频视频同步控制模块用于控制音频和视频的同步。
6.如权利要求5所述的适用于数字机顶盒的多媒体播放系统,其特征在于,所述显示模块向共享内存模块中写入播放地址和播放控制指令,所述解析模块向共享内存模块中读出播放地址和播放控制指令,所述写解析数据模块向共享内存模块中写入PES流和媒体信息,所述读解析数据模块从共享内存模块中读出PES流和媒体信息,所述PES流包括视频PES流和音频PES流,所述媒体信息包括音频及视频的编码格式、音频及视频的PID值、播放文件的时长和解析状态信息。
7.如权利要求5或6所述的适用于数字机顶盒的多媒体播放系统,其特征在于,所述客户端轮询所述共享内存的存储状态,若共享内存中视频PES流的数量超过起播阈值后读解析数据模块开始读取PES流。
8.如权利要求5所述的适用于数字机顶盒的多媒体播放系统,其特征在于,所述音频视频同步控制模获取视频PES流中视频第一帧的PTS与系统时间戳同步,每隔段时间获取PES流中视频帧的PTS与系统时间戳的差值即差值一并获取PES流中音频帧的PTS和系统时间戳的差值即差值二,若差值一与差值二的差值大于时间差阈值,则收取下一个音频帧获取该音频帧的PTS与系统时间戳的差值即差值三,若差值三小于差值二,则将差值三对应的音频帧写入解码器进行解码。
CN201810359413.7A 2018-04-20 2018-04-20 适用于数字机顶盒的多媒体播放方法及系统 Active CN108566552B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810359413.7A CN108566552B (zh) 2018-04-20 2018-04-20 适用于数字机顶盒的多媒体播放方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810359413.7A CN108566552B (zh) 2018-04-20 2018-04-20 适用于数字机顶盒的多媒体播放方法及系统

Publications (2)

Publication Number Publication Date
CN108566552A CN108566552A (zh) 2018-09-21
CN108566552B true CN108566552B (zh) 2021-05-25

Family

ID=63535841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810359413.7A Active CN108566552B (zh) 2018-04-20 2018-04-20 适用于数字机顶盒的多媒体播放方法及系统

Country Status (1)

Country Link
CN (1) CN108566552B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111699479A (zh) * 2019-06-20 2020-09-22 深圳市大疆创新科技有限公司 日志处理方法、设备及计算机可读存储介质
CN111669645B (zh) * 2020-06-12 2021-09-07 腾讯科技(深圳)有限公司 视频的播放方法、装置、电子设备及存储介质
CN112650717A (zh) * 2020-12-17 2021-04-13 深圳市奇虎智能科技有限公司 文件读取方法、装置及存储介质
CN114866836A (zh) * 2022-04-12 2022-08-05 北京小米移动软件有限公司 视频处理方法、装置、电子设备和存储介质
CN114938361B (zh) * 2022-05-30 2024-08-02 阿里云计算有限公司 媒体服务提供方法、系统、设备及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1658176A (zh) * 2004-02-21 2005-08-24 华为技术有限公司 数据通信的方法及设备
CN1960501A (zh) * 2006-09-30 2007-05-09 中兴通讯股份有限公司 一种广播网络复用协议的转换方法
CN101668198A (zh) * 2009-09-16 2010-03-10 深圳市同洲电子股份有限公司 一种推送视频及数据内容实现本地点播的方法及系统
CN101674486A (zh) * 2009-09-29 2010-03-17 深圳市融创天下科技发展有限公司 一种流媒体音视频同步方法及系统
CN101789975A (zh) * 2010-03-23 2010-07-28 深圳市同洲电子股份有限公司 用于推送视频点播业务的下载内容的方法及系统
CN102404624A (zh) * 2011-11-07 2012-04-04 深圳市佳创视讯技术股份有限公司 一种数字机顶盒用支持硬件解码的全格式媒体播放器
CN102547299A (zh) * 2010-12-30 2012-07-04 福建星网视易信息系统有限公司 基于mpeg-2视频流的音视频同步控制方法
CN103309818A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 存储数据的方法及装置
CN104780422A (zh) * 2014-01-13 2015-07-15 北京兆维电子(集团)有限责任公司 流媒体播放方法及流媒体播放器
CN102984576B (zh) * 2012-12-21 2016-06-01 四川九洲电器集团有限责任公司 一种ts传输流媒体音视频剥离的方法及系统
CN105898500A (zh) * 2015-12-22 2016-08-24 乐视云计算有限公司 网络视频播放方法及装置
CN106657113A (zh) * 2016-12-30 2017-05-10 中广热点云科技有限公司 一种广播网络复用协议的转换方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101042850B1 (ko) * 2005-01-12 2011-06-17 삼성전자주식회사 디지털 멀티미디어 방송 수신 단말기에서 특정 프로그램의방송 채널을 검색하는 방법
CN103237215B (zh) * 2013-04-17 2016-12-28 华为技术有限公司 播放方法和播放设备

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1658176A (zh) * 2004-02-21 2005-08-24 华为技术有限公司 数据通信的方法及设备
CN1960501A (zh) * 2006-09-30 2007-05-09 中兴通讯股份有限公司 一种广播网络复用协议的转换方法
CN101668198A (zh) * 2009-09-16 2010-03-10 深圳市同洲电子股份有限公司 一种推送视频及数据内容实现本地点播的方法及系统
CN101674486A (zh) * 2009-09-29 2010-03-17 深圳市融创天下科技发展有限公司 一种流媒体音视频同步方法及系统
CN101789975A (zh) * 2010-03-23 2010-07-28 深圳市同洲电子股份有限公司 用于推送视频点播业务的下载内容的方法及系统
CN102547299A (zh) * 2010-12-30 2012-07-04 福建星网视易信息系统有限公司 基于mpeg-2视频流的音视频同步控制方法
CN102404624A (zh) * 2011-11-07 2012-04-04 深圳市佳创视讯技术股份有限公司 一种数字机顶盒用支持硬件解码的全格式媒体播放器
CN103309818A (zh) * 2012-03-09 2013-09-18 腾讯科技(深圳)有限公司 存储数据的方法及装置
CN102984576B (zh) * 2012-12-21 2016-06-01 四川九洲电器集团有限责任公司 一种ts传输流媒体音视频剥离的方法及系统
CN104780422A (zh) * 2014-01-13 2015-07-15 北京兆维电子(集团)有限责任公司 流媒体播放方法及流媒体播放器
CN105898500A (zh) * 2015-12-22 2016-08-24 乐视云计算有限公司 网络视频播放方法及装置
CN106657113A (zh) * 2016-12-30 2017-05-10 中广热点云科技有限公司 一种广播网络复用协议的转换方法及系统

Also Published As

Publication number Publication date
CN108566552A (zh) 2018-09-21

Similar Documents

Publication Publication Date Title
CN108566552B (zh) 适用于数字机顶盒的多媒体播放方法及系统
CN101512657B (zh) 用于在存储之前不加索引的情况下接收、存储和呈现多媒体节目的方法和设备
CN111641838A (zh) 一种浏览器视频播放方法、装置以及计算机存储介质
US10129587B2 (en) Fast switching of synchronized media using time-stamp management
US20020122656A1 (en) Method and apparatus for recording broadcast data
CN104602117A (zh) 一种倍速播放视频的方法及装置
CN101540826A (zh) 一种应用于电视机的多媒体装置及一种电视机
CN111182322B (zh) 一种导播控制方法、装置、电子设备和存储介质
CN113055680B (zh) 一种分布式转码方法
CN102065320B (zh) 用于处理关于ts码流的特技播放命令的方法和设备
US20130291031A1 (en) Systems and Methods for Adaptive Streaming with Augmented Video Stream Transitions Using a Media Server
CN106658155A (zh) 播放器切换播放方法及装置
WO2012107570A1 (en) A method for optimizing a video stream
JP2016072858A (ja) メディアデータ生成方法、メディアデータ再生方法、メディアデータ生成装置、メディアデータ再生装置、コンピュータ読み取り可能な記録媒体、及びプログラム
US20130287361A1 (en) Methods for storage and access of video data while recording
CN113261283B (zh) 视频处理方法、装置及计算机可读存储介质
CN119946327A (zh) 视频播放方法、装置、计算机设备和存储介质
CN103501457B (zh) 一种节目播放的方法及设备
CN111193956B (zh) 一种视频数据处理方法及视频播放设备
CN118632044A (zh) 音视频转码处理与播放方法、设备、存储介质及程序产品
KR20100029010A (ko) 멀티미디어 데이터를 처리하기 위한 다중 프로세서 시스템들 및 그것의 방법들
JP2015510727A (ja) メディアファイル用のファイルデータを提供するための方法およびシステム
CN115086282A (zh) 一种视频播放方法、设备及存储介质
CN115278366B (zh) 虚拟机视频流的数据处理方法、装置以及电子设备
CN118233691A (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