CN103888813A - 一种音视频同步的实现方法及*** - Google Patents
一种音视频同步的实现方法及*** Download PDFInfo
- Publication number
- CN103888813A CN103888813A CN201210564355.4A CN201210564355A CN103888813A CN 103888813 A CN103888813 A CN 103888813A CN 201210564355 A CN201210564355 A CN 201210564355A CN 103888813 A CN103888813 A CN 103888813A
- Authority
- CN
- China
- Prior art keywords
- video
- clock
- audio
- diff
- delay
- 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.)
- Pending
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供一种音视频同步的实现方法及***,方法包括:步骤1,内存管理模块将传输的视频数据包和音频数据包存入内存;步骤2,解码模块提取视频数据包和音频数据包并对其进行解析处理,得到音频帧、当前音频播放时钟和视频帧、当前视频播放时钟,执行步骤3和步骤4;步骤3,音频播放模块根据当前音频播放时钟播放相应的音频帧;步骤4,依据ITU-R BT.1359-1标准获得第一阈值threshold1和第二阈值threshold2,然后时间控制模块差值Diff判断音视频是否同步,若Diff在threshold1与threshold2范围之内,则同步,否则为失同步,将当前音频播放时钟作为同步时钟,控制当前视频播放时钟速度同步到当前音频播放时钟上,执行步骤5;步骤5,视频播放模块根据同步后的视频播放时钟播放相应的视频帧。
Description
技术领域
本发明涉及多媒体技术领域,尤其涉及一种音视频同步的实现方法及***。
背景技术
音视频同步是同步采集的声音和视频图像信号在再现过程中保持同步的程度。
随着网络和高新技术的发展,音视频传输由同轴电缆发展到由网络传输,采集到的原始音视频数据需要压缩编码,经网络传输到接受端后进行实时播放或存储。在接收端无论是对实时视频还是存储的历史视频进行播放,都需要对压缩的音视频数据进行解码,获得原始音视频数据。若同步采集到的原始音视频数据独立编码、传输,存储,那么在接收再现端,就需要采用音视频同步技术来保证同步播放。
目前,比较常用的音视频同步技术有:
多路复用同步技术:将多个媒体流的数据多路复用到一个数据流或一个报文中。它简化了媒体流间的同步;不需要附加控制信道和同步化时钟。但是,浪费带宽资源,复用算法也比较复杂,不适合媒体流来源于不同节点的情况。
时间戳同步技术:将媒体数据按时间顺序作时间戳,相同时间戳数据同时播放。它不需要额外的同步信息,不改变原始数据流。但是,读写时间戳开销大。
同步信道技术:媒体在分离的信道传输,同步信息通过同步信号来单独传输。它的优点是能支持复杂的同步关系,可用于直连设备;不需要时钟同步。但是同步信息可能丢失。
基于反馈的同步技术:根据接收端失调检测信息,在发送端或接受端进行同步控制,虽然适用于网络环境,但是具有一定的滞后性,实时性差。
从技术上来说,解决音视频同步问题的最佳方案就是时间戳。通常的做法是首先选择一个参考时钟,在播放时,读取数据块上的时间戳,同时参考当前时钟上的时间来安排播放,如果数据块的开始时间大于当前参考时钟上的时间,则不急于播放该数据块,直到参考时钟达到数据块的开始时间;如果数据块的开始时间小于当前参考时钟上的时间,则“尽快”播放这块数据或者索性将这块数据“丢弃”,以使播放进度追上参考时钟。
发明内容
本发明的发明目的在于,提出一种音视频同步的实现方法及***,其将音频播放时钟作为同步时钟,控制视频播放速度同步到音频播放时钟上,保证音视频数据的流畅播放,使音视频同步无滞后,无延迟。
为实现上述目的,本发明提供一种音视频同步的实现方法。该方法包括:
步骤1,内存管理模块将传输的视频数据包和音频数据包存入内存;
步骤2,解码模块读取所述视频数据包和音频数据包后分别对其进行解析处理,得到音频帧、当前音频播放时钟和视频帧、当前视频播放时钟,执行步骤3和步骤4;
步骤3,音频播放模块根据所述当前音频播放时钟播放相应的音频帧;
步骤4,依据ITU-R BT.1359-1标准获得第一阈值threshold1和第二阈值threshold2,然后时间控制模块根据所述当前音频播放时钟和当前视频播放时钟的差值Diff判断音视频是否同步,若Diff在threshold1与threshold2范围之内,则音视频同步,否则为音视频失同步,将所述当前音频播放时钟作为同步时钟,控制当前视频播放时钟速度同步到当前音频播放时钟上,执行步骤5;
步骤5,视频播放模块根据同步后的视频播放时钟播放相应的视频帧。
当Diff>threshold2时,音频播放速度快于视频图像显示速度,进行以下处理:
如果Diff的绝对值小于播放当前一帧持续时间,则播放当前视频帧,继续读取音视频包,循环到计算Diff步骤;
如果Diff的绝对值大于播放下一帧视频的持续时间,则跳过此视频帧不播,继续读取视频包,获得下一帧视频播放时钟,根据所述当前音频播放时钟和所述下一帧视频播放时钟的差值判断音视频是否同步。
音频开始播放时,设置视频总延迟量并初始化视频总延迟量,当Diff<threshold1时,音频播放速度落后于视频图像显示速度,则需要延迟所述当前视频播放时钟使音视频同步。
延迟所述当前视频播放时钟为:
计算延迟差值delay_Diff,如果delay_Diff<threshold1,则增加一倍延迟后重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内;
如果delay_Diff>threshold2,则减少一半延迟时间后重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内;
如果threshold1<delay_Diff<threshold2,更新音频播放时钟后重复步骤4。
其中,第一阈值为-90ms,第二阈值为20ms,ms为单位毫秒,正值表示声音信号提前,负值表示声音信号迟后,两个阈值之间的范围为为不可察觉门限。
为实现上述目的,本发明还提供一种音视频同步的实现***,该***包括:
内存管理模块,用于将传输的视频数据包和音频数据包存入内存;
解码模块,用于提取所述视频数据包和音频数据包后分别对其进行解析处理,得到音频帧、当前音频播放时钟和视频帧、当前视频播放时钟,分别执行音频播放模块和时间控制模块;
音频播放模块,用于根据所述当前音频播放时钟播放相应的音频帧;
时间控制模块,用于依据ITU-R BT.1359-1标准获得第一阈值threshold1和第二阈值threshold2,然后根据所述当前音频播放时钟和当前视频播放时钟的差值Diff判断音视频是否同步,若Diff在第一阈值threshold1与第二阈值threshold2范围之内,则音视频同步,否则为音视频失同步,将所述当前音频播放时钟作为同步时钟,控制当前视频播放时钟速度同步到当前音频播放时钟上,执行视频播放模块;
视频播放模块,用于根据同步后的视频播放时钟播放相应的视频帧。
当Diff>threshold2时,音频播放速度快于视频图像显示速度,进行以下处理:
如果Diff的绝对值小于播放当前一帧持续时间,则播放当前视频帧,继续读取音视频包,循环到计算Diff步骤;
如果Diff的绝对值大于播放下一帧视频的持续时间,则跳过此视频帧不播,继续读取视频包,获得下一帧视频播放时钟,根据所述当前音频播放时钟和所述下一帧视频播放时钟的差值判断音视频是否同步。
音频开始播放时,设置视频总延迟量并初始化视频总延迟量,当Diff<threshold1时,音频播放速度落后于视频图像显示速度,则需要延迟所述当前视频播放时钟使音视频同步。
延迟所述当前视频播放时钟为:
计算延迟差值delay_Diff,如果delay_Diff<threshold1,则增加一倍延迟后重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内;
如果delay_Diff>threshold2,则减少一半延迟时间后重新计算delay_diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内;
如果threshold1<delay_Diff<threshold2,更新音频播放时钟后重复步骤4。
其中,第一阈值为-90ms,第二阈值为20ms,ms为单位毫秒,正值表示声音信号提前,负值表示声音信号迟后,两个阈值之间的范围为为不可察觉门限。
本发明的有益功效在于,针对音视频数据同时被采集,但编码和存储独立的情况,提出一种一种音视频同步的实现方法及***,其将音频播放时钟作为同步时钟,采用时间戳技术实现历史音视频同步播放。其使用FFMPEG对历史音视频文件分别进行解码,将解码后计算得到的音频播放时钟作为同步时钟,控制视频播放速度同步到音频播放时钟上,保证了音视频数据流畅播放,同步无滞后,无延迟。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1是本发明的音视频同步的实现方法流程图;
图2是本发明的音视频同步的实现***示意图;
图3是本发明的音视频同步的播放流程图。
具体实施方式
图1是本发明的音视频同步的实现方法流程图。如图1所示,该方法包括:
步骤1,内存管理模块将传输的视频数据包和音频数据包存入内存;
步骤2,解码模块提取所述视频数据包和音频数据包后分别对其进行解析处理,得到音频帧、当前音频播放时钟和视频帧、当前视频播放时钟,分别执行步骤3和步骤4;
步骤3,音频播放模块根据所述当前音频播放时钟播放相应的音频帧;
步骤4,依据ITU-R BT.1359-1标准获得第一阈值threshold1和第二阈值threshold2,然后时间控制模块根据所述当前音频播放时钟和当前视频播放时钟的差值Diff判断音视频是否同步,若Diff在threshold1与threshold2范围之内,则音视频同步,否则为音视频失同步,将所述当前音频播放时钟作为同步时钟,控制当前视频播放时钟速度同步到当前音频播放时钟上,执行步骤5;
步骤5,视频播放模块根据同步后的视频播放时钟播放相应的视频帧。
当Diff>threshold2时,音频播放速度快于视频图像显示速度,进行以下处理:
如果Diff的绝对值小于播放当前一帧持续时间,则播放当前视频帧,继续读取音视频包,循环到计算Diff步骤;
如果Diff的绝对值大于播放下一帧视频的持续时间,则跳过此视频帧不播,继续读取视频包,获得下一帧视频播放时钟,根据所述当前音频播放时钟和所述下一帧视频播放时钟的差值判断音视频是否同步。
音频开始播放时,设置视频总延迟量并初始化视频总延迟量,当Diff<threshold1时,音频播放速度落后于视频图像显示速度,则需要延迟所述当前视频播放时钟使音视频同步。
延迟所述当前视频播放时钟为:
计算延迟差值delay_Diff,如果delay_Diff<threshold1,则增加一倍延迟后重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内;
如果delay_Diff>threshold2,则减少一半延迟时间后重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内;
如果threshold1<delay_Diff<threshold2,更新音频播放时钟后重复步骤4。
其中,第一阈值为-90ms,第二阈值为20ms,ms为单位毫秒,正值表示声音信号提前,负值表示声音信号迟后,两个阈值之间的范围为为不可察觉门限。
现结合图3具体说明该方法的内容。图3是本发明的音视频同步的播放流程图。如图3所示:
内存管理模块:内存管理模块将传输来的媒体数据(实时或历史音频数据流与视频数据流)写到内存中,这些数据是由一系列包组成的。
解码模块:在解码模块中,内存中的音频包经解析后,使用开源解码库FFMPEG解码出音频帧和对应的音频显示时间PTS;同理,视频包经解析后,使用开源解码库FFMPEG解码出视频帧和对应的视频显示时间PTS。由于PTS是相对时间,为了将音频播放时钟与声卡播放时钟单位一致,将音频PTS换算成当前音频播放时钟audio_clock,同理,由视频显示时间PTS得到当前视频播放时钟video_clock。此外,由当前视频播放时钟以及当前视频包相关信息估算出下一帧视频播放时钟next_video_clock.
音频播放模块:将解码模块得到的当前音频帧放入声卡播放缓冲区,根据当前音频播放时钟audio_clock,声卡驱动器播放相应的音频帧。
接下来确定视频播放,视频播放依靠于当前音频播放时钟audio_video与当前视频播放时钟video_clock的同步。本发明根据对人类听觉、视觉觉察能力的研究成果设定了同步阈值threshold1,threshold2(依据ITU-R BT.1359-1标准建议:当声音落后视频90ms到超前视频20ms的范围内,人们几乎察觉不出音视频质量的变化,为不可察觉门限。设置threshold1=-90ms,threshold2=20ms,音视频同步用它们出现的时间差表示,单位为ms,声音信号提前为正,迟后为负。
当audio_clock与video_clock的差值Diff在threshold1与threshold2范围之内的,就认为基本同步,否则为失同步。当音视频同步时,将对应的视频帧送入到视频播放缓冲区中,利用DirectX播放当前视频帧,然后继续读取音频数据、视频数据,解码,更新当前audio_clock与video_clock,计算差值Diff,重复整个过程。
当音频播放时间audio_clock与视频播放时间video_clock之差值Diff落在threshold1与threshold2以外,说明音视频不同步。失同步有两种情况:
1、音频播放速度快于视频图像显示速度
当Diff>threshold2时,此时音频播放速度快于视频图像显示速度。如果Diff的绝对值小于播放当前一帧持续时间now_duration,播放当前视频帧,继续读取音视频包,更新音频播放时间、视频播放时间,循环到计算Diff步骤;如果Diff的绝对值大于播放下一帧视频的持续时间now_duration,跳过此视频帧不播,更新视频播放时钟即video_clock=next_video_clock,然后读取视频包,解码,获得next_video_clock,跳转到计算当前audio_clock与video_clock差值Diff的步骤,如图1所示。
2、音频播放速度落后于视频图像显示速度
音频开始播放时,设置视频总延迟量total_delay,初始化total_delay=0。当Diff<threshold1时,此时音频播放速度落后于视频图像显示速度。视频播放需要延迟,初步设置延迟时间为delay。
delay=last_duration=video_clock-last_video_clock。
设delay_Diff=audio_clock+total_delay+delay-video_clock。
如果delay_Diff<threshold1,说明delay时间较短,加倍延迟即delay=2*delay,重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内。
如果delay_Diff>threshold2,延迟时间较长,需缩短延迟时间为delay=delay/2,重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内。
如果threshold1<delay_Diff<threshold2,视频播放延迟delay时间后,更新音频播放时钟audio_clock,更新total_delay=total_delay+delay。重新返回到图1计算Diff步骤。
图2是本发明的音视频同步的实现***示意图。如图2所示,该***包括:
内存管理模块100,用于将传输的视频数据包和音频数据包存入内存;
解码模块200,用于提取所述视频数据包和音频数据包后分别对其进行解析处理,得到音频帧、当前音频播放时钟和视频帧、当前视频播放时钟,分别执行音频播放模块300和时间控制模块400;
音频播放模块300,用于根据所述当前音频播放时钟播放相应的音频帧;
时间控制模块400,用于依据ITU-R BT.1359-1标准获得第一阈值threshold1和第二阈值threshold2,然后根据所述当前音频播放时钟和当前视频播放时钟的差值Diff判断音视频是否同步,若Diff在第一阈值threshold1与第二阈值threshold2范围之内,则音视频同步,否则为音视频失同步,将所述当前音频播放时钟作为同步时钟,控制当前视频播放时钟速度同步到当前音频播放时钟上,执行视频播放模块500;
视频播放模块500,用于根据同步后的视频播放时钟播放相应的视频帧。
当Diff>threshold2时,音频播放速度快于视频图像显示速度,进行以下处理:
如果Diff的绝对值小于播放当前一帧持续时间,则播放当前视频帧,继续读取音视频包,循环到计算Diff步骤;
如果Diff的绝对值大于播放下一帧视频的持续时间,则跳过此视频帧不播,继续读取视频包,获得下一帧视频播放时钟,根据所述当前音频播放时钟和所述下一帧视频播放时钟的差值判断音视频是否同步。
音频开始播放时,设置视频总延迟量并初始化视频总延迟量,当Diff<threshold1时,音频播放速度落后于视频图像显示速度,则需要延迟所述当前视频播放时钟使音视频同步。
延迟所述当前视频播放时钟为:
计算延迟差值delay_Diff,如果delay_Diff<threshold1,则增加一倍延迟后重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内;
如果delay_Diff>threshold2,则减少一半延迟时间后重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内;
如果threshold1<delay Diff<threshold2,更新音频播放时钟后重复步骤4。
其中,第一阈值为-90ms,第二阈值为20ms,ms为单位毫秒,正值表示声音信号提前,负值表示声音信号迟后,两个阈值之间的范围为为不可察觉门限。
现结合图3具体说明该***的内容。图3是本发明的音视频同步的播放流程图。如图3所示:
内存管理模块:内存管理模块将传输来的媒体数据(实时或历史音频数据流与视频数据流)写到内存中,这些数据是由一系列包组成的。
解码模块:在解码模块中,内存中的音频包经解析后,使用开源解码库FFMPEG解码出音频帧和对应的音频显示时间PTS;同理,视频包经解析后,使用开源解码库FFMPEG解码出视频帧和对应的视频显示时间PTS。由于PTS是相对时间,为了将音频播放时钟与声卡播放时钟单位一致,将音频PTS换算成当前音频播放时钟audio_clock,同理,由视频显示时间PTS得到当前视频播放时钟video_clock。此外,由当前视频播放时钟以及当前视频包相关信息估算出下一帧视频播放时钟next_video_clock。
音频播放模块:将解码模块得到的当前音频帧放入声卡播放缓冲区,根据当前音频播放时钟audio_clock,声卡驱动器播放相应的音频帧。
接下来确定视频播放,视频播放依靠于当前音频播放时钟audio_video与当前视频播放时钟video_clock的同步。本发明根据对人类听觉、视觉觉察能力的研究成果设定了同步阈值threshold1,threshold2(依据ITU-R BT.1359-1标准建议:当声音落后视频90ms到超前视频20ms的范围内,人们几乎察觉不出音视频质量的变化,为不可察觉门限。设置threshold1=-90ms,threshold2=20ms,音视频同步用它们出现的时间差表示,单位为ms,声音信号提前为正,迟后为负。
当audio_clock与video_clock的差值Diff在threshold1与threshold2范围之内的,就认为基本同步,否则为失同步。当音视频同步时,将对应的视频帧送入到视频播放缓冲区中,利用DirectX播放当前视频帧,然后继续读取音频数据、视频数据,解码,更新当前audio_clock与video_clock,计算差值Diff,重复整个过程。
当音频播放时间audio_clock与视频播放时间video_clock之差值Diff落在threshold1与threshold2以外,说明音视频不同步。失同步有两种情况:
1、音频播放速度快于视频图像显示速度
当Diff>threshold2时,此时音频播放速度快于视频图像显示速度。如果Diff的绝对值小于播放当前一帧持续时间now_duration,播放当前视频帧,继续读取音视频包,更新音频播放时间、视频播放时间,循环到计算Diff步骤;如果Diff的绝对值大于播放下一帧视频的持续时间now_duration,跳过此视频帧不播,更新视频播放时钟即video_clock=next_video_clock,然后读取视频包,解码,获得next_video_clock,跳转到计算当前audio_clock与video_clock差值Diff的步骤,如图1所示。
2、音频播放速度落后于视频图像显示速度
音频开始播放时,设置视频总延迟量total_delay,初始化total_delay=0。当Diff<threshold1时,此时音频播放速度落后于视频图像显示速度。视频播放需要延迟,初步设置延迟时间为delay。
delay=last_duration=video_clock-last_video_clock。
设delay_Diff=audio_clock+total_delay+delay-video_clock。
如果delay_Diff<threshold1,说明delay时间较短,加倍延迟即delay=2*delay,重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内。
如果delay_Diff>threshold2,延迟时间较长,需缩短延迟时间为delay=delay/2,重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内。
如果threshold1<delay_Diff<threshold2,视频播放延迟delay时间后,更新音频播放时钟audio_clock,更新total_delay=total_delay+delay。重新返回到图1计算Diff步骤。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (10)
1.一种音视频同步的实现方法,其特征在于,包括:
步骤1,内存管理模块将传输的视频数据包和音频数据包存入内存;
步骤2,解码模块提取所述视频数据包和音频数据包后分别对其进行解析处理,得到音频帧、当前音频播放时钟和视频帧、当前视频播放时钟,分别执行步骤3和步骤4;
步骤3,音频播放模块根据所述当前音频播放时钟播放相应的音频帧;
步骤4,时间控制模块依据ITU-R BT.1359-1标准获得第一阈值threshold1和第二阈值threshold2,然后根据所述当前音频播放时钟和当前视频播放时钟的差值Diff判断音视频是否同步,若Diff在第一阈值threshold1与第二阈值threshold2范围之内,则音视频同步,否则为音视频失同步,将所述当前音频播放时钟作为同步时钟,控制当前视频播放时钟速度同步到当前音频播放时钟上,执行步骤5;
步骤5,视频播放模块根据同步后的视频播放时钟播放相应的视频帧。
2.如权利要求1所述的音视频同步的实现方法,其特征在于,当Diff>threshold2时,音频播放速度快于视频图像显示速度,进行以下处理:
如果Diff的绝对值小于播放当前一帧持续时间,则播放当前视频帧,继续读取音视频包,循环到计算Diff步骤;
如果Diff的绝对值大于播放下一帧视频的持续时间,则跳过此视频帧不播,继续读取视频包,获得下一帧视频播放时钟,根据所述当前音频播放时钟和所述下一帧视频播放时钟的差值判断音视频是否同步。
3.如权利要求1所述的音视频同步的实现方法,其特征在于,音频开始播放时,设置视频总延迟量并初始化视频总延迟量,当Diff<threshold1时,音频播放速度落后于视频图像显示速度,则需要延迟所述当前视频播放时钟使音视频同步。
4.如权利要求3所述的音视频同步的实现方法,其特征在于,延迟所述当前视频播放时钟为:
计算延迟差值delay_Diff,如果delay_Diff<threshold1,则增加一倍延迟后重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内;
如果delay_Diff>threshold2,则减少一半延迟时间后重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内;
如果threshold1<delay_Diff<threshold2,更新音频播放时钟后重复步骤4。
5.如权利要求1所述的音视频同步的实现方法,其特征在于,第一阈值为-90ms,第二阈值为20ms,ms为单位毫秒,正值表示声音信号提前,负值表示声音信号迟后,两个阈值之间的范围为为不可察觉门限。
6.一种音视频同步的实现***,其特征在于,包括:
内存管理模块,用于将传输的视频数据包和音频数据包存入内存;
解码模块,用于提取所述视频数据包和音频数据包后分别对其进行解析处理,得到音频帧、当前音频播放时钟和视频帧、当前视频播放时钟,分别执行音频播放模块和时间控制模块;
音频播放模块,用于根据所述当前音频播放时钟播放相应的音频帧;
时间控制模块,用于依据ITU-R BT.1359-1标准获得第一阈值threshold1和第二阈值threshold2,然后根据所述当前音频播放时钟和当前视频播放时钟的差值Diff判断音视频是否同步,若Diff在第一阈值threshold1与第二阈值threshold2范围之内,则音视频同步,否则为音视频失同步,将所述当前音频播放时钟作为同步时钟,控制当前视频播放时钟速度同步到当前音频播放时钟上,执行视频播放模块;
视频播放模块,用于根据同步后的视频播放时钟播放相应的视频帧。
7.如权利要求6所述的音视频同步的实现***,其特征在于,当Diff>threshold2时,音频播放速度快于视频图像显示速度,进行以下处理:
如果Diff的绝对值小于播放当前一帧持续时间,则播放当前视频帧,继续读取音视频包,循环到计算Diff步骤;
如果Diff的绝对值大于播放下一帧视频的持续时间,则跳过此视频帧不播,继续读取视频包,获得下一帧视频播放时钟,根据所述当前音频播放时钟和所述下一帧视频播放时钟的差值判断音视频是否同步。
8.如权利要求6所述的音视频同步的实现方法,其特征在于,音频开始播放时,设置视频总延迟量并初始化视频总延迟量,当Diff<threshold1时,音频播放速度落后于视频图像显示速度,则需要延迟所述当前视频播放时钟使音视频同步。
9.如权利要求8所述的音视频同步的实现***,其特征在于,延迟所述当前视频播放时钟为:
计算延迟差值delay_Diff,如果delay_Diff<threshold,则增加一倍延迟后重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内;
如果delay_Diff>threshold2,则减少一半延迟时间后重新计算delay_Diff,并与threshold1,threshold2进行比较,直到delay_Diff在threshold1与threshold2范围内;
如果threshold1<delay_Diff<threshold2,更新音频播放时钟后重复步骤4。
10.如权利要求6所述的音视频同步的实现***,其特征在于,第一阈值为-90ms,第二阈值为20ms,ms为单位毫秒,正值表示声音信号提前,负值表示声音信号迟后,两个阈值之间的范围为为不可察觉门限。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210564355.4A CN103888813A (zh) | 2012-12-21 | 2012-12-21 | 一种音视频同步的实现方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210564355.4A CN103888813A (zh) | 2012-12-21 | 2012-12-21 | 一种音视频同步的实现方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103888813A true CN103888813A (zh) | 2014-06-25 |
Family
ID=50957501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210564355.4A Pending CN103888813A (zh) | 2012-12-21 | 2012-12-21 | 一种音视频同步的实现方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103888813A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105245976A (zh) * | 2015-09-30 | 2016-01-13 | 合一网络技术(北京)有限公司 | 音频和视频同步播放的方法及*** |
CN105898505A (zh) * | 2016-04-27 | 2016-08-24 | 北京小米移动软件有限公司 | 视频即时通讯中测试音视频同步的方法、装置及*** |
CN106488288A (zh) * | 2015-08-27 | 2017-03-08 | 宏达国际电子股份有限公司 | 虚拟现实***及其音频/视频同步方法 |
CN107124641A (zh) * | 2017-06-02 | 2017-09-01 | 广东暨通信息发展有限公司 | 一种音视频同步播放的控制方法 |
CN107509100A (zh) * | 2017-09-15 | 2017-12-22 | 深圳国微技术有限公司 | 音视频同步方法、***、计算机装置及计算机可读存储介质 |
CN107613356A (zh) * | 2017-08-30 | 2018-01-19 | 瑞声科技(新加坡)有限公司 | 媒体和震动同步播放方法及装置、电子设备以及存储介质 |
CN108055566A (zh) * | 2017-12-26 | 2018-05-18 | 郑州云海信息技术有限公司 | 音视频同步的方法、装置、设备及计算机可读存储介质 |
CN108632645A (zh) * | 2017-03-17 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 信息呈现方法和装置 |
CN108966028A (zh) * | 2018-08-17 | 2018-12-07 | 上海悠络客电子科技股份有限公司 | 一种基于网络状况动态调节播放速度的防抖动方法 |
CN109194975A (zh) * | 2018-11-02 | 2019-01-11 | 深圳市云威物联科技有限公司 | 音视频直播追流方法及装置 |
CN109275008A (zh) * | 2018-09-17 | 2019-01-25 | 青岛海信电器股份有限公司 | 一种音视频同步的方法和装置 |
CN109348247A (zh) * | 2018-11-23 | 2019-02-15 | 广州酷狗计算机科技有限公司 | 确定音视频播放时间戳的方法、装置及存储介质 |
CN109828742A (zh) * | 2019-02-01 | 2019-05-31 | 珠海全志科技股份有限公司 | 音频多路同步输出方法、计算机装置及计算机可读存储介质 |
CN112291607A (zh) * | 2020-10-29 | 2021-01-29 | 成都极米科技股份有限公司 | 一种视音频数据同步输出方法及其*** |
CN113055711A (zh) * | 2021-02-22 | 2021-06-29 | 迅雷计算机(深圳)有限公司 | 一种音视频同步检测方法及其检测*** |
US11146611B2 (en) | 2017-03-23 | 2021-10-12 | Huawei Technologies Co., Ltd. | Lip synchronization of audio and video signals for broadcast transmission |
CN114710687A (zh) * | 2022-03-22 | 2022-07-05 | 阿里巴巴(中国)有限公司 | 音视频同步方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010021966A1 (en) * | 2008-08-21 | 2010-02-25 | Dolby Laboratories Licensing Corporation | Feature optimization and reliability estimation for audio and video signature generation and detection |
CN101778269A (zh) * | 2009-01-14 | 2010-07-14 | 扬智电子(上海)有限公司 | 机顶盒的音视频帧的同步方法 |
CN102421035A (zh) * | 2011-12-31 | 2012-04-18 | 青岛海信宽带多媒体技术有限公司 | 数字电视音视频同步的实现方法及装置 |
-
2012
- 2012-12-21 CN CN201210564355.4A patent/CN103888813A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010021966A1 (en) * | 2008-08-21 | 2010-02-25 | Dolby Laboratories Licensing Corporation | Feature optimization and reliability estimation for audio and video signature generation and detection |
CN101778269A (zh) * | 2009-01-14 | 2010-07-14 | 扬智电子(上海)有限公司 | 机顶盒的音视频帧的同步方法 |
CN102421035A (zh) * | 2011-12-31 | 2012-04-18 | 青岛海信宽带多媒体技术有限公司 | 数字电视音视频同步的实现方法及装置 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106488288A (zh) * | 2015-08-27 | 2017-03-08 | 宏达国际电子股份有限公司 | 虚拟现实***及其音频/视频同步方法 |
CN106488288B (zh) * | 2015-08-27 | 2019-08-06 | 宏达国际电子股份有限公司 | 虚拟现实***及其音频/视频同步方法 |
CN105245976B (zh) * | 2015-09-30 | 2016-11-23 | 合一网络技术(北京)有限公司 | 音频和视频同步播放的方法及*** |
CN105245976A (zh) * | 2015-09-30 | 2016-01-13 | 合一网络技术(北京)有限公司 | 音频和视频同步播放的方法及*** |
CN105898505A (zh) * | 2016-04-27 | 2016-08-24 | 北京小米移动软件有限公司 | 视频即时通讯中测试音视频同步的方法、装置及*** |
CN105898505B (zh) * | 2016-04-27 | 2019-02-19 | 北京小米移动软件有限公司 | 视频即时通讯中测试音视频同步的方法、装置及*** |
CN108632645A (zh) * | 2017-03-17 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 信息呈现方法和装置 |
US11146611B2 (en) | 2017-03-23 | 2021-10-12 | Huawei Technologies Co., Ltd. | Lip synchronization of audio and video signals for broadcast transmission |
CN107124641A (zh) * | 2017-06-02 | 2017-09-01 | 广东暨通信息发展有限公司 | 一种音视频同步播放的控制方法 |
CN107613356A (zh) * | 2017-08-30 | 2018-01-19 | 瑞声科技(新加坡)有限公司 | 媒体和震动同步播放方法及装置、电子设备以及存储介质 |
CN107509100A (zh) * | 2017-09-15 | 2017-12-22 | 深圳国微技术有限公司 | 音视频同步方法、***、计算机装置及计算机可读存储介质 |
CN108055566A (zh) * | 2017-12-26 | 2018-05-18 | 郑州云海信息技术有限公司 | 音视频同步的方法、装置、设备及计算机可读存储介质 |
CN108966028A (zh) * | 2018-08-17 | 2018-12-07 | 上海悠络客电子科技股份有限公司 | 一种基于网络状况动态调节播放速度的防抖动方法 |
CN108966028B (zh) * | 2018-08-17 | 2021-04-30 | 上海悠络客电子科技股份有限公司 | 一种基于网络状况动态调节播放速度的防抖动方法 |
CN109275008A (zh) * | 2018-09-17 | 2019-01-25 | 青岛海信电器股份有限公司 | 一种音视频同步的方法和装置 |
CN109194975B (zh) * | 2018-11-02 | 2021-04-20 | 深圳市云威物联科技有限公司 | 音视频直播追流方法及装置 |
CN109194975A (zh) * | 2018-11-02 | 2019-01-11 | 深圳市云威物联科技有限公司 | 音视频直播追流方法及装置 |
CN109348247B (zh) * | 2018-11-23 | 2021-03-30 | 广州酷狗计算机科技有限公司 | 确定音视频播放时间戳的方法、装置及存储介质 |
CN109348247A (zh) * | 2018-11-23 | 2019-02-15 | 广州酷狗计算机科技有限公司 | 确定音视频播放时间戳的方法、装置及存储介质 |
CN109828742A (zh) * | 2019-02-01 | 2019-05-31 | 珠海全志科技股份有限公司 | 音频多路同步输出方法、计算机装置及计算机可读存储介质 |
CN109828742B (zh) * | 2019-02-01 | 2022-02-18 | 珠海全志科技股份有限公司 | 音频多路同步输出方法、计算机装置及计算机可读存储介质 |
CN112291607A (zh) * | 2020-10-29 | 2021-01-29 | 成都极米科技股份有限公司 | 一种视音频数据同步输出方法及其*** |
CN113055711A (zh) * | 2021-02-22 | 2021-06-29 | 迅雷计算机(深圳)有限公司 | 一种音视频同步检测方法及其检测*** |
CN114710687A (zh) * | 2022-03-22 | 2022-07-05 | 阿里巴巴(中国)有限公司 | 音视频同步方法、装置、设备及存储介质 |
CN114710687B (zh) * | 2022-03-22 | 2024-03-19 | 阿里巴巴(中国)有限公司 | 音视频同步方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103888813A (zh) | 一种音视频同步的实现方法及*** | |
CN109168078B (zh) | 一种视频清晰度切换方法及装置 | |
CN103167320B (zh) | 音视频同步方法、***及手机直播客户端 | |
CN101303880B (zh) | 录制、播放音视频文件的方法及装置 | |
CN101076121B (zh) | 流生成装置、成像装置、数据处理装置和流生成方法 | |
CN106612452B (zh) | 机顶盒音视频同步的方法及装置 | |
CN107113462A (zh) | 发送方法、接收方法、发送装置以及接收装置 | |
CN101917613B (zh) | 一种流媒体采集编码服务*** | |
US20090116814A1 (en) | Reproducer, portable telephone, and reproducing method | |
CN104618786A (zh) | 音视频同步方法和装置 | |
CN107431845A (zh) | 发送方法、接收方法、发送装置以及接收装置 | |
CN101710997A (zh) | 基于mpeg-2***实现视、音频同步的方法及*** | |
CN102640511A (zh) | 视频信息再现方法和***、以及视频信息内容 | |
KR20030078354A (ko) | 디지털 데이터 방송을 위한 동기화 데이터 삽입 장치 및그 방법 | |
CN101902649A (zh) | 一种基于h.264标准的音视频同步控制方法 | |
CN103888815A (zh) | 一种音视频流实时分离处理及同步的方法及其*** | |
CN108141636A (zh) | 接收装置以及接收方法 | |
CN109194974B (zh) | 用于网络视频直播的媒体低延迟通信方法与*** | |
CN106605409A (zh) | 发送装置、接收装置、发送方法以及接收方法 | |
CN104780422A (zh) | 流媒体播放方法及流媒体播放器 | |
CN103718563A (zh) | 接收装置及其接收方法 | |
CN102752669A (zh) | 多通道实时流媒体文件的传送处理方法与***、接收装置 | |
CN101483782B (zh) | 数字广播接收装置以及数字广播接收方法 | |
CN107566889A (zh) | 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质 | |
CN106576188A (zh) | 发送方法、接收方法、发送装置以及接收装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140625 |
|
WD01 | Invention patent application deemed withdrawn after publication |