CN114339353B - 音视频同步方法和装置及电子设备和计算机可读存储介质 - Google Patents

音视频同步方法和装置及电子设备和计算机可读存储介质 Download PDF

Info

Publication number
CN114339353B
CN114339353B CN202111677757.0A CN202111677757A CN114339353B CN 114339353 B CN114339353 B CN 114339353B CN 202111677757 A CN202111677757 A CN 202111677757A CN 114339353 B CN114339353 B CN 114339353B
Authority
CN
China
Prior art keywords
audio
module
video
instance
synchronous
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
CN202111677757.0A
Other languages
English (en)
Other versions
CN114339353A (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.)
Jingchen Semiconductor Technology Beijing Co ltd
Original Assignee
Jingchen Semiconductor Technology Beijing 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 Jingchen Semiconductor Technology Beijing Co ltd filed Critical Jingchen Semiconductor Technology Beijing Co ltd
Priority to CN202111677757.0A priority Critical patent/CN114339353B/zh
Publication of CN114339353A publication Critical patent/CN114339353A/zh
Priority to PCT/CN2022/115903 priority patent/WO2023124173A1/zh
Priority to EP22913454.9A priority patent/EP4391555A1/en
Application granted granted Critical
Publication of CN114339353B publication Critical patent/CN114339353B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8352Generation of protective data, e.g. certificates involving content or source identification data, e.g. Unique Material Identifier [UMID]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/04Synchronising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/04Synchronising
    • H04N5/06Generation of synchronising signals

Landscapes

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

Abstract

本发明公开了一种用于播放模块的音视频同步方法和装置以及电子设备和计算机可读存储介质,播放模块包括面向对象的程序语言标准库和内核驱动的音视频同步模块,该方法包括:响应于播放指令确定目标播放器,以由目标播放器构建音频模块和视频模块;在程序语言标准库创建对应目标播放器的同步实例,同步实例具有唯一的实例标识;根据实例标识获得对应同步实例的实时码流的参考时钟,并按照设定同步模式根据所述参考时钟控制对应目标播放器的音频模块和视频模块的数据输出。本发明的用于播放模块的音视频同步方法和装置以及电子设备和存储介质,采用面向对象的设计思路,支持多路播放和跨进程的音视频同步,移植性强,使用灵活。

Description

