CN104125493A - 影音同步***及方法 - Google Patents
影音同步***及方法 Download PDFInfo
- Publication number
- CN104125493A CN104125493A CN201310145089.6A CN201310145089A CN104125493A CN 104125493 A CN104125493 A CN 104125493A CN 201310145089 A CN201310145089 A CN 201310145089A CN 104125493 A CN104125493 A CN 104125493A
- Authority
- CN
- China
- Prior art keywords
- video
- audio
- package
- decoded
- 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.)
- Pending
Links
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一种影音同步***及方法,该***用于:将解码后的视频资料储存至第一缓冲区;当该视频封包的时间戳记符合预设要求时,将第一缓冲区的视频资料输出至显示设备上;当进行视频解码的同时,将解码后的音频资料储存至第二缓冲区,并将音频封包的时间戳记传递给视频封包;将第二缓冲区中解码后的音频资料移至指定队列,并每隔预设时间,从指定队列中读取解码后的音频资料,将解码后的音频资料传送至第三缓冲区;从第三缓冲区中依次读取解码后的音频资料,将读取的音频资料输出至显示设备上。利用本发明可以同步音频资料与视频资料。
Description
技术领域
本发明涉及一种编码***及方法,尤其涉及一种影音同步***及方法。
背景技术
一般来说,影像(视频封包)与声音(音频封包)的同步是藉由数据段所带的时间戳记(如多媒体时间,multimedia time,简称MM Time)来进行,影像与声音共同参考同一个MM Time,音频封包负责更新MM Time,而程序则依照影像的MM Time来决定是否立即呈现画面、稍后呈现、或者丢弃该张已过期的画面。
许多以网络为传输的多媒体影音应用(如视讯会议、网络视讯电话、远程桌面影音播放)为了减少频宽的耗损,影像部分会采用压缩技术如H.264,然而由于先天上的限制,压缩端(encode,用于传送bitstream)必须将影像数据(slice data)先暂时存在缓冲区(buffer),以致无法立即通过网络输出至译码端(decode,用于接收bitstream),而译码端在译码时亦需等到该影像数据已无需被参考或使用时才会将该画面(frame)由缓冲区输出,造成画面与声音不同步的情况。
若此时仍使用音频封包去更新MM Time,那么该张画面有很大的机率是会被认为是过期而丢掉(frame drop),而frame drop情况愈严重将导致影音播放就像投影片效果。
发明内容
鉴于以上内容,有必要提供一种影音同步***及方法,其可使用一个队列当作音频封包的缓冲区,同步视频封包与音频封包的多媒体时间(Multimedia time),以达到视频与音频同步的目的。
一种影音同步***,应用于电子装置,该***包括:视频解码模块,用于对接收到的视频封包进行解码,并将解码后的视频资料储存至第一缓冲区;所述视频解码模块,还用于从第一缓冲区中依次读取解码后的视频资料;视频输出模块,用于当该视频封包的时间戳记符合预设要求时,将读取的视频资料输出至电子装置的显示设备上;音频解码模块,用于当进行视频解码的同时,对接收到的音频封包进行解码,将解码后的音频资料储存至第二缓冲区,并将音频封包的时间戳记传递给视频封包;生成模块,用于从第二缓冲区中读取解码后的音频资料,将解码后的音频资料移至指定队列,并每隔预设时间,生成一个消费模块;消费模块,用于从该指定队列中读取解码后的音频资料,将解码后的音频资料传送至第三缓冲区;音频输出模块,用于从第三缓冲区中依次读取解码后的音频资料,将读取的音频资料输出至显示设备上。
一种影音同步方法,应用于电子装置,该方法包括:视频解码步骤一,用于对接收到的视频封包进行解码,并将解码后的视频资料储存至第一缓冲区;视频解码步骤二,从第一缓冲区中依次读取解码后的视频资料;视频输出步骤,当该视频封包的时间戳记符合预设要求时,将读取的视频资料输出至电子装置的显示设备上;音频解码步骤,当进行视频解码的同时,对接收到的音频封包进行解码,将解码后的音频资料储存至第二缓冲区,并将音频封包的时间戳记传递给视频封包;生成步骤,从第二缓冲区中读取解码后的音频资料,将解码后的音频资料移至指定队列,并每隔预设时间,生成一个消费步骤;消费步骤,从该指定队列中读取解码后的音频资料,将解码后的音频资料传送至第三缓冲区;音频输出步骤,从第三缓冲区中依次读取解码后的音频资料,将读取的音频资料输出至显示设备上。
相较于现有技术,所述的影音同步***及方法,其可使用一个队列当作音频封包的缓冲区,同步视频封包与音频封包的多媒体时间(Multimedia time),以达到视频与音频同步的目的,且无需更改服务器端(即压缩端)的程序代码。
附图说明
图1是本发明影音同步***的运行环境示意图。
图2是本发明影音同步***的功能模块图。
图3是本发明影音同步方法的流程图。
图4是图3的另外一种描述方式示意图。
主要元件符号说明
电子装置 | 2 |
显示设备 | 20 |
输入设备 | 22 |
存储器 | 23 |
影音同步*** | 24 |
处理器 | 25 |
视频解码模块 | 240 |
音频解码模块 | 241 |
生成模块 | 242 |
消费模块 | 243 |
视频输出模块 | 244 |
音频输出模块 | 245 |
具体实施方式
如图1所示,是本发明影音同步***的运行环境示意图。该影音同步***24运行于电子装置2中。该电子装置2还包括通过数据总线相连的输入设备22、存储器23和处理器25。所述电子装置2可以是电脑、手机、PDA(Personal Digital Assistant,个人数字助理)等。
所述存储器23用于存储所述影音同步***24的程序代码和影像等资料。所述输入设备22用于输入用户设置的各种数据,例如,键盘、鼠标等。在一个特殊实施例中,所述电子装置2可包括和数据总线相连的显示设备20,所述显示设备20用于显示所述影像等资料,该显示设备20可以是电脑的液晶显示屏、手机的触摸屏等。
在本实施例中,所述影音同步***24可以被分割成一个或多个模块,所述一个或多个模块被存储在所述存储器23中并被配置成由一个或多个处理器(本实施例为一个处理器25)执行,以完成本发明。例如,参阅图2所示,所述影音同步***24被分割成视频解码模块240、音频解码模块241、生成模块242、消费模块243、视频输出模块244和音频输出模块245。本发明所称的模块是完成一特定功能的程序段,比程序更适合于描述软件在电子装置2中的执行过程。以下将结合图3和图4说明各模块的具体功能。
如图3所示,是本发明影音同步方法的流程图。
在以下描述中,视频解码步骤S10-S13与音频解码步骤S20-S23同步执行。当使用者在虚拟机器上播放一部影片或使用影音软件时,服务器端会与客户端(如电子装置2)建立一个视频串流通道(VideoStream Channel)与一个音频串流通道(Audio Stream Channel),用来传送视频封包(即影像封包)和音频封包(声音封包)。电子装置2将持续经由该两个通道接收视频封包与音频封包。
步骤S10,视频解码模块240通过视频串流通道从服务器端接收视频封包(Video packet)。
步骤S11,视频解码模块240解码该视频封包,并将解码后的视频资料(即位元资料,raw data)储存至第一缓冲区,如图4中的Frame缓冲区。在本实施例中,视频解码模块240根据该视频封包的编码算法,采用对应的解码算法对该视频封包进行解码。例如,视频封包采用H.264技术进行编码,则视频解码模块240利用H.264解码器对该视频封包进行解码。
在其它实施例中,还可以进一步包括:视频解码模块240根据电子装置2的操作***类型,对该解码后的视频资料进行色域转换。例如,假设客户端(如电子装置2)的操作***为Windows,在Windows上显示的色域是RGBA(或RGB32、RGB系列),但在服务器端将影像编码(如H.264)是采用的是YUV色域(如YUV420、YUV440、YUV444),所以视频解码模块240一开始解码出来的画面(frame)是YUV色域,然后视频解码模块240会再将解码后的视频资料转成RGB色域,使得解码后的视频资料能够以最佳方式显示于客户端。
步骤S12,视频解码模块240从第一缓冲区中依次读取解码后的视频资料,例如,读取一帧影像画面。
步骤S13,视频解码模块240判断该视频封包的时间戳记是否符合预设要求。本实施例中,该时间戳记以多媒体时间(Multimediatime,MM Time)为例进行说明,该视频封包的多媒体时间MM Time从音频封包中获取。
如果该视频封包的MM Time与电子装置2的当前时间一致(如相等),则视频解码模块240判定该视频封包的时间戳记符合预设要求,执行步骤S24,视频输出模块244将读取的视频资料输出至显示设备20上。所述电子装置的当前时间为电子装置的操作***(Operating system)记录的当前时间。
如果该视频封包的MM Time与电子装置2的当前时间不一致,则视频解码模块240判定该视频封包的时间戳记不符合预设要求,流程返回步骤S12,视频解码模块240读取下一帧影像画面。
步骤S20,在视频解码模块240接收到视频封包并进行解码的同时,音频解码模块241通过音频串流通道从服务器端接收音频封包(Audio packet)。
步骤S21,音频解码模块241解码该音频封包,并将解码后的音频资料(即位元资料,raw data)储存至第二缓冲区,如图4中的PCM(Pulse Code Modulation,脉冲编码调制)缓冲区。同时,音频解码模块241将音频封包的时间戳记(如MM Time)传递给视频封包,视频封包参照音频封包的MM Time进行同步(参阅步骤S13)。
在本实施例中,音频解码模块241根据该音频封包的编码算法,采用对应的解码算法对该音频封包进行解码。例如,音频封包采用PCM编码技术进行编码,则音频解码模块241利用PCM解码器对该音频封包进行解码。
步骤S22,生成模块242从第二缓冲区中读取解码后的音频资料,将解码后的音频资料移至一个指定队列,如图4中的PCM Ring。在本实施例中,生成模块242为一个线程,例如Producer thread。
步骤S23,生成模块242每隔预设时间,生成一个消费模块243。然后,消费模块243从指定队列中读取解码后的音频资料,将解码后的音频资料传送至第三缓冲区,如图4中的Wave Ring。在本实施例中,消费模块243为一个线程,例如Consumer thread,该消费模块243在将解码后的音频资料传送至第三缓冲区后会自行结束。
在本实施例中,所述预设时间为第一个解码出的音频资料与第一张解码出的视频资料的时间差。也就是说,在本发明中,解码后的音频资料并不会马上传送至第三缓冲区进行输出,而是将解码后的音频资料先存放至一个指定队列,等到视频封包解码出第一张画面后,生成模块242才开始生成一个消费模块243来消费该指定队列中的数据,从而使声音和画面达到同步。
步骤S24,音频输出模块245从第三缓冲区中依次读取解码后的音频资料,将读取的音频资料输出至显示设备20上。
本发明可以应用于远端桌面、视频会议及网络视频电话等,以远端桌面应用为例,可以采取如下步骤:
(1)于电子装置2中安装客户端程序并联机至远端桌面。
(2)选取远端桌面上的影音播放软件或具多媒体播放功能的应用程序,其中,影像部分采用H.264编码。
(3)客户端程序同步播放影像资料和声音资料。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种影音同步***,应用于电子装置,其特征在于,该***包括:
视频解码模块,用于对接收到的视频封包进行解码,并将解码后的视频资料储存至第一缓冲区;
所述视频解码模块,还用于从第一缓冲区中依次读取解码后的视频资料;
视频输出模块,用于当该视频封包的时间戳记符合预设要求时,将读取的视频资料输出至电子装置的显示设备上;
音频解码模块,用于当进行视频解码的同时,对接收到的音频封包进行解码,将解码后的音频资料储存至第二缓冲区,并将音频封包的时间戳记传递给视频封包;
生成模块,用于从第二缓冲区中读取解码后的音频资料,将解码后的音频资料移至指定队列,并每隔预设时间,生成一个消费模块;
消费模块,用于从该指定队列中读取解码后的音频资料,将解码后的音频资料传送至第三缓冲区;及
音频输出模块,用于从第三缓冲区中依次读取解码后的音频资料,将读取的音频资料输出至显示设备上。
2.如权利要求1所述的影音同步***,其特征在于,所述视频封包通过视频串流通道从服务器端接收,所述音频封包通过音频串流通道从服务器端接收。
3.如权利要求1所述的影音同步***,其特征在于,视频解码模块还用于,根据电子装置的操作***类型,对该解码后的视频资料进行色域转换。
4.如权利要求1所述的影音同步***,其特征在于,所述视频解码模块还用于,如果该视频封包的时间戳记与电子装置的当前时间一致,则判定该视频封包的时间戳记符合预设要求。
5.如权利要求1所述的影音同步***,其特征在于,所述预设时间为第一个解码出的音频资料与第一个解码出的视频资料的时间差。
6.一种影音同步方法,应用于电子装置,其特征在于,该方法包括:
视频解码步骤一,用于对接收到的视频封包进行解码,并将解码后的视频资料储存至第一缓冲区;
视频解码步骤二,从第一缓冲区中依次读取解码后的视频资料;
视频输出步骤,当该视频封包的时间戳记符合预设要求时,将读取的视频资料输出至电子装置的显示设备上;
音频解码步骤,当进行视频解码的同时,对接收到的音频封包进行解码,将解码后的音频资料储存至第二缓冲区,并将音频封包的时间戳记传递给视频封包;
生成步骤,从第二缓冲区中读取解码后的音频资料,将解码后的音频资料移至指定队列,并每隔预设时间,生成一个消费步骤;
消费步骤,从该指定队列中读取解码后的音频资料,将解码后的音频资料传送至第三缓冲区;及
音频输出步骤,从第三缓冲区中依次读取解码后的音频资料,将读取的音频资料输出至显示设备上。
7.如权利要求6所述的影音同步方法,其特征在于,所述视频封包通过视频串流通道从服务器端接收,所述音频封包通过音频串流通道从服务器端接收。
8.如权利要求6所述的影音同步方法,其特征在于,所述视频解码步骤一还包括:
根据电子装置的操作***类型,对该解码后的视频资料进行色域转换。
9.如权利要求6所述的影音同步方法,其特征在于,所述视频解码步骤二还包括:
如果该视频封包的时间戳记与电子装置的当前时间一致,则判定该视频封包的时间戳记符合预设要求。
10.如权利要求6所述的影音同步方法,其特征在于,所述预设时间为第一个解码出的音频资料与第一个解码出的视频资料的时间差。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310145089.6A CN104125493A (zh) | 2013-04-24 | 2013-04-24 | 影音同步***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310145089.6A CN104125493A (zh) | 2013-04-24 | 2013-04-24 | 影音同步***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104125493A true CN104125493A (zh) | 2014-10-29 |
Family
ID=51770736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310145089.6A Pending CN104125493A (zh) | 2013-04-24 | 2013-04-24 | 影音同步***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104125493A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107959821A (zh) * | 2017-11-27 | 2018-04-24 | 安徽威斯贝尔智能科技有限公司 | 一种基于云技术的会议可视对讲*** |
CN108124183A (zh) * | 2016-11-29 | 2018-06-05 | 达升企业股份有限公司 | 以同步获取影音以进行一对多影音串流的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030235407A1 (en) * | 2002-06-21 | 2003-12-25 | Koninklijke Philips Electronics N.V. | System and method for queuing and presenting audio messages |
CN1838771A (zh) * | 2005-03-22 | 2006-09-27 | 联发科技股份有限公司 | 串流格式转换的***、方法及数字电视记录装置 |
CN1901656A (zh) * | 2005-07-19 | 2007-01-24 | 日本电气视象技术株式会社 | 视频和音频重放设备及方法、输出时刻改变设备及方法 |
CN101808202A (zh) * | 2009-02-18 | 2010-08-18 | 联想(北京)有限公司 | 实现影音文件中声音与字幕同步的方法、设备和计算机 |
CN101873498A (zh) * | 2010-06-22 | 2010-10-27 | 深圳市融创天下科技发展有限公司 | 一种视频解码方法、装置及视音频播放*** |
CN103024517A (zh) * | 2012-12-17 | 2013-04-03 | 四川九洲电器集团有限责任公司 | 一种基于并行处理的流媒体音视频同步播放方法 |
-
2013
- 2013-04-24 CN CN201310145089.6A patent/CN104125493A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030235407A1 (en) * | 2002-06-21 | 2003-12-25 | Koninklijke Philips Electronics N.V. | System and method for queuing and presenting audio messages |
CN1838771A (zh) * | 2005-03-22 | 2006-09-27 | 联发科技股份有限公司 | 串流格式转换的***、方法及数字电视记录装置 |
CN1901656A (zh) * | 2005-07-19 | 2007-01-24 | 日本电气视象技术株式会社 | 视频和音频重放设备及方法、输出时刻改变设备及方法 |
CN101808202A (zh) * | 2009-02-18 | 2010-08-18 | 联想(北京)有限公司 | 实现影音文件中声音与字幕同步的方法、设备和计算机 |
CN101873498A (zh) * | 2010-06-22 | 2010-10-27 | 深圳市融创天下科技发展有限公司 | 一种视频解码方法、装置及视音频播放*** |
CN103024517A (zh) * | 2012-12-17 | 2013-04-03 | 四川九洲电器集团有限责任公司 | 一种基于并行处理的流媒体音视频同步播放方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108124183A (zh) * | 2016-11-29 | 2018-06-05 | 达升企业股份有限公司 | 以同步获取影音以进行一对多影音串流的方法 |
CN107959821A (zh) * | 2017-11-27 | 2018-04-24 | 安徽威斯贝尔智能科技有限公司 | 一种基于云技术的会议可视对讲*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9532099B2 (en) | Distributed media stream synchronization control | |
US20040237122A1 (en) | Method and apparatus for processing a data series including processing priority data | |
JP2019533347A (ja) | 映像符号化方法、映像復号方法、および端末 | |
CN102271280A (zh) | 一种数字音视频变速播放的方法和装置 | |
KR20160139020A (ko) | Mmt 및 dash를 이용한 브로드캐스트 및 브로드밴드 하이브리드 서비스 | |
CN107223334B (zh) | 用于将mmtp流转换为mpeg-2ts的方法和装置 | |
CN102143382A (zh) | 用于提供终端中的广播流的暂停功能的装置和方法 | |
CN107079192B (zh) | 使用压缩视频流的动态屏幕上显示 | |
CN102802039B (zh) | 多路视频混合解码输出方法及装置 | |
US8199833B2 (en) | Time shift and tonal adjustment to support video quality adaptation and lost frames | |
CN103475927B (zh) | 在线视频实时变速播放方法及*** | |
CN102724551A (zh) | 一种视频编码***和方法 | |
JP6621827B2 (ja) | 無線リンク状態に基づくビデオ復号化待ち時間調整、並びにビデオ復号化誤りの隠蔽のための、古いパケットのリプレイ | |
CN101809965A (zh) | 将接收的流与发送至另外装置的流同步的通信技术 | |
WO2017048463A1 (en) | System and method for controlling memory frequency using feed-forward compression statistics | |
US20130055326A1 (en) | Techniques for dynamic switching between coded bitstreams | |
RU2427043C1 (ru) | Система и способ обеспечения синхронизации для адаптивной многоскоростной широкополосной прерываемой передачи | |
CN107077313B (zh) | 用于非媒体内容的远程显示的改进延迟和效率 | |
CN113490029A (zh) | 视频播放方法、装置、设备及存储介质 | |
CN103475900A (zh) | 手机电视业务视频帧的封装方法、装置及前端*** | |
US20050244066A1 (en) | Method for video data status determination and data transmission system | |
CN103024441A (zh) | 一种移动终端播放电视节目的方法 | |
CN104125493A (zh) | 影音同步***及方法 | |
CN102256128B (zh) | 同步解码方法及其装置 | |
KR20050021812A (ko) | 이동통신 단말기에서 출력 버퍼링을 이용한 멀티미디어재생 장치 및 그 제어 방법 |
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: 20141029 |
|
WD01 | Invention patent application deemed withdrawn after publication |