CN112218115B - 流媒体音视频同步的控制方法、装置、计算机设备 - Google Patents

流媒体音视频同步的控制方法、装置、计算机设备 Download PDF

Info

Publication number
CN112218115B
CN112218115B CN202011021295.2A CN202011021295A CN112218115B CN 112218115 B CN112218115 B CN 112218115B CN 202011021295 A CN202011021295 A CN 202011021295A CN 112218115 B CN112218115 B CN 112218115B
Authority
CN
China
Prior art keywords
audio data
audio
timestamp information
channel
data
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
CN202011021295.2A
Other languages
English (en)
Other versions
CN112218115A (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.)
Ifreecomm Technology Co ltd
Original Assignee
Ifreecomm 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 Ifreecomm Technology Co ltd filed Critical Ifreecomm Technology Co ltd
Priority to CN202011021295.2A priority Critical patent/CN112218115B/zh
Publication of CN112218115A publication Critical patent/CN112218115A/zh
Application granted granted Critical
Publication of CN112218115B publication Critical patent/CN112218115B/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/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • 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/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

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)

Abstract

本申请涉及一种流媒体音视频同步的控制方法、装置、计算机设备和存储介质。所述方法包括:当获取到音频信号时,触发控制器开始搬运与所述音频信号对应的音频数据;当搬运完成时,获取所述音频数据对应的时间戳信息,所述时间戳信息是基于硬件产生中断的时间确定;将所述音频数据及对应的所述时间戳信息缓存至缓存库;当应用程序从所述缓存库中获取音频数据时,将携带时间戳信息的所述音频数据发送至所述应用程序。采用本方法能够保证应用程序可以正常进行音视频通同步处理,从而有效解决了流媒体中音视频无法同步的问题。

Description