音视频同步方法和装置及电子设备和计算机可读存储介质
技术领域
本发明涉及多媒体技术领域,尤其是涉及一种用于播放模块的音视频同步方法,以及用于播放模块的音视频同步装置和电子设备及计算机可读存储介质。
背景技术
DTV(Digital Television,数字电视)和IPTV(Internet Protocol Television,交互式网络电视)是比较常见的视听***。音视频同步是影响视听***产品质量和用户体验的重要方面。
但是,实际应用中,视听***例如DTV和IPTV产品采用的同步机制存在一些缺点,例如,比较难支持多路播放的同步,不能支持跨进程的音视频同步,同步机制与播放器的耦合比较紧密,移植难度大,使用不够灵活。
发明内容
本发明旨在至少解决现有技术中存在的技术问题。为此,本发明的第一个目的在于提出一种音视频同步方法,该音视频同步方法,可以实现多路播放同步以及支持跨进程的音视频同步,同步机制比较容易移植,使用更加灵活。
本发明的第二个目的在于提出一种音视频同步装置。
本发明的第三个目的在于提出一种电子设备。
本发明的第四个目的在于提出一种计算机可读存储介质。
为了达到上述目的,本发明第一方面实施例的用于播放模块的音视频同步方法,所述播放模块包括面向对象的程序语言标准库和内核驱动,所述音视频同步方法包括:响应于播放指令确定目标播放器,以由所述目标播放器构建音频模块和视频模块;在所述程序语言标准库创建对应所述目标播放器的同步实例,其中,所述同步实例具有唯一的实例标识;根据所述实例标识获得对应同步实例的参考时钟,并根据所述参考时钟控制对应目标播放器的音频模块和视频模块的数据输出。
根据本发明实施例的用于播放模块的音视频同步方法,采用面向对象的设计思路,通过实例和实例标识来进行同步处理,可以支持多路播放和跨进程的同步场景,音视频同步模块采用程序语言标准库和内核驱动的形式,任何播放器、任何模块只要将程序语言标准库编译进入,调用程序语言标准库同步相关的方法,即可实现音视频同步,移植性强,使用场景更加灵活。
为了达到上述目的,本发明第二方面实施例的用于播放模块的音视频同步装置,包括:构建模块,用于响应于播放指令确定目标播放器,以由所述目标播放器构建音频模块和视频模块;程序语言标准库,用于创建对应所述目标播放器的同步实例,其中,所述同步实例具有唯一的实例标识;内核驱动,用于根据所述实例标识获得对应同步实例的参考时钟,并根据所述参考时钟控制对应目标播放器的音频模块和视频模块的数据输出。
根据本发明实施例的用于播放模块的音视频同步装置,采用面向对象的设计思路,通过实例和实例标识来进行同步处理,可以支持多路播放和跨进程的同步场景,采用程序语言标准库和内核驱动的形式,任何播放器、任何模块只要将程序语言标准库编译进入,调用程序语言标准库同步相关的方法,即可实现音视频同步,移植性强,使用场景更加灵活。
为了达到上述目的,本发明第三方面实施例的电子设备,包括:处理器;与所述处理器通信连接的存储器;其中,所述存储器中存储有可被所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现所述的用于播放模块的音视频同步方法。
根据本发明实施例的电子设备,通过处理器执行上面实施例的用于播放模块的音视频同步方法,可以支持多路播放和跨进程的同步场景,同步处理采用程序语言标准库和内核驱动的形式,任何播放器、任何模块只要将程序语言标准库编译进入,调用程序语言标准库同步相关的方法,即可实现音视频同步,移植性强,使用场景更加灵活。
为了达到上述目的,本发明第四方面实施例的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的用于播放模块的音视频同步方法。
根据本发明实施例的计算机可读存储介质,其中存储计算机程序介质,该计算机程序被执行时实现上面第一方面实施例的用于播放模块的音视频同步方法,该方法采用面向对象的设计思路,通过实例和实例标识来进行同步处理,可以支持多路播放和跨进程的同步场景,同步处理采用程序语言标准库和内核驱动的形式,任何播放器、任何模块只要将程序语言标准库编译进入,调用程序语言标准库同步相关的方法,即可实现音视频同步,移植性强,使用场景更加灵活。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明的一个实施例的实现多路播放音视频同步的示意图;
图2是根据本发明的一个实施例的跨进程音视频同步的示意图;
图3是根据本发明的一个实施例的用于播放模块的音视频同步装置的框图;
图4是根据本发明的一个实施例的电子设备的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本发明实施例的用于播放模块的音视频同步方法,采用面向对象的设计思路和程序语言,可以支持多路播放的同步,也可以实现跨进程同步,以及同步模块与播放器的耦合较少,更容易移植,使用更加灵活。
其中,面向对象是软件开发方法,一种编程范式。在面向对象程序设计中,对象所指的是计算机***中的某一个成分,对象可以包含两个含义,其中一个是数据,另外一个是动作。对象则是数据和动作的结合体。对象不仅能够进行操作,同时还能够及时记录下操作结果。方法是指对象能够进行的操作,方法同时还有另外一个名称,叫做函数。方法是类中的定义函数,其具体的作用就是对对象进行描述操作。
在本发明的实施例中,播放模块可以为芯片组或者音视频播放产品例如电视机等,播放模块采用面向对象的程序语言标准(例如C++library)和内核驱动(kerneldriver)的形式,其中,程序语言标准例如C++l ibrary(C++库)中创建有同步实例,同步实例也就是面向对象程序中的对象,其以音视频为对象以及还包括以音视频为对象的方法。内核驱动保存有核心同步数据,程序语言标准库与内核驱动进行交互,可以获取所需核心同步数据以进行音视频的同步处理。在实施例中,播放模块可以为插件或者软件包或程序库。
下面参考图1和图2描述根据本发明实施例的用于播放模块的音视频同步方法。
本发明实施例的用于播放模块的音视频同步方法至少包括以下步骤S1-S4,具体如下。
步骤S1,响应于播放指令确定目标播放器,以由目标播放器构建音频模块和视频模块。
在实施例中,用户可以通过遥控器或者触控板来输入播放指令,播放指令可以为单路播放指令例如打开某个视频,播放指令也可以为多路播放指令,例如打开多个播放画面,具体地例如电视机播放中的画中画。
在实施例中,会存在多个空闲播放通道即当前未处于播放状态的播放器,接收到播放指令后,内核驱动可以将其中的一个或几个空闲播放器来用于播放音视频,即作为目标播放器。
具体地,目标播放器构建运行音频码流的线程以作为音频模块,以及,构建运行视频码流的线程以作为视频模块。
步骤S2,在程序语言标准库中创建对应目标播放器的同步实例。
其中,同步实例为面向对象程序设计中的概念也就是对象,其具有唯一的实例标识即instance id。
在实施例中,内核驱动中配置有管理同步实例的表,本文可以将该表称为实例管理表,程序语言标准库例如C++库中每创建一个同步实例,内核驱动会在实例管理表中创建一个node(节点)来进行管理,其中,将实例标识作为唯一标识进行标识。C++库中的方法的所有操作都以实例标识为参数,来对应内核驱动中instance的节点。
具体地,程序语言标准库例如C++库创建以目标播放器中音频模块和视频模块为对象及其操作方法的实例,音频模块和视频模块可以同进程也可以跨进程。
步骤S3,根据实例标识获得对应同步实例的参考时钟,并根据参考时钟控制对应目标播放器的音频模块和视频模块的数据输出。
其中,内核驱动可以根据实例标识来识别目标播放器,即识别哪路播放器来播放音视频,也即识别需要管理哪路instance。在实施例中,本发明实施例的音视频同步方法可以支持多种同步模式,例如,视频主控模式(video master)、音频主控模式(audiomaster)、时钟主控模式(pcr master)、free run等基本同步模式。
在本发明的实施例中,参考时钟可以为实时码流的节目参考时钟或者***参考时钟。实时码流的节目参考时钟可以包括音视频的显示时间戳、音频时间戳等,有的还包括节目参考时钟,而有的实时码流不包括节目参考时钟。因此,若实时码流包括节目参考时钟时,则根据实例标识获得对应同步实例的实时码流的节目参考时钟,若不包括节目参考时钟码流,则获得对应同步实例的***参考时钟。
具体地,内核驱动可以从解复用(demux)或第三方直接输入来获得实时码流的节目参考时钟,包括对应各个目标播放器的码流的节目参考时钟,进而根据实例标识识别出哪路目标播放器,以及目标播放器对应的同步实例,以获得对应同步实例的实时码流的节目参考时钟或***参考时钟以及音视频的时间戳。在本发明实施例中,音视频的播放时机除了与其时间戳、参考时钟有关还考虑同步模式,即根据不同的同步模式来调整音视频播放的时间。其中,同步模式在程序设计时可以根据需要来设定,即按照设定同步模式控制对应目标播放器的音频模块和视频模块的数据输出时机,以使得每个目标播放器播放的音视频同步。
在一些实施例中,对于多路播放,每路播放按照上面实施例的过程控制每路播放器的音频模块和视频模块进行同步播放,因此,可以达到每路播放器的音视频同步效果。
图1为根据本发明的一个实施例的两路播放同步方法的示意图,如图1所示,其中,用户user端1发出两路播放指令,例如确定player0和player1为目标播放器,每路播放器构建音频线程和视频线程即音频模块和视频模块,每个播放器的音频模块2和视频模块3通过调用程序语言标准库102例如C++library的同步实例的方法来与内核驱动103中对应的instance节点进行交互,其中,内核驱动103的媒体同步驱动4根据实例标识例如instance0、instance1来确定哪路播放器的同步实例,从而获得同步数据即对应音视频的码流数据的节目参考时钟或者***参考时钟,再按照设定同步模式,根据对应的参考时钟来控制对应player0和player1中音频模块和视频模块的数据输出时机,从而实现player0和player1中音视频的同步播放,即本发明实施例的音视频同步方法也适用于多路播放场景的音视频同步。
在另一些实施例中,跨进程的音频模块和视频模块,通过采用上面实施例的程序语言标准库例如C++库的同步实例及其实例标识,也可以进行同步处理,达到音视频同步的目的。
因此,根据本发明实施例的用于播放模块的音视频同步方法,采用面向对象的设计思路,通过实例和实例标识来进行同步处理,可以支持多路播放和跨进程的同步场景,同步模块采用程序语言标准库库和内核驱动的形式,任何播放器、任何模块只要将程序语言标准库编译进入,调用程序语言标准库同步相关的方法,即可实现音视频同步,移植性强,使用场景更加灵活。
在一些实施例中,如图2所示,为根据本发明的一个实施例的跨进程音视频同步的示意图,目标播放器的音频模块2和视频模块3属于不同进程,内核驱动103中保存核心同步数据,程序语言标准库102例如C++库可以采用ioctl(input/output control)与内核驱动交互获取核心同步数据,程序语言标准库102根据获得的同步数据做出正确的同步处理,可以实现跨进程的音视频同步。其中,在计算机领域,ioctl是一个专用于设备输入输出操作的***调用,该调用传入一个跟设备有关的请求码例如实例标识。具体地,user端1发出播放指令,player1为目标播放器,player1构建不同进程的音频模块2和视频模块3,音频模块2和视频模块3分别通过调用程序语言标准库102中的同步方法获得内核驱动103中的对应同步实例的同步数据例如码流数据的参考时钟,其中,内核驱动103根据实例标识可以识别对应同步实例例如instance1的同步数据,进而再按照设定同步模式和参考时钟来控制对应player1中音频模块2和视频模块3的数据输出时机,从而实现player1中音视频的同步播放,因此本发明实施例的音视频同步方法,基于程序语言标准库102例如C++库和内核驱动的音视频同步模块,通过同步实例和实例标识可以实现跨进程音视频的同步处理。
下面对本发明实施例中采用的几种同步模式进行说明。其中,在程序设计时,可以根据具体应用和需求来设定同步模式。
在一些实施例中,设定同步模式包括时钟主控模式,时钟主控模式可以用于实时码流包括节目参考时钟的情况。在时钟主控模式下,内核驱动可以根据实例标识识别目标播放器属于哪路播放器,以获得对应同步实例的同步数据;内核驱动获得目标播放器中音频模块通过调用程序语言标准库例如C++库的方法发送的音频时间戳,以及获得目标播放器对应同步实例的实时码流的节目参考信息,并根据音频时间戳和节目参考时钟控制音频模块的音频数据输出,例如,音频时间戳与节目参考时钟的时间一致,则控制音频模块输出音频,反之,则音频模块不输出音频数据。
举例说明,其中程序语言标准库以C++库为例,内核驱动从硬件解复用demux中获取实时码流的时钟信息PCR(program clock reference,节目时钟参考),音频模块通过调用C++库中的同步方法,将音频模块的audio pcm数据对应的PTS(Presentation TimeStamp,时间戳)发送给C++库,C++库从内核驱动获取对应instance的PCR,根据PCR来判断该audio pcm(Pulse Code Modulation,脉冲编码调制)数据包是否输出,例如,audio pcm数据对应的PTS与对应instance的PCR一致,则该audio pcm数据包输出,反之,则audio pcm数据包不输出。
对于视频模块的视频播放,与上文的音频模块输出相同。具体地,内核驱动获得目标播放器中视频模块通过调用程序语言标准库的方法发送的显示时间戳以及目标播放器对应同步实例的实时码流的节目参考时钟;内核驱动根据所述显示时间戳和节目参考时钟控制视频模块的视频帧的输出。
举例说明,视频模块通过调用C++库中的同步方法,将视频模块的video pcm数据对应的PTS发送给C++库,C++库从内核驱动获取对应instance的PCR,根据PCR来判断该video pcm数据包是否输出,例如,video pcm数据对应的PTS与对应instance的PCR一致,则该video pcm数据包输出,反之,则video pcm数据包不输出。
简而言之,时钟主控模式下,以目标播放器对应同步实例的节目参考时钟为基准,将音频模块和视频模块均与对应同步实例的时钟相同步,从而达到音视频同步的目的。
在一些实施例中,设定同步模块包括音频主控模式,音频主控模式可以用于码流不包含节目参考时钟的情况。
在音频主控模式下,以音频模块的数据输出时间为基准,将视频模块的数据输出与音频模块的时间同步。具体地,内核驱动控制音频模块按照本身的采样率输出;内核驱动根据实例标识识别目标播放器属于哪路播放器;内核驱动获得目标播放器中音频模块通过调用程序语言标准库例如C++库的方法发送的音频时间戳,并将音频时间戳作为目标播放器对应同步实例的同步锚点时间,以及获取对应同步实例的***参考时钟;内核驱动根据同步锚点时间以及***参考时钟控制目标播放器中视频模块的视频帧的输出。
举例说明,音频模块正常输出即按照其本身的采样率来输出数据,同时通过调用C++库的方法,将对应的音频模块当前输出的PTS通过C++库发送给内核驱动对应的instance节点,作为同步锚点时间。视频模块通过C++库的方法,获取内核驱动对应的instance的同步锚点时间信息,决定当前的视频帧的输出时间及策略,以实现视频模块和音频模块的同步输出。例如,确定相邻两帧的音频时间戳对应的***参考时钟以获得***参考时钟偏差,根据同步锚点时间和***参考时钟偏差确定下一帧音频的播放时间即即将播放的音频时间,在对应该音频时间的点控制视频帧输出,从而实现音视频同步输出。
在一些实施例中,设定同步模式包括视频主控模式,视频主控模式可以用于码流不包含节目参考时钟的情况。
在视频主控模式下,以视频模块的数据输出时间为基准,将音频模块的数据输出与视频模块的时间同步。具体地,内核驱动控制视频模块按照本身的采样率输出;内核驱动根据实例标识识别目标播放器属于哪路播放器;内核驱动获得目标播放器中视频模块通过调用所述程序语言标准库的方法发送的显示时间戳,并将视频时间戳作为目标播放器对应同步实例的同步锚点时间;内核驱动根据同步锚点时间以及***参考时钟控制目标播放器中音频模块的音频数据输出。例如,确定相邻两帧的视频时间戳对应的***参考时钟以获得***参考时钟偏差,根据同步锚点时间和***参考时钟偏差确定下一帧视频的播放时间即即将播放的视频时间,在对应该视频时间的点控制音频帧输出,从而实现音视频同步输出。
例如,视频模块正常输出即按照其本身的采样率来输出,同时通过调用C++库的方法,将对应的视频模块当前输出的PTS通过C++库发送给内核驱动对应的instance节点,作为同步锚点时间。音频模块通过调用C++库的方法,获取内核驱动对应的instance的同步锚点时间信息,以决定当前的音频模块pcm数据的输出时间以及策略,以实现音频模块和视频模块的同步输出。
在本发明的实施例中,本发明实施例的用于播放模块的音视频同步方法可以用于倍速播放、微速播放、显示帧率控制、丢帧、drop pcm中至少一种的音视频同步。换句话说,本发明实施例的用于播放模块的音视频同步方法,基于程序语言标准库例如C++库和内核驱动的形式,通过同步实例和实例标识的同步处理,适用于倍速播放、微速播放、显示帧率控制、丢帧、drop pcm中的任何一种场景,均可以达到音视频同步的目的,即本发明的音视频同步方法可以将核心的同步机制完全涵盖在内,从而同步模块可以作为一个独立模块被各类产品、各种场景来灵活使用。
基于上面实施例的音视频同步方法,下面参照附图描述根据本发明第二方面实施例的用于播放模块的音视频同步装置。
图3是根据本发明的一个实施例的音视频同步装置的框图,如图3所示,本发明实施例的音视频同步装置100包括构建模块101、程序语言标准库102和内核驱动103。
其中,构建模块101用于响应于播放指令确定目标播放器,以由目标播放器构建音频模块和视频模块;程序语言标准库102用于创建对应目标播放器的同步实例,其中,同步实例具有唯一的实例标识;内核驱动103用于根据实例标识获得对应同步实例的参考时钟,并根据参考时钟控制对应目标播放器的音频模块和视频模块的数据输出,其中,在一些实施例中,参考时钟可以为实时码流的节目参考时钟或者***参考时钟。
根据本发明实施例的用于播放模块的音视频同步装置100,采用面向对象的设计思路,通过实例和实例标识来进行同步处理,可以支持多路播放和跨进程的同步场景,采用程序语言标准库102和内核驱动103的形式,任何播放器、任何模块只要将程序语言标准库102编译进入,调用程序语言标准库102同步相关的方法,即可实现音视频同步,移植性强,使用场景更加灵活。
在一些实施例中,目标播放器的音频模块和视频模块属于不同进程,程序语言标准库102可以采用ioctl与内核驱动103交互,以实现跨进程音视频同步。
在一些实施例中,所述设定同步模式包括时钟主控模式;内核驱动103还用于执行以下步骤:根据所述实例表示识别目标播放器;获得所述目标播放器中音频模块通过调用所述程序语言标准库102例如C++库的方法发送的音频时间戳,以及获得所述目标播放器对应同步实例的实时码流的节目参考时钟;根据所述音频时间戳和所述节目参考时钟控制所述音频模块的音频数据输出。
在一些实施例中,内核驱动103还用于获得目标播放器中视频模块通过调用程序语言标准库102例如C++库的方法发送的显示时间戳以及目标播放器对应同步实例的实时码流的节目参考时钟;根据显示时间戳和节目参考时钟控制视频模块的视频帧的输出。
在一些实施例中,设定同步模式包括音频主控模式;内核驱动103控制音频模块按照本身的采样率输出;内核驱动103还用于根据实例表示识别目标播放器,获得目标播放器中音频模块通过调用程序语言标准库102例如C++库的方法发送的音频时间戳,并将音频时间戳作为目标播放器对应同步实例的同步锚点时间,以及,获取所述对应同步实例的***参考时钟;根据同步锚点时间以及***参考时钟控制目标播放器中视频模块的视频帧的输出。
在一些实施例中,设定同步模式包括视频主控模式;内核驱动103控制视频模块按照本身的采样率输出;内核驱动103还用于根据实例表示识别目标播放器,获得目标播放器中视频模块通过调用程序语言标准库102例如C++库的方法发送的显示时间戳,并将视频时间戳作为目标播放器对应同步实例的同步锚点时间,以及,获取所述对应同步实例的***参考时钟,根据同步锚点时间以及***参考时钟控制目标播放器中音频模块的音频数据输出。
在一些实施例中,音视频同步装置100包括倍速播放、微速播放、显示帧率控制、丢帧、drop pcm中至少一种的音视频同步机制,可以作为独立的装置。
图4是根据本发明的一个实施例的电子设备的框图,如图4所示,电子设备10包括处理器11和与处理器11通信连接的存储器12。
在实施例中,电子设备10可以包括数字电视、交互式网络电视或者其它可采用本发明上面实施例的音视频同步方法的设备。
其中,存储器12中存储有可被处理器11执行的计算机程序,处理器11执行计算机程序时实现上面实施例的音视频同步方法。
根据本发明实施例的电子设备10,通过处理器11执行上面实施例的用于播放模块的音视频同步方法,可以支持多路播放和跨进程的同步场景,同步处理采用程序语言标准库例如C++库和内核驱动的形式,任何播放器、任何模块只要将程序语言标准库编译进入,调用程序语言标准库同步相关的方法,即可实现音视频同步,移植性强,使用场景更加灵活。
本发明第四方面实施例还提出一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上面实施例的音视频同步方法,音视频同步方法参照上面第一方面实施例的描述,在此不作赘述。
根据本发明实施例的计算机可读存储介质,其中存储计算机程序介质,该计算机程序被执行时实现上面第一方面实施例的音视频同步方法,该方法采用面向对象的设计思路,通过实例和实例标识来进行同步处理,可以支持多路播放和跨进程的同步场景,同步处理采用程序语言标准库例如C++库和内核驱动的形式,任何播放器、任何模块只要将程序语言标准库编译进入,调用程序语言标准库同步相关的方法,即可实现音视频同步,移植性强,使用场景更加灵活。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,比如静态随机存取存储器(Static Random Access Memory,SRAM)和动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (10)