流媒体音视频同步的控制方法、装置、计算机设备
技术领域
本申请涉及多媒体技术领域,特别是涉及一种流媒体音视频同步的控制方法、装置、计算机设备和存储介质。
背景技术
随着多媒体技术的发展,流媒体推流不仅在传统应用上需求旺盛,还在视频会议、远程教育,数字法庭等行业产生了新的需求,对终端也有了更高的要求,比如,数字法庭用户希望厂商能够提供实时光盘刻录的功能,当审判结束时,立即取出录播的光盘,进行封存。用户希望多媒体应用提供更高清、更多路的流媒体推流能力,来满足用户的不同应用场景需求。
然而,目前常用的多核嵌入式***中,由于嵌入式***CPU性能有限,中央处理器的负载也越来越高,导致***中存在卡顿现象,应用程序获取音频包不及时,音频包会在驱动中堆积,容易导致音视频无法同步的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够保证流媒体的音视频数据同步传输的流媒体音视频同步的控制方法、装置、计算机设备和存储介质。
一种流媒体音视频同步的控制方法,所述方法包括:
当获取到音频信号时,触发控制器开始搬运与所述音频信号对应的音频数据;
当搬运完成时,获取所述音频数据对应的时间戳信息,所述时间戳信息是基于硬件产生中断的时间确定;
将所述音频数据及对应的所述时间戳信息缓存至缓存库;
当应用程序从所述缓存库中获取音频数据时,将携带时间戳信息的所述音频数据发送至所述应用程序。
在其中一个实施例中,所述当获取到音频信号之前,所述方法还包括:
对音频参数进行更新,得到更新后的音频参数;所述音频参数包括通道数;
在所述将所述音频数据及对应的所述时间戳信息缓存至缓存库之前,所述方法还包括:
将所述时间戳信息添加至所述音频数据对应的空闲通道。
在其中一个实施例中,所述触发控制器开始搬运与所述音频信号对应的音频数据之前,所述方法还包括:
根据音频参数,确定每个采样点对应的数据量;所述音频参数包括采样频率、采样位数以及通道数;
根据硬件中断时的时间间隔,获取所述时间间隔内的采样点数量;
根据所述每个采样点对应的数据量和所述采样点数量,确定需要搬运的音频数据量。
在其中一个实施例中,所述将所述音频数据及对应的所述时间戳信息缓存至缓存库包括:
根据接收音频信号的顺序,将所述音频数据和所述时间戳信息缓存至缓存库。
在其中一个实施例中,所述当搬运完成时,获取所述音频数据对应的时间戳信息之后,所述方法还包括:
检测所述音频数据对应的通道数;
当检测所述音频数据对应的通道中存在冗余通道时,则将所述音频数据对应的时间戳信息储存至所述冗余通道中;
当检测所述音频数据对应的通道中不存在冗余通道时,则将所述音频数据对应的通道数进行更新,并将所述音频数据对应的时间戳信息储存至更新后的通道中。
在其中一个实施例中,所述当搬运完成时,获取所述音频数据对应的时间戳信息包括:
当搬运完成后,触发生成搬运完成的中断,所述中断是硬件基于固定频率信号产生的。
一种流媒体音视频同步的控制装置,所述装置包括:
搬运模块,用于当获取到音频信号时,触发控制器开始搬运与所述音频信号对应的音频数据;
获取模块,用于当搬运完成时,获取所述音频数据对应的时间戳信息,所述时间戳信息是基于硬件产生中断的时间确定;
缓存模块,用于将所述音频数据及对应的所述时间戳信息缓存至缓存库;
发送模块,用于当应用程序从所述缓存库中获取音频数据时,将携带时间戳信息的所述音频数据发送至所述应用程序。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当获取到音频信号时,触发控制器开始搬运与所述音频信号对应的音频数据;
当搬运完成时,获取所述音频数据对应的时间戳信息,所述时间戳信息是基于硬件产生中断的时间确定;
将所述音频数据及对应的所述时间戳信息缓存至缓存库;
当应用程序从所述缓存库中获取音频数据时,将携带时间戳信息的所述音频数据发送至所述应用程序。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当获取到音频信号时,触发控制器开始搬运与所述音频信号对应的音频数据;
当搬运完成时,获取所述音频数据对应的时间戳信息,所述时间戳信息是基于硬件产生中断的时间确定;
将所述音频数据及对应的所述时间戳信息缓存至缓存库;
当应用程序从所述缓存库中获取音频数据时,将携带时间戳信息的所述音频数据发送至所述应用程序。
上述流媒体音视频同步的控制方法、装置、计算机设备和存储介质,当获取到音频信号时,触发控制器开始搬运与音频信号对应的音频数据。当搬运完成时,获取音频数据对应的时间戳信息,时间戳信息是基于硬件产生中断的时间确定,并将音频数据及对应的时间戳信息缓存至缓存库。当应用程序从缓存库中获取音频数据时,将携带时间戳信息的音频数据发送至应用程序。由此使得,即使当***出现卡顿,应用程序出现连续获取音频数据的情况时,由于音频数据中缓存的时间戳信息是基于硬件产生中断的时间确定的,因而该时间戳信息能够真实的反应音频数据的间隔,能够保证应用程序可以正常进行音视频通同步处理,从而有效解决了流媒体中音视频无法同步的问题。
附图说明
图1为一个实施例中流媒体音视频同步的控制方法的流程示意图;
图2为一个实施例中检测音频数据对应的通道数步骤的流程示意图;
图3A为另一个实施例中流媒体音视频同步的控制方法的流程示意图;
图3B为一个实施例中流媒体音视频同步的***逻辑处理的流程示意图;
图4为一个实施例中流媒体音视频同步的控制装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种流媒体音视频同步的控制方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的***,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤102,当获取到音频信号时,触发控制器开始搬运与音频信号对应的音频数据。
随着多媒体技术的发展,流媒体推流不仅在传统应用上需求旺盛,还在视频会议、远程教育以及数字法庭等行业产生了新的需求,对***也有了更高的要求,用户希望***能够提供更高清、更多路的流媒体推流能力,以满足用户的不同应用场景的需求。例如,目前常见的流媒体应用程序包括但不限于斗鱼直播、虎牙直播、腾讯视频、企业微信等部分支持弹幕消息的功能。用户也可以通过不同类型的智能移动办公平台,利用平台进行视频直播会议等操作。例如,企业可以通过填写企业名称、行业类型、人员规模、管理密码、联系人姓名等信息在不同的智能移动办公平台中进行注册。管理员可以在管理后台导入该企业员工通讯录,员工会收到激活短信。员工在完成真实姓名填写和手机号码验证之后,就可以登录使用该***中的视频直播会议等功能,比如常见的具有视频直播会议功能的平台钉钉。
用户可以通过点选移动终端设备主界面中某个特定的应用程序,启动该应用程序进入与该应用程序对应的页面中,或者用户也可以通过触发操作直接登录某个特定的平台页面中,用户可以根据不同需求选择对应的视频直播场景。具体的,当用户通过触发操作启动直播后,终端通过音频控制器获取到音频信号时,触发控制器开始搬运与音频信号对应的音频数据。其中,流媒体(Streaming Media)是指将一连串的媒体数据压缩后,以流的方式在网络中分段传送,实现在网络上实时传输影音以供观赏的一种技术。即流媒体指的是一种新的媒体传送方式,可以包括声音流、视频流、文本流、图像流、动画流等。音频信号(acoustic signals)是带有语音、音乐和音效的有规律的声波的频率、幅度变化信息载体。本申请中音频信号是指通过模数转换芯片将采集的模拟信号转换成对应的数字信号,将数字信号发送至音频控制器。在驱动层,当音频控制器获取到音频信号时即数字信号,触发控制器开始搬运与音频信号对应的音频数据。音频控制器将与音频信号对应的音频数据采集到中央处理器中。
步骤104,当搬运完成时,获取音频数据对应的时间戳信息,时间戳信息是基于硬件产生中断的时间确定。
当控制器搬运完成时,获取当前完成搬运的音频数据对应的时间戳信息,时间戳信息是基于硬件产生中断的时间确定。其中,时间戳是指使用数字签名技术产生的数据,签名的对象包括了原始文件信息、签名参数、签名时间等信息。音视频数据的时间戳可以分为解码时间戳(DTS)和显示时间戳(PTS),即分别表示某一帧数据解码和显示相对于起始时间的时间戳。由于音频参数是用户预先设置好的,当音频参数确定后,音频信号就会按照独立时钟产生。独立时钟是指硬件器件按照预设的频率产生的硬件中断,这个独立时钟的时间与***没有联系,它是硬件器件产生的,所以不会因为***的负载高低变化导致采集时间的波动。具体的,在***内核空间中,当控制器搬运完成时,触发生成中断,***中央处理器基于该硬件中断,获取与当前音频数据对应的时间戳信息,即时间戳信息是基于硬件产生中断的时间确定。
步骤106,将音频数据及对应的时间戳信息缓存至缓存库。
当终端获取音频数据对应的时间戳信息之后,终端将获取到的音频数据及对应的时间戳信息缓存至缓存库。具体的,在内核空间中,终端通过***函数获取音频数据对应的时间戳信息之后,终端将获取到的时间戳信息存储在对应的音频数据的描述信息中。例如,终端可以将该时间戳信息添加至音频数据的冗余通道中,并将音频数据及对应的时间戳信息缓存至缓存库。
步骤108,当应用程序从缓存库中获取音频数据时,将携带时间戳信息的音频数据发送至应用程序。
当终端将音频数据及对应的时间戳信息缓存至缓存库之后,应用程序可以通过API来获取音频数据。其中,API(Application Programming Interface,应用程序接口)是一些预先定义的函数,或指软件***不同组成部分衔接的约定。具体的,在应用空间中,不同的应用程序从缓存库中获取音频数据时,终端将携带时间戳信息的音频数据发送至对应的应用程序。
本实施例中,当获取到音频信号时,触发控制器开始搬运与音频信号对应的音频数据。当搬运完成时,获取音频数据对应的时间戳信息,时间戳信息是基于硬件产生中断的时间确定,并将音频数据及对应的时间戳信息缓存至缓存库。当应用程序从缓存库中获取音频数据时,将携带时间戳信息的音频数据发送至应用程序。由此使得,即使当***出现卡顿,应用程序出现连续获取音频数据的情况时,由于音频数据中缓存的时间戳信息是基于硬件产生中断的时间确定的,因而该时间戳信息能够真实的反应音频数据的间隔,能够保证应用程序可以正常进行音视频通同步处理,从而有效的解决了流媒体中音视频无法同步的问题。
在一个实施例中,当获取到音频信号之前,该方法还包括对音频参数进行更新的步骤,具体包括:
对音频参数进行更新,得到更新后的音频参数,音频参数包括通道数。
将时间戳信息添加至音频数据对应的空闲通道。
当终端获取到音频信号之前,或者当应用程序从缓存库中获取音频数据时,可以对音频参数进行更新,得到更新后的音频参数,音频参数包括通道数。例如,在终端的内核空间中,可以采用ti8168作为处理器,它是一款多通道高清soc***芯片,集成了运行linux的A8处理器,利用该处理器对音频数据进行采集。当音频模拟信号通过AD即模数转换芯片转换成数字信号后,数字信号再经过控制器采集对应的数据到中央处理器中。为了不影响音频数据的完整性,当应用程序获取音频包时,可以通过调节音频参数,将交互的音频数据量适当增加,比如,在多通道场景下,可以通过增加通道数,或使用冗余的通道来保存时间戳信息。即终端可以对音频参数中的通道数进行更新,得到更新后的通道数,终端将时间戳信息添加至音频数据对应的新增的空闲通道中。由此使得,从音频数据的源头,即基于硬件中断的时间进行时间戳处理,降低对***的依赖性,从而保证了时间戳的准确性,为后续的音视频同步提供保障。
在一个实施例中,触发控制器开始搬运与音频信号对应的音频数据之前,该方法还包括确定需要搬运的音频数据量的步骤,具体包括:
根据音频参数,确定每个采样点对应的数据量,音频参数包括采样频率、采样位数以及通道数。
根据硬件中断时的时间间隔,获取时间间隔内的采样点数量。
根据每个采样点对应的数据量和采样点数量,确定需要搬运的音频数据量。
当控制器采集音频数据时,音频数据的采集都是基于数字音频接口时序,当数字音频接口时序确定时,采样位数,通道数等音频参数都可以确定。应用程序通过应用程序接口获取数据时,通常以采样点个数对应的音频数据量来进行交互,该数据量也就是硬件中断的间隔时间内所产生的数据量。比如,视频直播会议中一般使用的是48k采样频率,32位采样位数,通道数不固定,根据应用场景的不同,可以设置不同的采样频率、采样位数以及通道数。具体的,当控制器采集音频数据时,终端可以根据音频参数,确定每个采样点对应的数据量,其中,音频参数包括采样频率、采样位数以及通道数。终端根据硬件中断时的时间间隔,获取时间间隔内的采样点数量。终端根据每个采样点对应的数据量和采样点数量,确定需要搬运的音频数据量。由此使得,根据硬件产生的中断即固定频率的触发信号,基于这个固定频率的信号获取时间戳信息,并将时间戳信息存储至音频数据中,从而保证了时间戳的准确性,为后续的音视频同步提供保障。
在一个实施例中,如图2所示,当搬运完成时,获取音频数据对应的时间戳信息之后,该方法还包括检测音频数据对应的通道数的步骤,具体包括:
步骤202,检测音频数据对应的通道数。
步骤204,当检测音频数据对应的通道中存在冗余通道时,则将音频数据对应的时间戳信息储存至冗余通道中。
步骤206,当检测音频数据对应的通道中不存在冗余通道时,则将音频数据对应的通道数进行更新,并将音频数据对应的时间戳信息储存至更新后的通道中。
当应用程序从缓存库中获取音频数据时,终端可以检测音频数据对应的通道数。当终端检测音频数据对应的通道中存在冗余通道时,则将音频数据对应的时间戳信息储存至冗余通道中。当终端检测音频数据对应的通道中不存在冗余通道时,则将音频数据对应的通道数进行更新,并将音频数据对应的时间戳信息储存至更新后的通道中。例如,***中原来设置的音频参数为2通道,32位采样位宽,48000采样频率,960个采样点,则单次获取的音频包数量为:2*4*960字节=7680。为了存储时间戳数据,即当终端检测音频数据对应的通道中不存在冗余通道时,终端可以将音频数据对应的通道数进行更新,并将音频数据对应的时间戳信息储存至更新后的通道中。比如,终端将原来的2通道更新为4通道,通过软件适配,硬件还是按照原来的2通道进行采集数据,但是上报给应用程序时的数据扩大一倍,即在冗余通道的任意位置可以填充对应的时间戳信息。当终端检测音频数据对应的通道中存在冗余通道时,即在多通道的情况下,则终端可以将音频数据对应的时间戳信息储存至在未使用的冗余通道中,并上报至对应的应用程序。相对于传统的音视频处理方式,当***出现卡顿时,会导致应用程序获取音频数据不及时,出现取一次音频数据后,立即进行第二次音频数据的获取,两次操作间隔很小,获取的时间戳信息很相近,导致应用程序在使用时间戳进行音视频同步时,就会出现音视频无法同步等异常情况,主要因为时间戳没有真实的反映出音频数据的产生间隔。而本申请中,在分配缓存空间时进行适配,主要目的是预留存储时间戳的内存空间。这样应用程序每次获取的音频数据就包含了对应的时间戳信息,相对于传统方式,需要在分配音频数据缓存时,适当将缓存区加大,预留保存时间戳信息的空间,硬件仍按照原来的时序进行音频数据采集,在保证音频数据完整性的同时,能够确保时间戳的准确性,保证应用程序可以正常进行音视频通同步处理,从而有效的解决了流媒体中音视频无法同步的问题。
在一个实施例中,如图3A所示,提供了一种流媒体音视频同步的控制方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的***,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤302,当获取到音频信号时,触发控制器开始搬运与音频信号对应的音频数据。
步骤304,当搬运完成后,触发生成搬运完成的中断,获取音频数据对应的时间戳信息,时间戳信息是基于硬件产生中断的时间确定。
步骤306,根据接收音频信号的顺序,将音频数据和时间戳信息缓存至缓存库。
步骤308,当应用程序从缓存库中获取音频数据时,将携带时间戳信息的音频数据发送至应用程序。
当控制器获取到音频信号时,触发控制器开始搬运与音频信号对应的音频数据。当控制器搬运完成后,触发生成搬运完成的中断,基于硬件产生搬运完成的中断的时间获取音频数据对应的时间戳信息,并将获取到的时间戳信息添加至音频数据对应的空闲通道。中央处理器根据接收音频信号的顺序,将音频数据和时间戳信息缓存至缓存库。当应用程序从缓存库中获取音频数据时,中央处理器将携带时间戳信息的音频数据发送至应用程序。例如,以基于alsa的音频时间戳处理过程为例,ALSA是Advanced Linux SoundArchitecture的缩写,高级Linux声音架构的简称,它在Linux操作***上提供了音频和MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持。如图3B所示,为流媒体音视频同步的***逻辑处理示意图。为了保证整个音频***时钟同步,音频的位时钟和帧同步时钟均由中央处理器提供。ADC芯片即模数转换芯片将模拟信号转换成数字信号,送给中央处理器的内部模块Mcasp,Mcasp即中央处理器上的音频处理控制器,又叫多通道音频接入接口。Mcasp控制器获取到音频信号后,触发EDMA的搬运事件AREVT,即启动EDAM开始搬运音频数据。其中,AREVT是EDMA的触发事件,可以通知EDMA进行数据搬运。EDMA是数字信号处理器(DSP)中用于快速数据交换的重要技术,具有独立于CPU的后台批量数据传输的能力,能够满足实时图像处理中高速数据传输的要求,用来进行外设和内存的数据交换。当EDMA搬运完成后,触发生成EDAM搬运完成的中断,***基于此中断对音频数据打上时间戳。即终端获取的音频数据对应的时间戳信息是基于硬件产生中断的时间确定的。中央处理器根据接收音频信号的顺序,将音频数据和时间戳信息缓存至缓存库。当应用程序从缓存库中获取音频数据时,中央处理器将携带时间戳信息的音频数据发送至应用程序。由此实现了基于alsa的时间戳上报,为音视频同步打下了基础,实现了直播、录播功能稳定可靠运行。
本实施例中,通过在音频数据缓存时进行时间戳处理,使得缓存中的音频数据都携带有时间戳信息,即使***出现卡顿,应用程序无法及时取数据,出现连续获取音频数据的情况时,由于音频数据中携带的时间戳是基于硬件中断的时间获取的,对***的依懒性较低,因而能够确保时间戳信息的准确性,从而能够保证应用程序可以正常进行音视频通同步处理,有效的解决了流媒体中音视频无法同步的问题。
应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种流媒体音视频同步的控制装置,包括:搬运模块402、获取模块404、缓存模块406和发送模块408,其中:
搬运模块402,用于当获取到音频信号时,触发控制器开始搬运与音频信号对应的音频数据。
获取模块404,用于当搬运完成时,获取音频数据对应的时间戳信息,时间戳信息是基于硬件产生中断的时间确定。
缓存模块406,用于将音频数据及对应的时间戳信息缓存至缓存库。
发送模块408,用于当应用程序从缓存库中获取音频数据时,将携带时间戳信息的音频数据发送至应用程序。
在一个实施例中,该装置还包括:更新模块和添加模块。
更新模块用于对音频参数进行更新,得到更新后的音频参数,音频参数包括通道数。添加模块用于将时间戳信息添加至音频数据对应的空闲通道。
在一个实施例中,该装置还包括:确定模块。
确定模块用于根据音频参数,确定每个采样点对应的数据量,音频参数包括采样频率、采样位数以及通道数。获取模块还用于根据硬件中断时的时间间隔,获取时间间隔内的采样点数量。确定模块还用于根据每个采样点对应的数据量和采样点数量,确定需要搬运的音频数据量。
在一个实施例中,缓存模块还用于根据接收音频信号的顺序,将音频数据和时间戳信息缓存至缓存库。
在一个实施例中,该装置还包括:检测模块。
检测模块用于检测音频数据对应的通道数。当检测音频数据对应的通道中存在冗余通道时,则将音频数据对应的时间戳信息储存至冗余通道中;当检测音频数据对应的通道中不存在冗余通道时,则将音频数据对应的通道数进行更新,并将音频数据对应的时间戳信息储存至更新后的通道中。
在一个实施例中,该装置还包括:生成模块。
生成模块用于当搬运完成后,触发生成搬运完成的中断,中断是硬件基于固定频率信号产生的。
关于流媒体音视频同步的控制装置的具体限定可以参见上文中对于流媒体音视频同步的控制方法的限定,在此不再赘述。上述流媒体音视频同步的控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过***总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种流媒体音视频同步的控制方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述各个方法实施例的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种流媒体音视频同步的控制方法,所述方法包括:
当获取到音频信号时,触发控制器开始搬运与所述音频信号对应的音频数据;
当搬运完成时,获取所述音频数据对应的时间戳信息,所述时间戳信息是基于硬件产生中断的时间确定;
检测所述音频数据对应的通道数;
当检测所述音频数据对应的通道中存在冗余通道时,则将所述音频数据对应的时间戳信息储存至所述冗余通道中;
当检测所述音频数据对应的通道中不存在冗余通道时,则将所述音频数据对应的通道数进行更新,并将所述音频数据对应的时间戳信息储存至更新后的通道中;
将所述音频数据及对应的所述时间戳信息缓存至缓存库;
当应用程序从所述缓存库中获取音频数据时,将携带时间戳信息的所述音频数据发送至所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述当获取到音频信号之前,所述方法还包括:
对音频参数进行更新,得到更新后的音频参数;所述音频参数包括通道数;
在所述将所述音频数据及对应的所述时间戳信息缓存至缓存库之前,所述方法还包括:
将所述时间戳信息添加至所述音频数据对应的空闲通道。
3.根据权利要求1所述的方法,其特征在于,所述触发控制器开始搬运与所述音频信号对应的音频数据之前,所述方法还包括:
根据音频参数,确定每个采样点对应的数据量;所述音频参数包括采样频率、采样位数以及通道数;
根据硬件中断时的时间间隔,获取所述时间间隔内的采样点数量;
根据所述每个采样点对应的数据量和所述采样点数量,确定需要搬运的音频数据量。
4.根据权利要求1所述的方法,其特征在于,所述将所述音频数据及对应的所述时间戳信息缓存至缓存库包括:
根据接收音频信号的顺序,将所述音频数据和所述时间戳信息缓存至缓存库。
5.根据权利要求1所述的方法,其特征在于,所述当搬运完成时,获取所述音频数据对应的时间戳信息包括:
当搬运完成后,触发生成搬运完成的中断,所述中断是硬件基于固定频率信号产生的。
6.一种流媒体音视频同步的控制装置,其特征在于,所述装置包括:
搬运模块,用于当获取到音频信号时,触发控制器开始搬运与所述音频信号对应的音频数据;
获取模块,用于当搬运完成时,获取所述音频数据对应的时间戳信息,所述时间戳信息是基于硬件产生中断的时间确定;
检测模块,用于检测所述音频数据对应的通道数;当检测所述音频数据对应的通道中存在冗余通道时,则将所述音频数据对应的时间戳信息储存至所述冗余通道中;当检测所述音频数据对应的通道中不存在冗余通道时,则将所述音频数据对应的通道数进行更新,并将所述音频数据对应的时间戳信息储存至更新后的通道中;
缓存模块,用于将所述音频数据及对应的所述时间戳信息缓存至缓存库;
发送模块,用于当应用程序从所述缓存库中获取音频数据时,将携带时间戳信息的所述音频数据发送至所述应用程序。
7.根据权利要求6所述的流媒体音视频同步的控制装置,其特征在于,所述装置还包括:
添加模块,用于将所述时间戳信息添加至所述音频数据对应的空闲通道。
8.根据权利要求6所述的流媒体音视频同步的控制装置,其特征在于,所述装置还包括:
确定模块,用于根据音频参数,确定每个采样点对应的数据量;所述音频参数包括采样频率、采样位数以及通道数;所述获取模块还用于根据硬件中断时的时间间隔,获取所述时间间隔内的采样点数量;所述确定模块还用于根据所述每个采样点对应的数据量和所述采样点数量,确定需要搬运的音频数据量。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
CN202011021295.2A 2020-09-25 2020-09-25 流媒体音视频同步的控制方法、装置、计算机设备 Active CN112218115B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011021295.2A CN112218115B (zh) 2020-09-25 2020-09-25 流媒体音视频同步的控制方法、装置、计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011021295.2A CN112218115B (zh) 2020-09-25 2020-09-25 流媒体音视频同步的控制方法、装置、计算机设备