1.一种用于播放模块的音视频同步方法,所述播放模块包括面向对象的程序语言标准库和内核驱动,其特征在于,所述音视频同步方法包括:
响应于多路播放指令,从当前空闲播放器中确定多个目标播放器,每路所述目标播放器构建对应的音频模块和视频模块;
在所述程序语言标准库创建对应所述目标播放器的多个同步实例,其中,每个所述同步实例具有唯一的实例标识,所述内核驱动中配置实例管理表,所述程序语言标准库中每创建一个同步实例,所述内核驱动在所述实例管理表中创建一个对应的实例节点来进行管理;
每路所述目标播放器构建的所述音频模块和所述视频模块调用所述程序语言标准库中的对应同步实例的方法来与内核驱动中对应的实例节点进行交互以获取同步数据;
基于所述实例管理表,所述内核驱动根据所述实例标识获得对应同步实例的参考时钟,并根据所述参考时钟控制对应目标播放器的音频模块和视频模块的数据输出。
2.根据权利要求1所述的用于播放模块的音视频同步方法,其特征在于,
所述参考时钟包括实时码流的节目参考时钟;
所述内核驱动根据所述实例标识获得对应同步实例的参考时钟,并根据所述参考时钟控制对应目标播放器的音频模块和视频模块的数据输出,包括:
所述内核驱动确定设定同步模式为时钟主控模式;
所述内核驱动根据所述实例标识识别目标播放器;
所述内核驱动获得所述目标播放器中音频模块通过调用所述程序语言标准库的方法发送的音频时间戳,以及获得所述目标播放器对应同步实例的实时码流的所述节目参考时钟;
所述内核驱动根据所述音频时间戳和所述节目参考时钟控制所述音频模块的音频数据输出。
3.根据权利要求2所述的用于播放模块的音视频同步方法,其特征在于,还包括:
所述内核驱动获得所述目标播放器中视频模块通过调用所述程序语言标准库的方法发送的显示时间戳以及所述目标播放器对应同步实例的实时码流的节目参考时钟;
所述内核驱动根据所述显示时间戳和所述节目参考时钟控制所述视频模块的视频帧的输出。
4.根据权利要求1所述的用于播放模块的音视频同步方法,其特征在于,
所述参考时钟包括***参考时钟;
所述内核驱动根据所述实例标识获得对应同步实例的参考时钟,并根据所述参考时钟控制对应目标播放器的音频模块和视频模块的数据输出,包括:
所述内核驱动确定设定同步模式为音频主控模式;
所述内核驱动控制音频模块按照本身的采样率输出;
所述内核驱动根据所述实例标识识别目标播放器;
所述内核驱动获得所述目标播放器中音频模块通过调用所述程序语言标准库的方法发送的音频时间戳,并将所述音频时间戳作为所述目标播放器对应同步实例的同步锚点时间,以及,获取所述对应同步实例的所述***参考时钟;
所述内核驱动根据所述同步锚点时间和所述***参考时钟控制所述目标播放器中视频模块的视频帧的输出。
5.根据权利要求1所述的用于播放模块的音视频同步方法,其特征在于,
所述参考时钟包括***参考时钟;
所述内核驱动根据所述实例标识获得对应同步实例的参考时钟,并根据所述参考时钟控制对应目标播放器的音频模块和视频模块的数据输出,包括:
所述内核驱动确定设定同步模式为视频主控模式;
所述内核驱动控制视频模块按照本身的采样率输出;
所述内核驱动根据所述实例标识识别目标播放器;
所述内核驱动获得所述目标播放器中视频模块通过调用所述程序语言标准库的方法发送的显示时间戳,并将所述显示时间戳作为所述目标播放器对应同步实例的同步锚点时间,以及,获取所述对应同步实例的所述***参考时钟;
所述内核驱动根据所述同步锚点时间和所述***参考时钟控制所述目标播放器中音频模块的音频数据输出。
6.根据权利要求1-5任一项所述的用于播放模块的音视频同步方法,其特征在于,所述音视频同步方法用于倍速播放、微速播放、显示帧率控制、丢帧、drop pcm中至少一种的音视频同步。
7.根据权利要求1-5任一项所述的用于播放模块的音视频同步方法,其特征在于,所述目标播放器的音频模块和视频模块属于不同进程,所述程序语言标准库采用ioctl与所述内核驱动交互。
8.一种用于播放模块的音视频同步装置,其特征在于,包括:
构建模块,用于响应于多路播放指令从当前空闲播放器中确定多个目标播放器,每路所述目标播放器构建对应的音频模块和视频模块;
程序语言标准库,用于创建对应所述目标播放器的多个同步实例,其中,所述同步实例具有唯一的实例标识,每路所述目标播放器构建的所述音频模块和所述视频模块调用所述程序语言标准库中的对应同步实例的方法来与内核驱动中对应的实例节点进行交互以获取同步数据;
内核驱动,所述内核驱动中配置实例管理表,所述程序语言标准库中每创建一个同步实例,所述内核驱动在所述实例管理表中创建一个对应的实例节点来进行管理,所述内核驱动用于基于所述实例管理表,根据所述实例标识获得对应同步实例的参考时钟,并根据所述参考时钟控制对应目标播放器的音频模块和视频模块的数据输出。
9.一种电子设备,其特征在于,包括:
处理器;
与所述处理器通信连接的存储器;
其中,所述存储器中存储有可被所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1-7任一项所述的用于播放模块的音视频同步方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的用于播放模块的音视频同步方法。
CN202111677757.0A 2021-12-31 2021-12-31 音视频同步方法和装置及电子设备和计算机可读存储介质 Active CN114339353B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202111677757.0A CN114339353B (zh) 2021-12-31 2021-12-31 音视频同步方法和装置及电子设备和计算机可读存储介质
PCT/CN2022/115903 WO2023124173A1 (zh) 2021-12-31 2022-08-30 音视频同步方法和装置及电子设备和计算机可读存储介质
EP22913454.9A EP4391555A1 (en) 2021-12-31 2022-08-30 Audio and video synchronization method and apparatus, electronic device and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111677757.0A CN114339353B (zh) 2021-12-31 2021-12-31 音视频同步方法和装置及电子设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN114339353A CN114339353A (zh) 2022-04-12
CN114339353B true CN114339353B (zh) 2023-09-29

Family

ID=81023288

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111677757.0A Active CN114339353B (zh) 2021-12-31 2021-12-31 音视频同步方法和装置及电子设备和计算机可读存储介质

Country Status (3)

Country Link
EP (1) EP4391555A1 (zh)
CN (1) CN114339353B (zh)
WO (1) WO2023124173A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114339353B (zh) * 2021-12-31 2023-09-29 晶晨半导体科技(北京)有限公司 音视频同步方法和装置及电子设备和计算机可读存储介质
CN115695843B (zh) * 2022-10-27 2024-06-18 中国联合网络通信集团有限公司 预制视频播放方法、服务器、终端、介质及***

Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5202981A (en) * 1989-10-23 1993-04-13 International Business Machines Corporation Process and apparatus for manipulating a boundless data stream in an object oriented programming system
US5247669A (en) * 1989-10-23 1993-09-21 International Business Machines Corporation Persistent data interface for an object oriented programming system
US5410702A (en) * 1989-10-23 1995-04-25 International Business Machines Corporation Slot objects for an object oriented programming system
US5452435A (en) * 1993-03-31 1995-09-19 Kaleida Labs, Inc. Synchronized clocks and media players
US5488721A (en) * 1993-01-26 1996-01-30 International Business Machines Corporation System and method for applying visitor lock and persistent lock flags to control units of work boundaries in an object oriented environment
WO1996018152A1 (en) * 1994-12-06 1996-06-13 Intel Corporation An improved method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US5642171A (en) * 1994-06-08 1997-06-24 Dell Usa, L.P. Method and apparatus for synchronizing audio and video data streams in a multimedia system
US5815689A (en) * 1997-04-04 1998-09-29 Microsoft Corporation Method and computer program product for synchronizing the processing of multiple data streams and matching disparate processing rates using a standardized clock mechanism
JP2001222460A (ja) * 2000-02-07 2001-08-17 Toshiba Corp Rdbシステム及び記録媒体
JP2002313072A (ja) * 2001-04-13 2002-10-25 Alpine Electronics Inc オーディオ装置
CN1436001A (zh) * 2002-01-28 2003-08-13 北京华诺信息技术有限公司 解码***中实现视频与音频同步的方法
US6924843B1 (en) * 1999-02-26 2005-08-02 Canon Kabushiki Kaisha Image display apparatus control system and image display system control method
JP2006099297A (ja) * 2004-09-29 2006-04-13 Nec Corp 共有ライブラリ差分カストマイズ装置及びその方法
CN101887739A (zh) * 2010-06-25 2010-11-17 华为技术有限公司 媒体播放同步的方法及装置
CN104333808A (zh) * 2014-11-14 2015-02-04 复旦大学 用于Android及Linux智能电视机上的通用播放器
CN104714844A (zh) * 2013-12-17 2015-06-17 华为技术有限公司 轻量级操作***部署方法及装置
CN109120974A (zh) * 2018-07-25 2019-01-01 深圳市异度信息产业有限公司 一种音视频同步播放的方法及装置
CN109729404A (zh) * 2019-01-15 2019-05-07 晶晨半导体(上海)股份有限公司 一种基于嵌入式的播放器的同步调制方法及***
CN110225385A (zh) * 2019-06-19 2019-09-10 鼎桥通信技术有限公司 一种音视频同步调整方法和装置
CN111158470A (zh) * 2019-12-17 2020-05-15 瑞声科技(新加坡)有限公司 控制输出振动信号的方法、装置、计算机设备及存储介质
CN111757158A (zh) * 2020-06-29 2020-10-09 北京百度网讯科技有限公司 音视频同步播放方法、装置、设备和存储介质
CN111787365A (zh) * 2020-07-17 2020-10-16 易视腾科技股份有限公司 多路音视频同步方法及装置
CN112218115A (zh) * 2020-09-25 2021-01-12 深圳市捷视飞通科技股份有限公司 流媒体音视频同步的控制方法、装置、计算机设备
CN113504886A (zh) * 2021-05-08 2021-10-15 辛巴网络科技(南京)有限公司 一种基于MediaSession框架的多音频聚合车载多媒体方法
CN113596549A (zh) * 2020-10-13 2021-11-02 杭州涂鸦信息技术有限公司 基于不同参考时钟的音视频同步方法、装置和计算机设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941383B1 (en) * 2000-01-20 2005-09-06 Interactual Technologies, Inc. System, method and article of manufacture for java/javascript component in a multimedia synchronization framework
US7313098B2 (en) * 2002-09-30 2007-12-25 Avaya Technology Corp. Communication system endpoint device with integrated call synthesis capability
KR100608059B1 (ko) * 2004-06-15 2006-08-02 삼성전자주식회사 Mot 데이터 복호 방법 및 장치
JP2007049466A (ja) * 2005-08-10 2007-02-22 Canon Inc 同期再生方法、および同期再生ソフトウェア
US7979868B2 (en) * 2007-01-07 2011-07-12 Apple Inc. Method and apparatus for intercommunications amongst device drivers
US8670072B1 (en) * 2011-12-05 2014-03-11 Guangzhou Ucweb Computer Technology Co., Ltd Method and apparatus for streaming media data processing, and streaming media playback equipment
US10380526B2 (en) * 2013-09-03 2019-08-13 Oracle International Corporation System and method for providing a process player for use with a business process design environment
US10034035B2 (en) * 2014-12-10 2018-07-24 DISH Technologies L.L.C. Methods, devices and systems for audiovisual synchronization with multiple output devices
US20170289609A1 (en) * 2016-03-31 2017-10-05 Le Holdings(Beijing)Co., Ltd. Method and device for playing multimedia data synchronously
CN106060651B (zh) * 2016-06-06 2019-08-16 深圳Tcl数字技术有限公司 智能电视的启动方法及***
CN106354458B (zh) * 2016-08-26 2019-09-20 青岛海信移动通信技术股份有限公司 双屏显示方法及装置
US10362346B2 (en) * 2017-04-20 2019-07-23 Apple Inc. Simultaneous playback for multiple audience members with different visual and audio needs
CN111405337A (zh) * 2020-02-17 2020-07-10 福州瑞芯微电子股份有限公司 安卓***的双屏异声的实现的方法、装置、设备和介质
CN114339353B (zh) * 2021-12-31 2023-09-29 晶晨半导体科技(北京)有限公司 音视频同步方法和装置及电子设备和计算机可读存储介质