Publications (2)

Publication Number Publication Date
CN112218115A CN112218115A (zh) 2021-01-12
CN112218115B true CN112218115B (zh) 2022-07-29

Family

ID=74052312

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011021295.2A Active CN112218115B (zh) 2020-09-25 2020-09-25 流媒体音视频同步的控制方法、装置、计算机设备

Country Status (1)

Country Link
CN (1) CN112218115B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113132672B (zh) * 2021-03-24 2022-07-26 联想(北京)有限公司 一种数据处理方法以及视频会议设备
CN113784073A (zh) * 2021-09-28 2021-12-10 深圳万兴软件有限公司 一种录音录像声音和画面同步方法、装置及相关介质
CN114339353B (zh) * 2021-12-31 2023-09-29 晶晨半导体科技(北京)有限公司 音视频同步方法和装置及电子设备和计算机可读存储介质
CN115547367A (zh) * 2022-09-23 2022-12-30 天翼数字生活科技有限公司 一种音视频缓冲区读取处理方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005130388A (ja) * 2003-10-27 2005-05-19 Yamaha Corp オーディオ信号再生装置
CN1960228A (zh) * 2006-08-22 2007-05-09 中兴通讯股份有限公司 一种移动多媒体广播空中通道的复用方法
CN105306110A (zh) * 2015-09-18 2016-02-03 深圳市冠旭电子有限公司 一种实现音乐同步播放的方法及***
CN108055566A (zh) * 2017-12-26 2018-05-18 郑州云海信息技术有限公司 音视频同步的方法、装置、设备及计算机可读存储介质
CN109152041A (zh) * 2017-06-16 2019-01-04 华为技术有限公司 信息传输的方法、终端设备和网络设备
WO2019226760A1 (en) * 2018-05-24 2019-11-28 Google Llc Methods, systems, and media for synchronizing audio and video content on multiple media devices

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757659B1 (en) * 1998-11-16 2004-06-29 Victor Company Of Japan, Ltd. Audio signal processing apparatus
US8234395B2 (en) * 2003-07-28 2012-07-31 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US8379735B2 (en) * 2006-05-15 2013-02-19 Microsoft Corporation Automatic video glitch detection and audio-video synchronization assessment
CN101001485A (zh) * 2006-10-23 2007-07-18 中国传媒大学 一种有限声源多通道声场***及声场模拟方法
CN101043265B (zh) * 2007-04-27 2010-11-24 华为技术有限公司 一种实现多媒体广播和组播业务数据同步发送的方法
CN103561291A (zh) * 2013-10-31 2014-02-05 腾讯科技(武汉)有限公司 视频通道分配管理方法和相关设备及通信***
CN104378675B (zh) * 2014-12-08 2019-07-30 厦门雅迅网络股份有限公司 一种多通道音视频同步播放处理方法
CN106937137B (zh) * 2015-12-30 2020-07-14 惠州市伟乐科技股份有限公司 一种多通道数字音频编码音视频同步的方法
CN105847873B (zh) * 2016-05-16 2018-11-16 西安电子科技大学 面向监控应用的高清视频码流与数据复用***及方法
CN106412662B (zh) * 2016-09-20 2018-10-19 腾讯科技(深圳)有限公司 时间戳分配方法及装置
CN108965971B (zh) * 2018-07-27 2021-05-14 北京数码视讯科技股份有限公司 多路音频同步控制方法、控制装置及电子设备
KR102090070B1 (ko) * 2018-10-31 2020-03-17 카테노이드 주식회사 스트리밍 서버, 클라이언트 단말 및 이를 이용한 av 라이브 스트리밍 시스템
CN109729277B (zh) * 2018-11-19 2021-10-01 魔门塔(苏州)科技有限公司 多传感器采集时间戳同步装置
CN111447396A (zh) * 2020-03-06 2020-07-24 视联动力信息技术股份有限公司 一种音视频传输方法、装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005130388A (ja) * 2003-10-27 2005-05-19 Yamaha Corp オーディオ信号再生装置
CN1960228A (zh) * 2006-08-22 2007-05-09 中兴通讯股份有限公司 一种移动多媒体广播空中通道的复用方法
CN105306110A (zh) * 2015-09-18 2016-02-03 深圳市冠旭电子有限公司 一种实现音乐同步播放的方法及***
CN109152041A (zh) * 2017-06-16 2019-01-04 华为技术有限公司 信息传输的方法、终端设备和网络设备
CN108055566A (zh) * 2017-12-26 2018-05-18 郑州云海信息技术有限公司 音视频同步的方法、装置、设备及计算机可读存储介质
WO2019226760A1 (en) * 2018-05-24 2019-11-28 Google Llc Methods, systems, and media for synchronizing audio and video content on multiple media devices