Patent Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5202981A (en) * 1989-10-23 1993-04-13 International Business Machines Corporation Process and apparatus for manipulating a boundless data stream in an object oriented programming system
US5247669A (en) * 1989-10-23 1993-09-21 International Business Machines Corporation Persistent data interface for an object oriented programming system
US5410702A (en) * 1989-10-23 1995-04-25 International Business Machines Corporation Slot objects for an object oriented programming system
US5488721A (en) * 1993-01-26 1996-01-30 International Business Machines Corporation System and method for applying visitor lock and persistent lock flags to control units of work boundaries in an object oriented environment
US5452435A (en) * 1993-03-31 1995-09-19 Kaleida Labs, Inc. Synchronized clocks and media players
US5642171A (en) * 1994-06-08 1997-06-24 Dell Usa, L.P. Method and apparatus for synchronizing audio and video data streams in a multimedia system
WO1996018152A1 (en) * 1994-12-06 1996-06-13 Intel Corporation An improved method and apparatus for embedding a real-time multi-tasking kernel in a non-real-time operating system
US5815689A (en) * 1997-04-04 1998-09-29 Microsoft Corporation Method and computer program product for synchronizing the processing of multiple data streams and matching disparate processing rates using a standardized clock mechanism
US6924843B1 (en) * 1999-02-26 2005-08-02 Canon Kabushiki Kaisha Image display apparatus control system and image display system control method
JP2001222460A (ja) * 2000-02-07 2001-08-17 Toshiba Corp Rdbシステム及び記録媒体
JP2002313072A (ja) * 2001-04-13 2002-10-25 Alpine Electronics Inc オーディオ装置
CN1436001A (zh) * 2002-01-28 2003-08-13 北京华诺信息技术有限公司 解码***中实现视频与音频同步的方法
JP2006099297A (ja) * 2004-09-29 2006-04-13 Nec Corp 共有ライブラリ差分カストマイズ装置及びその方法
CN101887739A (zh) * 2010-06-25 2010-11-17 华为技术有限公司 媒体播放同步的方法及装置
CN104714844A (zh) * 2013-12-17 2015-06-17 华为技术有限公司 轻量级操作***部署方法及装置
CN104333808A (zh) * 2014-11-14 2015-02-04 复旦大学 用于Android及Linux智能电视机上的通用播放器
CN109120974A (zh) * 2018-07-25 2019-01-01 深圳市异度信息产业有限公司 一种音视频同步播放的方法及装置
CN109729404A (zh) * 2019-01-15 2019-05-07 晶晨半导体(上海)股份有限公司 一种基于嵌入式的播放器的同步调制方法及***
CN110225385A (zh) * 2019-06-19 2019-09-10 鼎桥通信技术有限公司 一种音视频同步调整方法和装置
CN111158470A (zh) * 2019-12-17 2020-05-15 瑞声科技(新加坡)有限公司 控制输出振动信号的方法、装置、计算机设备及存储介质
CN111757158A (zh) * 2020-06-29 2020-10-09 北京百度网讯科技有限公司 音视频同步播放方法、装置、设备和存储介质
CN111787365A (zh) * 2020-07-17 2020-10-16 易视腾科技股份有限公司 多路音视频同步方法及装置
CN112218115A (zh) * 2020-09-25 2021-01-12 深圳市捷视飞通科技股份有限公司 流媒体音视频同步的控制方法、装置、计算机设备
CN113596549A (zh) * 2020-10-13 2021-11-02 杭州涂鸦信息技术有限公司 基于不同参考时钟的音视频同步方法、装置和计算机设备
CN113504886A (zh) * 2021-05-08 2021-10-15 辛巴网络科技(南京)有限公司 一种基于MediaSession框架的多音频聚合车载多媒体方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张振明等编著.《现代CAPP技术与应用》.西安:西北工业大学出版社,2003,第71-75页. *
张起贵等.《最新DSP技术 "达芬奇"***、框架和组件》.北京:国防工业出版社,2009,第350-353页. *

Also Published As

Publication number Publication date
WO2023124173A1 (zh) 2023-07-06
EP4391555A1 (en) 2024-06-26
CN114339353A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
CN114339353B (zh) 音视频同步方法和装置及电子设备和计算机可读存储介质
CN101854533B (zh) 频道切换方法、装置及***
KR101932793B1 (ko) 동기화된 컨텐트의 분산형 제어
US9549027B2 (en) Network-synchronized media playback
CN104902317A (zh) 音视频同步方法及装置
JP7271856B2 (ja) ネットワーク遅延がある環境での遠隔クラウドベースのビデオ制作システム
CN112929713B (zh) 数据同步方法、装置、终端及存储介质
KR20140066641A (ko) 서버, 멀티미디어 기기 및 그들의 제어방법
CN103198851A (zh) 一种基于时间戳消息的多终端同步播放方法
JP2019169948A (ja) 送信方法、受信方法、送信装置および受信装置
CN112584087B (zh) 视频会议录制方法、电子装置和存储介质
CN104822008A (zh) 视频同步方法及装置
CN107566889A (zh) 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质
JP4362734B2 (ja) 同期再生システム
CN114079813A (zh) 画面同步方法、编码方法、视频播放设备及视频编码设备
US10897655B2 (en) AV server and AV server system
CN108156498B (zh) 一种音视频同步的方法及装置
WO2016090916A1 (zh) 码流传输方法和装置
US9420278B2 (en) Audiovisual content generation method for multistage high-speed reproduction
CN115665493A (zh) 支持录播的大屏拼接装置、拼接器、播放控制方法及***
US20190364327A1 (en) Method for decoding an audio/video stream and corresponding device
CN114339370A (zh) 一种自动切换画面的慢直播***及方法
JP2021192528A (ja) 送信方法、受信方法、送信装置および受信装置
van Deventer et al. Media synchronisation for television services through HbbTV
US12028691B2 (en) Method of applying a set of equalization parameters

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