Also Published As

Publication number Publication date
CN112218115A (zh) 2021-01-12

Similar Documents

Publication Publication Date Title
CN112218115B (zh) 流媒体音视频同步的控制方法、装置、计算机设备
US20200328984A1 (en) Method and apparatus for allocating resource
CN104539977A (zh) 直播预览方法及装置
US20230285854A1 (en) Live video-based interaction method and apparatus, device and storage medium
CN112055072A (zh) 云端音频输入方法、装置、云***、电子设备与存储介质
CN115328742B (zh) 容器信息监控方法、装置、存储介质及电子设备
CN110781149A (zh) 管理直播间信息的方法、装置、设备及存储介质
CN111818383B (zh) 视频数据的生成方法、***、装置、电子设备及存储介质
US9648086B2 (en) System, method, and computer program product for providing test logic to user devices
US10755707B2 (en) Selectively blacklisting audio to improve digital assistant behavior
US10432490B2 (en) Monitoring single content page application transitions
US20150002680A1 (en) System, method, and computer program product for receiving and executing test logic at user devices
CN109948082B (zh) 直播信息处理方法及装置、电子设备、存储介质
WO2014210542A2 (en) System, method, and computer program product for providing test logic to user devices
CN111198853A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
US11895203B2 (en) Methods and apparatus to collect media metrics on computing devices
CN109194971A (zh) 一种为多媒体文件的生成方法及装置
CN113840313B (zh) 移动终端的网络模式控制方法、装置和计算机设备
CN111031354B (zh) 一种多媒体播放方法、装置及存储介质
CN111726650B (zh) 视频直播方法及装置、计算机存储介质
CN111310175A (zh) 基于插件化的iOS应用安全监测与防护方法及装置
US10409773B2 (en) Method and device for cleaning up terminal resource and terminal
CN106454512A (zh) 播放器事件统计方法、装置、播放器及终端设备
CN117560417B (zh) 针对消息发送的队列控制方法、装置、电子设备与介质
CN114827674B (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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Control method, device, and computer equipment for streaming audio and video synchronization

Effective date of registration: 20230912

Granted publication date: 20220729

Pledgee: Guangxi Guangtou Zhanxin Investment Fund Partnership Enterprise (L.P.)

Pledgor: IFREECOMM TECHNOLOGY Co.,Ltd.

Registration number: Y2023980056247

PE01 Entry into force of the registration of the contract for pledge of patent right