[go: up one dir, main page]

CN111327923B - 一种音频流切换方法及装置 - Google Patents

一种音频流切换方法及装置 Download PDF

Info

Publication number
CN111327923B
CN111327923B CN201811526743.7A CN201811526743A CN111327923B CN 111327923 B CN111327923 B CN 111327923B CN 201811526743 A CN201811526743 A CN 201811526743A CN 111327923 B CN111327923 B CN 111327923B
Authority
CN
China
Prior art keywords
audio stream
timestamp
packet
sampling rate
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
CN201811526743.7A
Other languages
English (en)
Other versions
CN111327923A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201811526743.7A priority Critical patent/CN111327923B/zh
Priority to PCT/CN2019/123728 priority patent/WO2020119605A1/zh
Priority to JP2021533722A priority patent/JP7284266B2/ja
Priority to KR1020217019455A priority patent/KR102519514B1/ko
Priority to EP19897159.0A priority patent/EP3879836B1/en
Publication of CN111327923A publication Critical patent/CN111327923A/zh
Priority to US17/345,689 priority patent/US11995375B2/en
Application granted granted Critical
Publication of CN111327923B publication Critical patent/CN111327923B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • 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/233Processing of audio elementary streams
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • 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
    • 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/4394Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
    • 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/268Signal distribution or switching

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请公开了一种音频流切换方法及装置,用以解决现有技术中存在效率低、复杂度高的问题。切换设备在接收切换指令后,切换设备确定切入流和切出流的同步关系,根据同步关系和切入流中报文的时间戳确定切入流的切换点参数值,以及根据同步关系和切出流中报文的时间戳确定切出流的切换点时间戳(或者切换点的序列号);进而,切换设备将切出流中参数值大于切出流的切换点参数值的报文切换为切入流中参数值大于切入流的切换点参数值的报文,不需要解析出切入流和切出流中的数据,并将解析出的切入流的数据和解析出的切出流的数据均转换为适用于音频切换矩阵的格式再执行切换,在一定程度上可以提高切换效率,降低系统复杂度。

Description

一种音频流切换方法及装置
技术领域
本申请涉及多媒体通信技术领域,尤其涉及一种音频流切换方法及装置。
背景技术
在多媒体通信技术领域,如电视(television,TV)制播领域,存在对不同音频设备发送的音频流进行切换的场景。
目前音频流的切换方案中,比如,从一个切出流切换到一个切入流,需要从切入流的数据包和切出流的数据包均解析出数据后,将解析出的切入流的数据和解析出的切出流的数据均转换为适用于音频切换矩阵的格式,然后输入音频切换矩阵进行切换,导致切换效率较低,系统复杂度较高。
发明内容
本申请实施例提供一种音频流切换方法及装置,用以解决现有技术中存在效率低、复杂度高的问题。
第一方面,本申请实施例提供一种音频流切换方法,包括:
切换设备接收切换指令,所述切换指令指示从传输的第一音频流切换到第二音频流;所述切换设备根据第一音频流的第一报文的时间戳和第二音频流的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系;其中,第一报文的接收时间与第二报文的接收时间相同;所述切换设备根据所述同步关系和所述第一报文的时间戳确定所述第一音频流的切换点参数值,以及根据所述同步关系以及所述第二报文的时间戳确定所述第二音频流的切换点参数值,所述切换点参数值为切换点的时间戳或者切换点的序列号;所述切换设备将第一音频流中参数值大于所述第一音频流的切换点参数值的报文切换为所述第二音频流中参数值大于所述第二音频流的切换点参数值的报文。
例如,音频流中包括的报文可以是实时传输协议(real-time transportprotocol,RTP)报文。
上述方案中,从一个切出流切换到一个切入流,根据切出流和切入流中报文的时间戳来判断同步关系,基于同步关系来确定切换点执行切换,不需要从切入流和切出流中解析出数据,然后将解析出的切入流的数据和解析出的切出流的数据均转换为适用于音频切换矩阵的格式后,再执行切换,在一定程度上可以提高切换效率,降低系统复杂度。
在一种可能的设计中,所述切换设备根据第一音频流的第一报文的时间戳和第二音频流的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系,包括:
当所述第一音频流的采样率以及所述第二音频流的采样率不相同时,所述切换设备以基准采样率为基准,根据所述第一音频流的采样率以及所述第二音频流的采样率对所述第一报文的时间戳和所述第二报文的时间戳进行统一;所述切换设备根据统一后的第一报文的时间戳和统一后的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系;
其中,所述第一音频流的采样率基于接收到的所述第一音频流中的N个报文的时间戳确定,所述第二音频流的采样率基于接收到的所述第二音频流中的M个报文的时间戳确定,M和N均为正整数;所述基准采样率为第一音频流的采样率,或者第二音频流的采样率,或者预设采样率。
上述设计中,在切入流和切出流采样率不同的情况下,通过一个基准采样率来将切入流和切出流中报文的时间戳进行统一后再判断两个音频流的同步关系,在一定程序上可以提高确定同步关系的准确度。
在一种可能的设计中,所述第一音频流和第二音频流的采样率通过如下方式确定:
所述切换设备获取第一音频流的第一时间戳增量组以及第二音频流的第二时间戳增量组;其中,所述第一时间戳增量组包括基于所述N个报文的时间戳确定的N-1个第一时间戳增量,所述第二时间戳增量组包括基于所述M个报文的时间戳确定的M-1个第二时间戳增量;所述第一时间戳增量为连续接收的所述第一音频流中的两个报文的时间戳的差,所述第二时间戳增量为连续接收的所述第二音频流中的两个报文的时间戳的差;或者所述第一时间戳增量为接收到的所述第一音频流中的相邻报文时间戳的差,所述第二时间戳增量为接收的所述第二音频流中的相邻报文时间戳的差;所述切换设备根据所述第一时间戳增量组确定所述第一音频流的采样率,以及根据第二时间戳增量组确定所述第二音频流的采样率。
上述设计中,通过报文的时间戳增量来确定采样率,简单易行,复杂度低。
在一种可能的设计中,所述N个报文为在接收到所述切换指令后接收的第一音频流中的前N个报文,所述M个报文为在接收到所述切换指令后接收的第二音频流中的前M个报文,所述N等于M。
上述设计中,在接收到切换指令后再确定采样率,从而能够有针对性的确定哪几个音频流的采样率,在一定程度上可以提高资源利用率。
在一种可能的设计中,所述第一报文为第一音频流中完成确定所述第一音频流的采样率时所接收的报文,所述第二报文为第二音频流中完成确定所述第二音频流的音频信息时所接收的报文。
通过上述设计,选择完成确定采样率所接收的报文用来确定切换点,在一定程度上可以降低切换时延。
在一种可能的设计中,所述切换设备根据所述同步关系和所述第一报文的时间戳确定第一音频流的切换点参数值,以及根据所述同步关系和所述第二报文的时间戳确定第二音频流的切换点参数值,包括:所述切换设备根据所述同步关系、所述第一报文的时间戳和所述第一音频流的报文时长确定所述第一音频流的切换点参数值,根据所述同步关系、所述第二报文的时间戳和所述第二音频流的报文时长确定所述第二音频流的切换点参数值;其中,所述第一音频流的报文时长基于所述N个报文的时间戳确定,所述第二音频流的报文时长基于所述M个报文的时间戳确定。
上述设计,提供另一种简单易行的用来确定切换点的方式。
在一种可能的设计中,所述第一音频流和第二音频流的切换点的报文时间戳满足如下条件:
若根据统一后的所述第一报文的时间戳与统一后的所述第二报文的时间戳确定所述第一音频流与所述第二音频流同步,则TSi_SW=TSi+K1/ti_pkt*dtsi;TSo_SW=TSo+K1/to_pkt*dtso
或者,
若统一后的所述第一报文的时间戳晚于统一后的所述第二报文的时间戳,则TSi_SW=TSi+K1/ti_pkt*dtsi;TSo_SW=TSo+(tnsync+K1)/to_pkt*dtso
或者,
若统一后的所述第一报文的时间戳早于统一后的所述第二报文的时间戳,TSi_SW=TSi+(tnsync+K2)/ti_pkt*dtsi;TSo_SW=TSo+K2/to_pkt*dtso
其中,tnsync=|TSo 0-TSi 0|/fio,TSo 0表示统一后所述第一报文的时间戳,TSi 0表示所述统一后所述第二报文的时间戳,fio表示所述基准采样率,TSi_SW表示所述第二音频流的切换点的时间戳,TSi表示统一前所述第二报文的时间戳,ti_pkt表示所述第二音频流的报文时长,dtsi表示第二音频流的采样率对应的相邻报文时间戳差的理论值,TSo_SW表示所述第一音频流的切换点的时间戳,TSo表示统一前所述第一音频流的时间戳,to_pkt表示所述第一音频流的报文时长,dtso表示第一音频流的采样率对应的相邻报文时间戳差的理论值,K1表示第一预设时长,K2表示第二预设时长。
上述设计中,确定切换点时,增加一定的时长作为切换点的时间戳,可以避免乱序,较现有采用提前预存的方式,能够节省资源。
在一种可能的设计中,待确定音频流的报文时长满足如下条件,所述待确定音频流为第一音频流或者第二音频流:
Figure GDA0003074083690000031
待确定音频流的报文时长为第一数值;
Figure GDA0003074083690000032
待确定音频流的报文时长为第二数值;
其中,
Figure GDA0003074083690000033
Figure GDA0003074083690000034
表示基于待确定音频流的时间戳增量组确定的时间戳增量平均值,dTSthres与不同报文时长对应的相邻报文时间戳差的理论值有关,dTSi表示待确定音频流的时间戳增量组中第i个时间戳增量,dSEQi表示第i个时间戳增量对应的两个报文的序列号差值,w表示所述待确定音频流的时间戳增量组中时间戳增量的数量。
在一种可能的设计中,所述切换设备根据所述第一时间戳增量组确定所述第一音频流的采样率,包括:
根据N-1个第一时间戳增量、每个第一时间戳增量对应的两个报文的序列号差,以及所述切换设备所支持的多个理论采样率分别对应的相邻报文时间戳差的理论值,进行线性拟合,得到多个第一拟合误差;确定多个第一拟合误差中最小第一拟合误差对应的相邻报文时间戳差的理论值;将最小第一拟合误差对应的相邻报文时间戳差的理论值所对应的理论采样率作为所述第一音频流的采样率;
或者,
所述切换设备根据所述第二时间戳增量组确定所述第二音频流的采样率,包括:根据M-1个第二时间戳增量、每个第二时间戳增量对应的两个报文的时间戳差,以及所述切换设备所支持的多个理论采样率分别对应的相邻报文时间戳差的理论值,进行线性拟合,得到多个第二拟合误差;确定多个第二拟合误差中最小第二拟合误差对应的相邻报文时间戳差的理论值;将最小第二拟合误差对应的相邻报文时间戳差的理论值所对应的理论采样率作为所述第二音频流的采样率。
上述设计,通过拟合的方式确定采样率,简单易行,复杂度较低。
第二方面,本申请实施例提供一种音频流切换装置,所述装置可以应用于切换设备,有益效果可以参见第一方面的描述此处不再赘述。该装置具有实现上述第一方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
示例性的,所述装置包括接收单元、处理单元以及发送单元。
接收单元,用于接收切换指令,所述切换指令指示从传输的第一音频流切换到第二音频流;
处理单元,用于根据第一音频流的第一报文的时间戳和第二音频流的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系;其中,第一报文的接收时间与第二报文的接收时间相同;根据所述同步关系和所述第一报文的时间戳确定所述第一音频流的切换点参数值,以及根据所述同步关系以及所述第二报文的时间戳确定所述第二音频流的切换点参数值,所述切换点参数值为切换点的时间戳或者切换点的序列号;
发送单元,用于将第一音频流中参数值大于所述第一音频流的切换点参数值的报文切换为所述第二音频流中参数值大于所述第二音频流的切换点参数值的报文。
在一种可能的设计中,所述处理单元,在根据第一音频流的第一报文的时间戳和第二音频流的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系时,具体用于:
当所述第一音频流的采样率以及所述第二音频流的采样率不相同时,以基准采样率为基准,根据所述第一音频流的采样率以及所述第二音频流的采样率对所述第一报文的时间戳和所述第二报文的时间戳进行统一;根据统一后的第一报文的时间戳和统一后的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系;
其中,所述第一音频流的采样率基于接收到的所述第一音频流中的N个报文的时间戳确定,所述第二音频流的采样率基于接收到的所述第二音频流中的M个报文的时间戳确定,M和N均为正整数;所述基准采样率为第一音频流的采样率,或者第二音频流的采样率,或者预设采样率。
在一种可能的设计中,所述处理单元,还用于通过如下方式获取第一音频流和第二音频流的采样率:
获取第一音频流的第一时间戳增量组以及第二音频流的第二时间戳增量组;
其中,所述第一时间戳增量组包括基于所述N个报文的时间戳确定的N-1个第一时间戳增量,所述第二时间戳增量组包括基于所述M个报文的时间戳确定的M-1个第二时间戳增量;
所述第一时间戳增量为连续接收的所述第一音频流中的两个报文的时间戳的差,所述第二时间戳增量为连续接收的所述第二音频流中的两个报文的时间戳的差;或者所述第一时间戳增量为接收到的所述第一音频流中的相邻报文时间戳的差,所述第二时间戳增量为接收的所述第二音频流中的相邻报文时间戳的差;
根据所述第一时间戳增量组确定所述第一音频流的采样率,以及根据第二时间戳增量组确定所述第二音频流的采样率。
在一种可能的设计中,所述N个报文为在接收到所述切换指令后接收的第一音频流中的前N个报文,所述M个报文为在接收到所述切换指令后接收的第二音频流中的前M个报文,所述N等于M。
在一种可能的设计中,所述第一报文为第一音频流中完成确定所述第一音频流的采样率时所接收的报文,所述第二报文为第二音频流中完成确定所述第二音频流的音频信息时所接收的报文。
在一种可能的设计中,所述处理单元,在根据所述同步关系和所述第一报文的时间戳确定第一音频流的切换点参数值,以及根据所述同步关系和所述第二报文的时间戳确定第二音频流的切换点参数值时,具体用于:
根据所述同步关系、所述第一报文的时间戳和所述第一音频流的报文时长确定所述第一音频流的切换点参数值,根据所述同步关系、所述第二报文的时间戳和所述第二音频流的报文时长确定所述第二音频流的切换点参数值;
其中,所述第一音频流的报文时长基于所述N个报文的时间戳确定,所述第二音频流的报文时长基于所述M个报文的时间戳确定。
在一种可能的设计中,所述第一音频流和第二音频流的切换点的报文时间戳满足如下条件:
若根据统一后的所述第一报文的时间戳与统一后的所述第二报文的时间戳确定所述第一音频流与所述第二音频流同步,则TSi_SW=TSi+K1/ti_pkt*dtsi;TSo_SW=TSo+K1/to_pkt*dtso
或者,
若统一后的所述第一报文的时间戳晚于统一后的所述第二报文的时间戳,则TSi_SW=TSi+K1/ti_pkt*dtsi;TSo_SW=TSo+(tnsync+K1)/to_pkt*dtso
或者,
若统一后的所述第一报文的时间戳早于统一后的所述第二报文的时间戳,TSi_SW=TSi+(tnsync+K2)/ti_pkt*dtsi;TSo_SW=TSo+K2/to_pkt*dtso
其中,tnsync=|TSo 0-TSi 0|/fio,TSo 0表示统一后所述第一报文的时间戳,TSi 0表示所述统一后所述第二报文的时间戳,fio表示所述基准采样率,TSi_SW表示所述第二音频流的切换点的时间戳,TSi表示统一前所述第二报文的时间戳,ti_pkt表示所述第二音频流的报文时长,dtsi表示第二音频流的采样率对应的相邻报文时间戳差的理论值,TSo_SW表示所述第一音频流的切换点的时间戳,TSo表示统一前所述第一音频流的时间戳,to_pkt表示所述第一音频流的报文时长,dtso表示第一音频流的采样率对应的相邻报文时间戳差的理论值,K1表示第一预设时长,K2表示第二预设时长。
在一种可能的设计中,待确定音频流的报文时长满足如下条件,所述待确定音频流为第一音频流或者第二音频流:
Figure GDA0003074083690000051
待确定音频流的报文时长为第一数值;
Figure GDA0003074083690000052
待确定音频流的报文时长为第二数值;
其中,
Figure GDA0003074083690000053
Figure GDA0003074083690000054
表示基于待确定音频流的时间戳增量组确定的时间戳增量平均值,dTSthres与不同报文时长对应的相邻报文时间戳差的理论值有关,dTSi表示待确定音频流的时间戳增量组中第i个时间戳增量,dSEQi表示第i个时间戳增量对应的两个报文的序列号差值,w表示所述待确定音频流的时间戳增量组中时间戳增量的数量。
在一种可能的设计中,所述处理单元,在根据所述第一时间戳增量组确定所述第一音频流的采样率时,具体用于:
根据N-1个第一时间戳增量、每个第一时间戳增量对应的两个报文的序列号差,以及所述切换设备所支持的多个理论采样率分别对应的相邻报文时间戳差的理论值,进行线性拟合,得到多个第一拟合误差;
确定多个第一拟合误差中最小第一拟合误差对应的相邻报文时间戳差的理论值;
将最小第一拟合误差对应的相邻报文时间戳差的理论值所对应的理论采样率作为所述第一音频流的采样率;
或者,
所述处理单元,在根据所述第二时间戳增量组确定所述第二音频流的采样率,具体用于:
根据M-1个第二时间戳增量、每个第二时间戳增量对应的两个报文的时间戳差,以及所述切换设备所支持的多个理论采样率分别对应的相邻报文时间戳差的理论值,进行线性拟合,得到多个第二拟合误差;
确定多个第二拟合误差中最小第二拟合误差对应的相邻报文时间戳差的理论值;
将最小第二拟合误差对应的相邻报文时间戳差的理论值所对应的理论采样率作为所述第二音频流的采样率。
第三方面,本申请实施例还提供了一种装置,所述装置应用于所述切换设备,有益效果可以参见第一方面的描述此处不再赘述。所述通信装置的结构中包括处理器和收发器,还可以包括存储器,所述处理器被配置为支持所述终端设备执行上述第一方面方法中相应的功能。所述存储器与所述处理器耦合,其保存所述通信装置必要的程序指令和数据。所述收发器,用于与其他设备进行通信。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
第五方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
第六方面,本申请还提供一种计算机芯片,所述芯片与存储器相连,所述芯片用于读取并执行所述存储器中存储的软件程序,执行上述第一方面所述的方法。
附图说明
图1为本申请实施例提供的音频流切换系统结构示意图;
图2为本申请实施例提供的一种音频流切换方法流程示意图;
图3为本申请实施例提供的确定切换点时间戳的流程示意图;
图4A为本申请实施例提供的第一音频流中报文传输方法示意图;
图4B为本申请实施例提供的第二音频流中报文传输方法示意图;
图5为本申请实施例提供的音频流切换示意图;
图6为本申请实施例提供的切换流表示意图;
图7为本申请实施例提供的另一种音频流切换方法流程示意图;
图8为本申请实施例提供的音频流序列号乱序示意图;
图9为本申请实施例提供的序列号更新示意图;
图10为本申请实施例提供的多条音频流切换示意图;
图11为本申请实施例提供的装置1100结构示意图;
图12为本申请实施例提供的装置1200结构示意图。
具体实施方式
本申请实施例可以应用于广播、电视台制播网络的总控系统、演播室、播出域等对承载在IP网络上的音频流有切换需求的场景。
图1示例性地示出一种音频流切换系统结构示意图。系统包括X个音频设备,切换设备,音频接收设备,X为大于1的整数。音频设备用于输出音频流给切换设备。切换设备负责将X个音频设备输出的X路音频流中的一路音频流传输给下游设备,以通过下游设备将音频流传输给音频接收设备。
本申请实施例中的切换设备可以是用于制播IP网络中的IP网络交换设备,比如路由器、交换机、虚拟交换机,还可以是一台或者多台服务器,或者是一个虚拟化平台,或者是云计算服务中心等。
示例性的,音频流切换系统中还可以包括管理设备,用于向切换设备发送切换指令。其中,该管理设备与切换设备之间可以通过有线网络或者无线网络连接。
可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(local area network,LAN)、城域网(metropolitan area network,MAN)、广域网(wide area network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。
广播电视信号互联网协议(internet protocol,IP)化网络传输标准中针对脉冲编码调制(pulse code modulation,PCM)音频要素、传输限制、通道要求、一致性规定等方面进行规范性说明。比如,动画和电视工程师协会(the society of motion picture andtelevision engineers,SMPTE)2110规定音频发送端和接收端支持的采样率有44.1kHz、48kHz、96kHz,音频时长有125us、1ms等。
音频数据IP化过程一次经历了音频采样、模数变换、PCM编码、IP封包形成音频流,再传输给切换设备,进行切换选择,整个过程可以由精确时间协议(precision timeprotocol,PTP)时钟源保证时间的精确同步。目前音频流的切换方案中,需要将待切入的音频流转换到与正在播放的音频流同样的音频格式,然后再执行切换,导致切换效率较低,系统复杂度较高。
基于此,本申请实施例提供一种音频流切换方法及装置,用以解决现有技术中存在的切换效率低及复杂度高的问题。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
由于音频设备厂商不同,音频采样率、通道数、报文时长等均不尽相同。以SMPTE2110-30规范为例,其规定了三种音频采样率,两种报文时长。不同的采样率、报文时长所对应的音频流的时间戳、报文间隔均有所差异。而多个通道的数据封装在同一个数据流内,因此通道数对音频流的切换无直接影响。本申请实施例中通过获取音频流的报文的时间戳来确定采样率、报文时长,获取音频流之间的时间关系,从而确定切换点,保证音频流的无差错切换。
另外,本申请实施例中,可以将切换前传输的流可以称为切出流,切换后传输的流可以称为切入流。本申请实施例后续描述时以第一音频流为切出流,第二音频流为切入流为例。
参见图2所示,为本申请实施例提供的音频流切换方法流程示意图。
S201,切换设备接收切换指令,所述切换指令指示从传输的第一音频流切换到第二音频流。
S202,所述切换设备根据第一音频流的第一报文的时间戳和第二音频流的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系;其中,第一报文的接收时间与第二报文的接收时间相同。
S203,所述切换设备根据所述同步关系和所述第一报文的时间戳确定所述第一音频流的切换点参数值,以及根据所述同步关系以及所述第二报文的时间戳确定所述第二音频流的切换点参数值,所述切换点参数值为切换点的时间戳或者切换点的序列号。
S204,所述切换设备将第一音频流中参数值大于所述第一音频流的切换点参数值的报文切换为所述第二音频流中参数值大于所述第二音频流的切换点参数值的报文。
在步骤S204中所述切换设备将第一音频流中参数值大于所述第一音频流的切换点的参数值的报文切换为所述第二音频流中参数值大于所述第二音频流的切换点参数值的报文,即所述切换设备丢弃第一音频流中参数值大于所述第一音频流的切换点参数值的报文,并转发所述第二音频流中参数值大于所述第二音频流的切换点参数值的报文。需要说明的是,所述切换设备在确定所述第一音频流的切换点参数值后,有可能会接收到第一音频流中参数值小于或等于所述第一音频流的切换点参数值的报文,则可以转发这部分,在第一音频流中,参数值小于或等于所述第一音频流的切换点参数值的报文。另外,对于在确定所述第二音频流的切换点参数值后接收的小于或等于所述第二音频流的切换点参数值的报文,则可以丢弃掉。
在一种可能的示例中,切换设备中包括至少两个输出端口的情况下,比如端口1和端口2。在执行切换之前,切换设备通过端口1将第一音频流和第二音频流发送给监控设备,通过端口2将第一音频流发送给下游设备,第二音频流在端口2不执行转发,可以认为是丢弃。在执行切换后,切换设备还是通过端口1将第一音频流和第二音频流发送给监控设备,在端口2,将第二音频流转发给下游设备,而第一音频流不再转发给下游设备,可以认为第一音频流在端口2是丢弃。
可选地,所述切换指令中还可以携带端口号,用于指示执行切换输出音频流的端口。
在一种可能的实现方式中,所述切换设备在根据第一音频流的第一报文的时间戳和第二音频流的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系时,可以通过如下方式实现:
第一种示例:当所述第一音频流的采样率以及所述第二音频流的采样率相同时,所述切换设备根据第一音频流的第一报文的时间戳和第二音频流的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系。
比如,第一报文的时间戳与第二报文的时间戳差的绝对值小于或者等于第一阈值,第一音频流和第二音频流同步,否则不同步。比如第一阈值为0,或者2ms。
第二种示例:当所述第一音频流的采样率以及所述第二音频流的采样率不相同时,所述切换设备以基准采样率为基准,根据所述第一音频流的采样率以及所述第二音频流的采样率对所述第一报文的时间戳和所述第二报文的时间戳进行统一;所述切换设备根据统一后的第一报文的时间戳和统一后的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系。
比如,统一后的第一报文的时间戳与统一后的第二报文的时间戳差的绝对值小于或者等于第二阈值,第一音频流和第二音频流同步,否则不同步。比如第二阈值为0,或者2ms。
其中,所述第一音频流的采样率基于接收到的所述第一音频流中的N个报文的时间戳确定,所述第二音频流的采样率基于接收到的所述第二音频流中的M个报文的时间戳确定,M和N均为正整数;所述基准采样率为第一音频流的采样率,或者第二音频流的采样率,或者预设采样率。
一种可能的实现方式中,所述切换设备可以将统一后的所述第一报文的时间戳作为第一音频流的切换点的时间戳,以及将统一后的所述第二报文的时间戳作为第二音频流的切换点时间戳。但是由于报文在传输过程中可能会存在乱序的情况,若出现乱序的情况,上述方式无法保证在出现乱序的情况下报文的正常切换传输。现有一般采用将接收到的报文按照报文序列号缓存的方法,但是在切换过程中需要不断的在缓存空间执行写入、寻址、读出等操作,会增加系统的复杂度以及浪费资源。本申请实施例中,在确定第一音频流和第二音频流的切换点参数值时,可以考虑报文时长,在第一报文的时间戳基础上再加上几个报文的时长作为第一音频流的切换点时间戳,以及在第二报文的时间戳基础上再加上几个报文的时长作为第二音频流的切换点时间戳,进而避免乱序导致的无法正常切换。
从而,所述切换设备在根据所述同步关系和所述第一报文的时间戳确定第一音频流的切换点参数值,以及根据所述同步关系和所述第二报文的时间戳确定第二音频流的切换点参数值时,可以通过如下方式实现:
所述切换设备根据所述同步关系、所述第一报文的时间戳和所述第一音频流的报文时长确定所述第一音频流的切换点参数值,根据所述同步关系、所述第二报文的时间戳和所述第二音频流的报文时长确定所述第二音频流的切换点参数值;
其中,所述第一音频流的报文时长基于接收到的所述第一音频流中的N个报文的时间戳确定,所述第二音频流的报文时长基于接收到的所述第二音频流中的M个报文的时间戳确定。
后续为了描述方便,将采样率和报文时长统称为音频信息。
在一种可能的实现方式中,在确定第一音频流和第二音频流的音频信息中包括的采样率和报文时长时,可以通过如下方式来确定。
由于音频流的音频信息影响着音频流的切换,因此本申请实施例中确定音频信息主要思路是对音频流的报文采样,通过对报文时间戳的统计学习,获得音频信息采样率和报文时长。
参见表1所示,示例性地示出了SMPTE 2110规定的44.1kHz、48kHz、96k三种采样率,以及125us和1ms两种报文时长与序列号相邻的两个报文时间戳差的理论值。
表1
Figure GDA0003074083690000091
Figure GDA0003074083690000101
具体的,不同的采样率、报文时长对应的序列号相邻的两个报文时间戳差的理论值可以通过如下公式(1)来确定。
Figure GDA0003074083690000102
从上述表1和公式(1)可以确定,音频流的采样率和报文时长均与相邻报文时间戳差相关。其中,相邻报文是指序列号相邻的两个报文。基于此,切换设备在确定第一音频流和第二音频流的音频信息中包括的采样率和报文时长时,首先获取第一音频流的第一时间戳增量组以及第二音频流的第二时间戳增量组。
其中,所述第一时间戳增量组包括基于接收的第一音频流中的N个报文的时间戳确定的N-1个第一时间戳增量,所述第二时间戳增量组包括基于接收的第二音频流中的M个报文的时间戳确定的M-1个第二时间戳增量。
其次,所述切换设备根据所述第一时间戳增量组确定所述第一音频流的采样率和报文时长,以及根据第二时间戳增量组确定所述第二音频流的采样率。
其中,时间戳增量即为两个报文之间的时间戳差。在获取时间戳增量时,可以通过多种方式实现,如下示例两种。
第一种可能的示例,以连续接收的两个报文的时间戳差作为时间戳增量,即所述第一时间戳增量为连续接收的所述第一音频流中的两个报文的时间戳的差,所述第二时间戳增量为连续接收的所述第二音频流中的两个报文的时间戳的差。
第二种可能的示例,连续接收多个报文,可以根据报文序列号对报文进行排序,然后将序列号相邻的两个报文的时间戳差作为时间戳增量,即所述第一时间戳增量为接收到的所述第二音频流中的序列号相邻两个报文的时间戳的差,所述第二时间戳增量为接收的所述第二音频流中的序列号相邻两个报文的时间戳的差。
下面结合具体场景,描述报文时长的确定方式:
通过表1中序列号相邻的两个报文时间戳差的理论值(后续描述时,简称为理论值)可以得出,报文时长为125us时,理论值为5.5、6、12三种情况;报文时长为1ms时,理论值为44.1、48、96三种情况。因此,根据表1可知125us和1ms分别对应的理论值差异较为明显,从而可以设置一个阈值dTSthres,可以根据实际接收计算出的报文时间戳差
Figure GDA0003074083690000103
平均值与该dTSthres的比较结果来确定报文时间为125us或者为1ms。比如,当
Figure GDA0003074083690000104
时,音频流的报文时长为第一数值,比如tpacket=125us;当
Figure GDA0003074083690000105
Figure GDA0003074083690000106
时,音频流的报文时长为第二数值,比如tpacket=1ms。示例性的,dTSthres取值可以选择大于12且小于44.1的数值,为了保证较好判定报文时长,可以选择位于12和44.1中间的数值,比如25。
实际网络接收的待确定音频流的时间戳增量平均值
Figure GDA0003074083690000107
可由公式(2)计算得出。待确定音频流可以是第一音频流或第二音频流。
Figure GDA0003074083690000111
dTSi为表示待确定音频流的时间戳增量组中第i个时间戳增量,dSEQi为所述第i个时间戳增量对应的两个报文的序列号差值,w为待确定音频流的时间戳增量组中时间戳增量的数量。示例性的,待确定音频流为第一音频流时,w=N-1,待确定音频流为第二音频流时,w=M-1。
本申请实施例中,在获取第一时间戳增量组和第二时间戳增量组后,基于第一时间戳增量组和第二时间戳增量组确定采样率。
示例性的,切换设备在根据所述第一时间戳增量组确定所述第一音频流的采样率时,可以通过如下方式实现:
根据N-1个第一时间戳增量、每个第一时间戳增量对应的两个报文的序列号差,以及所述切换设备所支持的多个理论采样率分别对应的相邻报文时间戳差的理论值,进行线性拟合,得到多个第一拟合误差;确定多个第一拟合误差中最小第一拟合误差对应的相邻报文时间戳差的理论值;将最小第一拟合误差对应的相邻报文时间戳差的理论值所对应的理论采样率作为所述第一音频流的采样率。
同理,所述切换设备在根据所述第二时间戳增量组确定所述第二音频流的采样率时,可以通过如下方式实现:
根据M-1个第二时间戳增量、每个第二时间戳增量对应的两个报文的时间戳差,以及所述切换设备所支持的多个理论采样率分别对应的相邻报文时间戳差的理论值,进行线性拟合,得到多个第二拟合误差;确定多个第二拟合误差中最小第二拟合误差对应的相邻报文时间戳差的理论值;将最小第二拟合误差对应的相邻报文时间戳差的理论值所对应的理论采样率作为所述第二音频流的采样率。
示例性的,拟合模型可以采用直线模型:
Figure GDA0003074083690000112
Figure GDA0003074083690000113
为表1中的理论值。以确定第一音频流的采样率为例,根据直线方程,利用接收两个报文的时间戳增量以及序列号差(dSEQi,dTSi)进行拟合,计算出拟合误差σ。
Figure GDA0003074083690000114
Figure GDA0003074083690000115
为表1中第l个理论值,N-1为第一时间戳增量的数量。通过公式(3)得出
Figure GDA0003074083690000116
组,再针对拟合误差σ进行排序得到最小拟合误差σmin,以及相应的
Figure GDA0003074083690000117
值,根据
Figure GDA0003074083690000118
得出采样率fsample,采样率与理论值的对应关系参见表2所示。
表2
Figure GDA0003074083690000119
此外,本申请实施例,确定音频流的音频信息的报文(即上述N个报文或者M个报文)可以是在接收到切换指令前接收的,也可以是在接收到切换指令后接收的。下面以两种可能的示例进行说明。
示例1,所述N个报文可以为在接收到所述切换指令后接收的第一音频流中的前N个报文,所述M个报文为在接收到所述切换指令后接收的第二音频流中的前M个报文,所述N可以等于M,N也可以不等于M。本申请实施例中,后续描述中,以N等于M为例。在该示例1所示的情况下,用于确定第一音频流的切换点参数值的第一报文可以是完成确定音频信息时所接收的报文。当然还可以是其它报文,但是选择完成确定音频信息时所接收的报文可以降低切换时延。用于确定第二音频流的切换点参数值的第二报文可以是第二音频流中完成确定音频信息时所接收的报文。当然还可以是其它报文,但是选择完成确定音频信息时所接收的报文可以降低切换时延。
示例2,所述N个报文可以为在接收到所述切换指令前接收的第一音频流中的N个报文,所述M个报文为在接收到所述切换指令前接收的第二音频流中的M个报文,所述N可以等于M,或者N也可以不等于M。
比如,以第一音频流为例,在开始接收第一音频流的报文的时候,将连续接收的N个报文作为用于确定音频信息的报文。一种情况是,在连续接收用于确定音频信息的N个报文过程中,没有接收到切换指令,在该情况下,用于确定切换点参数值的第一报文可以是接收到切换指令时接收的第一个报文,当然还可以是其它报文,但是选择第一个报文时切换时延最小。另一种情况是,在连续接收用于确定音频信息的N个报文过程中,接收到切换指令,但是并不会影响音频信息的计算。该情况下,用于确定切换点参数值的第一报文可以是完成确定音频信息时所接收的报文,当然还可以是其它报文,但是选择完成确定音频信息时所接收的报文切换时延最小。
以音频流满足SMPTE2110和AES67为例,音频流的报文的时间戳为音频流实时传输协议(real-time transport protocol,RTP)时钟的采样,时间戳所对应的时间为采样时刻与历元时刻之间的偏移,如公式(4)所示,时间戳每秒的增量为音频采样率的值。
(t-tepoch)*f=TS+m*2^n (4)
其中,t为表示报文的采集时刻,tepoch为历元时刻,f为音频流的采样率,m为时间戳翻转次数,TS表示报文的时间戳,n表示时间戳所占的比特数。
时间戳翻转是指,n位的时间戳无法表示该报文的时间戳时,该报文的时间戳发生翻转,以n为4为例,比如前一个报文的时间戳为1111,则下一个报文的时间戳发生翻转,则为0000。
SMPTE 2110和AES67中一般时间戳占用的比特数为32位,由于时间戳TS以32bit记录会发生翻转,因此时间戳计算公式(4)中n=32表示,后续描述以32为例。由于作为切出流的第一音频流和作为切入流的第二音频流的采样频率不同,时间戳的计算基准也就不同,相同采样时刻所对应的时间戳也会不同,所以即使同步的切入流、切出流时间戳也有差异。因此,在计算切换点参数值时,可以先将时间戳统一到基准采样率下进行。基准采样率可以为切入流的采样率或切出流的采样率基准,也可以统一到同一个标准的其它采样率上。
示例性的,以切出流的时间戳基于切入流的采样率进行统一为例,可以通过如下公式(5)可以将切出流的时间戳基于切入流的采样率进行统一。
Figure GDA0003074083690000131
其中,fsample_i为切入流的采样率,fsample_o为切出流的采样率,TS_o表示统一前切出流的时间戳,TS_o_in_i表示统一后切出流的时间戳。
考虑到时间戳翻转速率很慢,m可由当前时刻计算得出,可以由公式(6)计算得出。
Figure GDA0003074083690000132
其中,tcur为当前时刻,tepoch为历元时刻。一般性的,历元时刻为1970-01-01T00:00:00国际原子时(international atomic time,TAI),当前时间也需为TAI所表达的时刻。
其中,TAI是利用某些元素的原子能级跃迁频率有极高的稳定性,采用基于铯原子(Cs132.9)的能级跃迁原子秒作为时标,作为国际时间表示,也称为TAI。
本申请实施例中,在确定第一音频流和第二音频流的切换点参数值时,如果第一音频流和第二音频流的采样率不同,首先根据公式(5)和公式(6)进行基于基准采样率的时间戳的统一,再根据统一后的时间戳判断第一音频流、第二音频流的同步情况,再通过同步情况确定第一音频流和第二音频流的切换点参数值。
一种示例中,通过统一后第一报文和统一后的第二报文的时间戳计算出失步时长tnsync,可以基于失步时长判断第一音频流、第二音频流的同步情况。
比如,如果失步时长大于失步阈值(threshold1)(失步时长为第一音频流和第二音频流不同步的时间差,失步阈值可根据人为判别音频间隔的范围的经验值来定,示例性的,失步阈值的取值范围为1~5ms),确定第一音频流和第二音频流不同步。
示例性,失步时长tnsync=|TSo 0-TSi 0|/fio,TSo 0表示统一后第一音频流中所述第一报文的时间戳,TSi 0表示所述统一后第二音频流中所述第二报文的时间戳,fio表示所述第一时间戳对应的采样率,K为大于1的整数。
另一种示例性,通过统一后第一报文和第二报文的时间戳差确定所述第一音频流与所述第二音频流是否同步:
若TSnsync=|TSo 0-TSi 0|>threshold2,确定所述第一音频流与所述第二音频流不同步,否则,确定第一音频流和第二音频流同步。
此外,确定第一音频流和第二音频流的切换点参数值,可以通过多种方式实现,以下示三种可行的方式。
第一种可行的方式是,如果第一音频流和第二音频流同步,可以将第一音频流的第一报文的时间戳作为第一音频流的切换点时间戳,将第二音频流的第二报文的时间戳作为第二音频流的切换点时间戳。
第二种可行的方式是,如果第一音频流和第二音频流同步,可以针对第一音频流和第二音频流在第一种可行的方式确定的切换点时间戳的基础上增加一定时延后作为切换点的时间戳。
示例性的,若根据统一后的第一报文的时间戳与统一后的第二报文的时间戳确定所述第一音频流与所述第二音频流同步,则TSi_SW=TSi+K1/ti_pkt*dtsi;TSo_SW=TSo+K1/to_pkt*dtso
其中,TSi_SW表示所述第二音频流的切换点的时间戳,TSi表示统一前所述第二报文的时间戳,ti_pkt表示所述第二音频流的报文时长,dtsi表示第二音频流的采样率对应的相邻报文时间戳差的理论值,TSo_SW表示所述第一音频流的切换点的时间戳,TSo表示统一前所述第一音频流的时间戳,to_pkt表示所述第一音频流的报文时长,dtso表示第一音频流的采样率对应的相邻报文时间戳差的理论值,K1为第一预设时长。
第三种可行的方式是,如果第一音频流和第二音频流失步,可以针对第一音频流和/或第二音频流增加一定时延(比如失步时长)后作为切换点的时间戳。如果第二音频流领先第一音频流,第二音频流增加一定时延(比如失步时长)作为切换点,从而第二音频流同步至第一音频流。考虑到乱序的情况话,可以再在第一音频流和增加一定时延的第二音频流的基础上再分别增加一定时延作为切换点;如果第二音频流落后第一音频流,第一音频流同步至第二音频流,考虑到乱序的情况话,可以在同步后的第一音频流和第二音频流的基础上再分别增加一定时延作为切换点。
示例性地,若根据统一后的第一报文的时间戳与统一后的第二报文的时间戳确定所述第一音频流与所述第二音频流不同步,且统一后的第一报文的时间戳晚于统一后的第二报文的时间戳,即第二音频流早于第一音频流,则TSi_SW=TSi+K1/ti_pkt*dtsi;TSo_SW=TSo+(tnsync+K1)/to_pkt*dtso
或者,
若根据统一后的第一报文的时间戳与统一后的第二报文的时间戳确定所述第一音频流与所述第二音频流不同步,且统一后的第一报文的时间戳早于统一后的第二报文的时间戳,即第二音频流落后第一音频流,TSi_SW=TSi+(tnsync+K2)/ti_pkt*dtsi;TSo_SW=TSo+K2/to_pkt*dtso。K2为第二预设时长。
本申请实施例中,在确定第一音频流和第二音频流的切换点参数值时,如果第一音频流和第二音频流的采样率相同,则可以直接根据第一报文的时间戳和第二报文的时间戳判断第一音频流、第二音频流的同步关系,再通过同步关系确定第一音频流和第二音频流的切换点参数值。在采样率相同时,与采样率不同时确定失步时长的方式不同。
示例性,失步时长t1nsync=|TSo-TSi|/fio,TSo表示所述第一报文的时间戳,TSi表示所述第二报文的时间戳,fio表示所述第一音频流或者第二音频流的采样率。
在采样率相同时,与采样率不同时确定第一音频流和第二音频流的切换点参数值的方式类似,仅将涉及的tnsync替换为t1nsync,即可,详细之处不再重复描述。
参见图3所示,图3示例性的示出一种确定切换点时间戳的流程示意图,以第一音频流和第二音频流的采样率不同,且以失步时长确定两个音频流是否同步为例。
S301,确定是否满足tnsync>threshold1,若是,执行S302,若否,执行S305。
S302,确定统一后的第一报文的时间戳是否晚于统一后的第二报文的时间戳,若是,执行S303,若否,执行S304。
S303,TSi_SW=TSi+K1/ti_pkt*dtsi;TSo_SW=TSo+(tnsync+K1)/to_pkt*dtso
S304,TSi_SW=TSi+(tnsync+K2)/ti_pkt*dtsi;TSo_SW=TSo+K2/to_pkt*dtso
S305,TSi_SW=TSi+K1/ti_pkt*dtsi;TSo_SW=TSo+K1/to_pkt*dtso
示例性的,tnsync>threshold1时,确定第一音频流和第二音频流不同步,tnsync≤threshold1时,确定第一音频流和第二音频流不同步。threshold1可以是0或者2ms。
示例性的,本申请实施例中还可以配置另一阈值,称为第三阈值,第三阈值可以大于threshold1。tnsync>第三阈值,确定第一音频流和第二音频流失步过大,则可以通过S305来确定第一音频流和第二音频流的切换点时间戳。
示例性地,本申请实施例中的参数值可以是切换点时间戳也可以是序列号,从而在切换时可以依据切换点时间戳,也可以依据切换点序列号。在确定切换点时间戳后,可以依据切换点时间戳确定切换点序列号。
此外,在一种可能的示例中,在步骤S204所述切换设备将第一音频流中参数值大于所述第一音频流的切换点参数值的报文切换为所述第二音频流中参数值大于所述第二音频流的切换点参数值的报文中,以参数值为时间戳为例,可以通过如下方式来判断切入流/切出流中报文的时间戳是否大于切换点时间戳。在计算出切换点时间戳后,获取切入流/切出流的当前报文的时间戳,若当前报文的时间戳小于切换点时间戳,有两种可能,一种是当前报文时间戳和切换点时间戳均未发生翻转,当前报文未到达切换点,另一种是当前报文时间戳发生翻转,切换点时间戳未发生翻转,当前报文已超过切换点;若当前时间戳大于切换点时间戳,也有两种可能,一种是当前报文时间戳和切换点时间戳均未发生翻转,当前报文已超过切换点,另一种是当前报文时间戳未发生翻转,切换点时间戳发生翻转,当前报文未到达切换点。
示例性地,以时间戳所占的比特数n=32为例,如果当前报文的时间戳大于切换点时间戳,若当前报文的时间戳与切换点时间戳的差大于2^31,确定切换点时间戳发生翻转,而当前时间戳尚未翻转。如果当前报文的时间戳小于切换点的时间戳,若切换点时间戳与当前报文的时间戳的差大于2^31,则确定切换点时间戳未发生翻转,而当前时间戳发生翻转。
参见图4A和图4B,示例性地示出了切换设备将第一音频流中参数值大于所述第一音频流的切换点参数值的报文切换为所述第二音频流中参数值大于所述第二音频流的切换点参数值的报文的一种实现过程示意图。以参数值为时间戳为例。
S401a,获取第一音频流中当前报文的时间戳TS1。
S402a,确定TS1是否大于第一音频流的切换点时间戳TSi_SW。若是,执行S403a,若否,执行S404a。
S403a,获取Diff_TS1=TS1-TSi_SW。
S405a,确定Diff_TS1>2^31?若是,执行S406a,若否S407a。
S406a,切换点时间戳翻转,此时当前报文未过切换点,当前报文转发。
S407a,当前报文丢弃。
S404a,获取Diff_TS2=TSi_SW-TS1。
S408a,确定Diff_TS2>2^31?若是,执行S409a,若否S410a。
S409a,当前报文时间戳翻转,此时当前报文已过切换点,当前报文丢弃。
S410a,当前报文转发。
S401b,获取第二音频流中当前报文的时间戳TS2。
S402b,确定TS2是否大于第二音频流的切换点时间戳TSo_SW。若是,执行S403b,若否,执行S404b。
S403b,获取Diff_TS1=TS2-TSo_SW。
S405b,确定Diff_TS1>2^31?若是,执行S406b,若否S407b。
S406b,切换点时间戳翻转,此时当前报文未过切换点,当前报文丢弃。
S407b,当前报文转发。
S404b,获取Diff_TS2=TSo_SW-TSo
S408b,确定Diff_TS2>2^31?若是,执行S409b,若否S410b。
S409b,当前报文时间戳翻转,此时当前报文已过切换点,当前报文转发。
S410b,当前报文丢弃。
下面结合具体应用场景对本申请实施例进行详细说明。
此处以待切换的两个音频流符合SMPTE 2110标准,两个音频流中包括的报文为RTP报文为例。
首先,以两条音频流之间切换为例。参见图5所示,为两条待切换的音频流。图5中以接收到切换指令后进行学习两条音频流的音频信息为例。具体学习音频信息的方式可以参见图2所示的实施例中的说明,此处不再赘述。图5中音频流1为切出流,音频流2为切入流。
可选地,本申请还可以针对每个音频流建立一个切换流表,用于记录该音频流的切换状态,以及音频信息等。
示例性的,参见图6所示为切换流表的一种形式。
图6中,流类型TYPE:表示音频流的状态,有正常转发流、切入流和切出流三种状态。
时间戳(TS):表示音频流中当前报文的时间戳,可从RTP.TS中获取。
序列号(SN):表示音频流中当前报文的序列号,可从RTP.SN中获取。
时间戳差和(SUM_DTS):表示学习音频信息过程中接收报文的时间戳差值的总和。
序列号差和(SUM_DSEQ):表示统计学习过程中接收报文的序列号差值的总和。
报文时长(T_PKT):表示音频流的报文时长,比如有125us、1ms两种。
采样率(F_SMPL):表示音频流的采样率,比如有44.1kHz、48kHz、96kHz三种。
切换点时间戳(TS_SW):表示切换点时间戳。
切换点序列号(TS_SN):表示切换点序列号。
序列号偏移(SN_OFST):表示切出流转发时的RTP序列号偏移值。
学习标志(F_LN):表示开始学习音频流的音频信息的标志。
学习阶段完成标志(F_FL):表示音频流的音频信息学习阶段完成的标志。
切换点计算完成标志(F_FSW):表示切换点计算完成的标志。
参见图7所示,示例一种音频流切换方法流程示意图。
S701a,不转发音频流1中报文。
S701b,正常转发音频流2中报文。
S702,接收到切换指令。切换指令用于指示将音频流1切换为音频流2。
将音频流1的切换流表中的流类型更新为切出流,将音频流2的切换流表中的流类型更新为切入流。
示例性的,从接收到切换指令所在报文的下个报文开始进入学习音频信息的阶段,可以将两个音频流的切换流中的学习标志F_LN项进行更新,比如置为1。
S703a,执行学习音频流1的音频信息的过程。音频信息包括采样率,还可以包括报文时长。S703b,执行学习音频流2的音频信息的过程。
接收到音频流1和音频流2中每个报文后跟切换流表中时间戳TS、序列号SN进行差值计算,并基于差值更新切换流表的SUM_DTS、SUM_DSEQ,以及根据当前接收报文更新流表中TS项和SN项的值(对于学习阶段第一个报文只需更新流表中TS项、和SN项,其它操作不需进行)。
S704a,完成学习,并获得音频流1的音频信息。
S704b,完成学习,并获得音频流2的音频信息。
学习完成后,根据SUM_DTS、SUM_DSEQ获得音频流1、音频流2的报文时长、采样率等音频信息,分别更新至流表中报文时长T_PKT、采样率F_SMPL值。还可以更新两个音频流的切换流表中的学习阶段完成标志F_FL,比如置为1。
S705,统一音频流1和音频流2的时间戳基准。比如选择音频流1和音频流2中的完成学习的第一个报文,用来统一音频流1和音频流2的时间戳基准。
S706,分别确定音频流1和音频流2的切换点时间戳。
在学习阶段完成标志F_FL为1后,开始计算切换点。统一音频流1和音频流2的时间戳基准,并判断同步情况,计算音频流1和音频流2的切换点时间戳和/或切换点序列号,以及音频流2序列号偏移。
比如,参见图8所示,考虑乱序情况,音频流1中序列号为82的报文接收时间早于序列号为81的接收时间,音频流2中序列17的报文接收时间早于序列号16的接收时间。从而计算的切换点的时间戳或者序列号增加了一定的时延,得到的音频流1切换点的时间戳为384,切换点序列号为16。音频流2的切换点的时间戳为388,切换点序列号为81。
S707b,将音频流2中时间戳大于音频流2的切换点时间戳的报文丢弃。
S707a,将音频流1中时间戳大于音频流1的切换点时间戳的报文转发。
在切换点计算完成标志为真后,判断音频流1和音频流2中报文的时间戳是否大于切换点时间戳。参见图8所示,音频流2中时间戳大于或者等于384的报文不再转发。音频流1中时间戳大于或者等于388的报文转发。即虽然音频流2中时间戳为432的报文的接收时间早于时间戳为384的报文的接收时间,但是时间戳为432的报文不再转发,虽然音频流1中时间戳为480的报文的接收时间早于时间戳为388的报文的接收时间,但是时间戳为480的报文需要转发。
另外,转发音频流1(切入流)中的报文时,修改目的IP、端口,为了保证切入、切出过程中RTP序列号连续,可以根据音频流1的序列号偏移值,以及音频流2的序列号偏移值修改转发音频流1(切入流)中的报文的序列号。
比如参见图9所示,切换前,依据音频流2的序列号偏移值,确定音频流2中序列号为90-94的经过计算序列号应为3000-3004。切换后,序列号应该从3005开始。而音频流1中切换开始报文的序列号从1005开始,从而确定音频流1的序列号偏移值为2000,从而经过计算序列号均加上序列号偏移值2000。
可选地,在音频流1和音频流2切换开始后经过预设时长后,进入了稳定状态,切换完成,可以更新音频流1和音频流2中切换流表中的流类型。另外,还可以复位切换流表中除流类型以及序列号偏移以外的其它字段。
其次,在Y条音频流切换到另外Y条音频流的情况下,Y为大于或者等于2的正整数,比如,参见图10,以两条音频流切换到另外两条音频流为例。多条音频流之间切换与两条音频流的切换的不同之处在于,切换过程中在计算切换点时间戳和/或序列号之前,首先要将切入流和切出流分别包括的两条音频流的时间戳均统一到同一时间戳基准下,通过比较统一基准后的4条音频流的时间戳,确定切入流包括的两条音频流中时间戳领先的音频流,以及确定切出流中包括的两条音频流中时间戳领先的音频流。基于切入流中时间戳领先的音频流确定切入流时间戳,基于切出流中时间戳领先的音频流确定切出流时间戳。比如,参见图10所示,切入流包括音频流a、音频流b。切出流包括音频流c和音频流d。从图10可以看出,切入流中音频流b领先音频流a,切出流中音频流c领先音频流d。在分别确定切入流和切出流的切入点时间戳和/或序列号时,可以基于音频流b和音频流c的时间戳来确定,具体确定方式可以参见图2和图7所示的实施例的描述,此处不再赘述。
基于与上述方法实施例同样的发明构思,如图11所示,本申请实施例还提供了一种装置,所述装置可以包括:接收单元1101、处理单元1102和发送单元1103。
在一种可能的实施方式中,该装置实现上述方法中切换设备的功能。该装置可以是切换设备,也可以是切换设备中一个或者多个处理器,或者一个或者多个芯片。具体的,接收单元1101、处理单元1102和发送单元1103可以执行上述任意方法实施例中切换设备所执行的相应功能,详细的不再这里赘述。
本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能单元可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
基于相同的构思,如图12所示,为本申请提供的一种装置1200。装置1200中包括至少一个处理器1210,例如,执行上述实施例中。装置还可以包括至少一个存储器1220,用于存储程序指令和/或数据。存储器1220和处理器1210耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1210可能和存储器1220协同操作。处理器1210可能执行存储器1220中存储的程序指令,以供处理器1210调用,实现上述处理器1210的功能。可选的,所述至少一个存储器1220中的至少一个可以包括于处理器1210中。装置1200中还可以包括通信接口1230,装置1200可以通过通信接口1230和其它设备进行信息交互。通信接口1230可以是电路、总线、收发器或者其它任意可以用于进行信息交互的装置。
该装置1200应用于切换设备,具体装置1200可以是切换设备,也可以是能够支持切换设备实现上述任一实施例所述的方法中切换设备的功能的装置。示例性地,该装置1200中的至少一个处理器1210用于实现上述任一实施例所述的方法中切换设备的功能。
示例性地,装置1200可以是芯片或芯片系统。可选的,在本申请实施例中芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例中不限定上述通信接口1230、处理器1210以及存储器1220之间的具体连接介质。本申请实施例在图12中以存储器1220、处理器1210以及通信接口1230之间通过总线连接,总线在图12中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于以上实施例,本申请实施例还提供了一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现上述任意一个或多个实施例提供的方法。该计算机存储介质可以包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
基于以上实施例,本申请实施例还提供了一种芯片,该芯片包括处理器,用于实现上述任意一个或多个实施例所涉及的功能,例如获取或处理上述方法中所涉及的信息或者消息。可选地,该芯片还包括存储器,该存储器,用于处理器所执行必要的程序指令和数据。该芯片,可以由芯片构成,也可以包含芯片和其他分立器件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (18)

1.一种音频流切换方法,其特征在于,包括:
切换设备接收切换指令,所述切换指令指示从传输的第一音频流切换到第二音频流;
所述切换设备根据第一音频流的第一报文的时间戳和第二音频流的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系;其中,第一报文的接收时间与第二报文的接收时间相同;
所述切换设备根据所述同步关系和所述第一报文的时间戳确定所述第一音频流的切换点参数值,以及根据所述同步关系以及所述第二报文的时间戳确定所述第二音频流的切换点参数值,所述切换点参数值为切换点的时间戳或者切换点的序列号;
所述切换设备将第一音频流中参数值大于所述第一音频流的切换点参数值的报文切换为所述第二音频流中参数值大于所述第二音频流的切换点参数值的报文。
2.如权利要求1所述的方法,其特征在于,所述切换设备根据第一音频流的第一报文的时间戳和第二音频流的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系,包括:
当所述第一音频流的采样率以及所述第二音频流的采样率不相同时,所述切换设备以基准采样率为基准,根据所述第一音频流的采样率以及所述第二音频流的采样率对所述第一报文的时间戳和所述第二报文的时间戳进行统一;所述切换设备根据统一后的第一报文的时间戳和统一后的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系;
其中,所述第一音频流的采样率基于接收到的所述第一音频流中的N个报文的时间戳确定,所述第二音频流的采样率基于接收到的所述第二音频流中的M个报文的时间戳确定,M和N均为正整数;所述基准采样率为第一音频流的采样率,或者第二音频流的采样率,或者预设采样率。
3.如权利要求2所述的方法,其特征在于,所述第一音频流和第二音频流的采样率通过如下方式确定:
所述切换设备获取第一音频流的第一时间戳增量组以及第二音频流的第二时间戳增量组;
其中,所述第一时间戳增量组包括基于所述N个报文的时间戳确定的N-1个第一时间戳增量,所述第二时间戳增量组包括基于所述M个报文的时间戳确定的M-1个第二时间戳增量;
所述第一时间戳增量为连续接收的所述第一音频流中的两个报文的时间戳的差,所述第二时间戳增量为连续接收的所述第二音频流中的两个报文的时间戳的差;或者所述第一时间戳增量为接收到的所述第一音频流中的相邻报文时间戳的差,所述第二时间戳增量为接收的所述第二音频流中的相邻报文时间戳的差;
所述切换设备根据所述第一时间戳增量组确定所述第一音频流的采样率,以及根据第二时间戳增量组确定所述第二音频流的采样率。
4.如权利要求3所述的方法,其特征在于,所述N个报文为在接收到所述切换指令后接收的第一音频流中的前N个报文,所述M个报文为在接收到所述切换指令后接收的第二音频流中的前M个报文,所述N等于M。
5.如权利要求4所述的方法,其特征在于,所述第一报文为第一音频流中完成确定所述第一音频流的采样率时所接收的报文,所述第二报文为第二音频流中完成确定所述第二音频流的音频信息时所接收的报文。
6.如权利要求2-5任一所述的方法,其特征在于,所述切换设备根据所述同步关系和所述第一报文的时间戳确定第一音频流的切换点参数值,以及根据所述同步关系和所述第二报文的时间戳确定第二音频流的切换点参数值,包括:
所述切换设备根据所述同步关系、所述第一报文的时间戳和所述第一音频流的报文时长确定所述第一音频流的切换点参数值,根据所述同步关系、所述第二报文的时间戳和所述第二音频流的报文时长确定所述第二音频流的切换点参数值;
其中,所述第一音频流的报文时长基于所述N个报文的时间戳确定,所述第二音频流的报文时长基于所述M个报文的时间戳确定。
7.如权利要求6所述的方法,其特征在于,所述第一音频流和第二音频流的切换点的报文时间戳满足如下条件:
若根据统一后的所述第一报文的时间戳与统一后的所述第二报文的时间戳确定所述第一音频流与所述第二音频流同步,则TSi_SW=TSi+K1/ti_pkt*dtsi;TSo_SW=TSo+K1/to_pkt*dtso
或者,
若统一后的所述第一报文的时间戳晚于统一后的所述第二报文的时间戳,则TSi_SW=TSi+K1/ti_pkt*dtsi;TSo_SW=TSo+(tnsync+K1)/to_pkt*dtso
或者,
若统一后的所述第一报文的时间戳早于统一后的所述第二报文的时间戳,TSi_SW=TSi+(tnsync+K2)/ti_pkt*dtsi;TSo_SW=TSo+K2/to_pkt*dtso
其中,tnsync=|TSo 0-TSi 0|/fio,TSo 0表示统一后所述第一报文的时间戳,TSi 0表示所述统一后所述第二报文的时间戳,fio表示所述基准采样率,TSi_SW表示所述第二音频流的切换点的时间戳,TSi表示统一前所述第二报文的时间戳,ti_pkt表示所述第二音频流的报文时长,dtsi表示第二音频流的采样率对应的相邻报文时间戳差的理论值,TSo_SW表示所述第一音频流的切换点的时间戳,TSo表示统一前所述第一音频流的时间戳,to_pkt表示所述第一音频流的报文时长,dtso表示第一音频流的采样率对应的相邻报文时间戳差的理论值,K1表示第一预设时长,K2表示第二预设时长。
8.如权利要求6所述的方法,其特征在于,待确定音频流的报文时长满足如下条件,所述待确定音频流为第一音频流或者第二音频流:
Figure FDA0003074083680000021
待确定音频流的报文时长为第一数值;
Figure FDA0003074083680000022
待确定音频流的报文时长为第二数值;
其中,
Figure FDA0003074083680000023
Figure FDA0003074083680000024
表示基于待确定音频流的时间戳增量组确定的时间戳增量平均值,dTSthres与不同报文时长对应的相邻报文时间戳差的理论值有关,dTSi表示待确定音频流的时间戳增量组中第i个时间戳增量,dSEQi表示第i个时间戳增量对应的两个报文的序列号差值,w表示所述待确定音频流的时间戳增量组中时间戳增量的数量。
9.如权利要求3-5任一所述的方法,其特征在于,所述切换设备根据所述第一时间戳增量组确定所述第一音频流的采样率,包括:
根据N-1个第一时间戳增量、每个第一时间戳增量对应的两个报文的序列号差,以及所述切换设备所支持的多个理论采样率分别对应的相邻报文时间戳差的理论值,进行线性拟合,得到多个第一拟合误差;
确定多个第一拟合误差中最小第一拟合误差对应的相邻报文时间戳差的理论值;
将最小第一拟合误差对应的相邻报文时间戳差的理论值所对应的理论采样率作为所述第一音频流的采样率;
或者,
所述切换设备根据所述第二时间戳增量组确定所述第二音频流的采样率,包括:
根据M-1个第二时间戳增量、每个第二时间戳增量对应的两个报文的时间戳差,以及所述切换设备所支持的多个理论采样率分别对应的相邻报文时间戳差的理论值,进行线性拟合,得到多个第二拟合误差;
确定多个第二拟合误差中最小第二拟合误差对应的相邻报文时间戳差的理论值;
将最小第二拟合误差对应的相邻报文时间戳差的理论值所对应的理论采样率作为所述第二音频流的采样率。
10.一种音频流切换装置,其特征在于,包括:
接收单元,用于接收切换指令,所述切换指令指示从传输的第一音频流切换到第二音频流;
处理单元,用于根据第一音频流的第一报文的时间戳和第二音频流的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系;其中,第一报文的接收时间与第二报文的接收时间相同;根据所述同步关系和所述第一报文的时间戳确定所述第一音频流的切换点参数值,以及根据所述同步关系以及所述第二报文的时间戳确定所述第二音频流的切换点参数值,所述切换点参数值为切换点的时间戳或者切换点的序列号;
发送单元,用于将第一音频流中参数值大于所述第一音频流的切换点参数值的报文切换为所述第二音频流中参数值大于所述第二音频流的切换点参数值的报文。
11.如权利要求10所述的装置,其特征在于,所述处理单元,在根据第一音频流的第一报文的时间戳和第二音频流的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系时,具体用于:
当所述第一音频流的采样率以及所述第二音频流的采样率不相同时,以基准采样率为基准,根据所述第一音频流的采样率以及所述第二音频流的采样率对所述第一报文的时间戳和所述第二报文的时间戳进行统一;根据统一后的第一报文的时间戳和统一后的第二报文的时间戳确定所述第一音频流和所述第二音频流的同步关系;
其中,所述第一音频流的采样率基于接收到的所述第一音频流中的N个报文的时间戳确定,所述第二音频流的采样率基于接收到的所述第二音频流中的M个报文的时间戳确定,M和N均为正整数;所述基准采样率为第一音频流的采样率,或者第二音频流的采样率,或者预设采样率。
12.如权利要求11所述的装置,其特征在于,所述处理单元,还用于通过如下方式获取第一音频流和第二音频流的采样率:
获取第一音频流的第一时间戳增量组以及第二音频流的第二时间戳增量组;
其中,所述第一时间戳增量组包括基于所述N个报文的时间戳确定的N-1个第一时间戳增量,所述第二时间戳增量组包括基于所述M个报文的时间戳确定的M-1个第二时间戳增量;
所述第一时间戳增量为连续接收的所述第一音频流中的两个报文的时间戳的差,所述第二时间戳增量为连续接收的所述第二音频流中的两个报文的时间戳的差;或者所述第一时间戳增量为接收到的所述第一音频流中的相邻报文时间戳的差,所述第二时间戳增量为接收的所述第二音频流中的相邻报文时间戳的差;
根据所述第一时间戳增量组确定所述第一音频流的采样率,以及根据第二时间戳增量组确定所述第二音频流的采样率。
13.如权利要求12所述的装置,其特征在于,所述N个报文为在接收到所述切换指令后接收的第一音频流中的前N个报文,所述M个报文为在接收到所述切换指令后接收的第二音频流中的前M个报文,所述N等于M。
14.如权利要求13所述的装置,其特征在于,所述第一报文为第一音频流中完成确定所述第一音频流的采样率时所接收的报文,所述第二报文为第二音频流中完成确定所述第二音频流的音频信息时所接收的报文。
15.如权利要求11-14任一所述的装置,其特征在于,所述处理单元,在根据所述同步关系和所述第一报文的时间戳确定第一音频流的切换点参数值,以及根据所述同步关系和所述第二报文的时间戳确定第二音频流的切换点参数值时,具体用于:
根据所述同步关系、所述第一报文的时间戳和所述第一音频流的报文时长确定所述第一音频流的切换点参数值,根据所述同步关系、所述第二报文的时间戳和所述第二音频流的报文时长确定所述第二音频流的切换点参数值;
其中,所述第一音频流的报文时长基于所述N个报文的时间戳确定,所述第二音频流的报文时长基于所述M个报文的时间戳确定。
16.如权利要求15所述的装置,其特征在于,所述第一音频流和第二音频流的切换点的报文时间戳满足如下条件:
若根据统一后的所述第一报文的时间戳与统一后的所述第二报文的时间戳确定所述第一音频流与所述第二音频流同步,则TSi_SW=TSi+K1/ti_pkt*dtsi;TSo_SW=TSo+K1/to_pkt*dtso
或者,
若统一后的所述第一报文的时间戳晚于统一后的所述第二报文的时间戳,则TSi_SW=TSi+K1/ti_pkt*dtsi;TSo_SW=TSo+(tnsync+K1)/to_pkt*dtso
或者,
若统一后的所述第一报文的时间戳早于统一后的所述第二报文的时间戳,TSi_SW=TSi+(tnsync+K2)/ti_pkt*dtsi;TSo_SW=TSo+K2/to_pkt*dtso
其中,tnsync=|TSo 0-TSi 0|/fio,TSo 0表示统一后所述第一报文的时间戳,TSi 0表示所述统一后所述第二报文的时间戳,fio表示所述基准采样率,TSi_SW表示所述第二音频流的切换点的时间戳,TSi表示统一前所述第二报文的时间戳,ti_pkt表示所述第二音频流的报文时长,dtsi表示第二音频流的采样率对应的相邻报文时间戳差的理论值,TSo_SW表示所述第一音频流的切换点的时间戳,TSo表示统一前所述第一音频流的时间戳,to_pkt表示所述第一音频流的报文时长,dtso表示第一音频流的采样率对应的相邻报文时间戳差的理论值,K1表示第一预设时长,K2表示第二预设时长。
17.如权利要求15所述的装置,其特征在于,待确定音频流的报文时长满足如下条件,所述待确定音频流为第一音频流或者第二音频流:
Figure FDA0003074083680000041
待确定音频流的报文时长为第一数值;
Figure FDA0003074083680000042
待确定音频流的报文时长为第二数值;
其中,
Figure FDA0003074083680000051
Figure FDA0003074083680000052
表示基于待确定音频流的时间戳增量组确定的时间戳增量平均值,dTSthres与不同报文时长对应的相邻报文时间戳差的理论值有关,dTSi表示待确定音频流的时间戳增量组中第i个时间戳增量,dSEQi表示第i个时间戳增量对应的两个报文的序列号差值,w表示所述待确定音频流的时间戳增量组中时间戳增量的数量。
18.如权利要求12-14任一所述的装置,其特征在于,所述处理单元,在根据所述第一时间戳增量组确定所述第一音频流的采样率时,具体用于:
根据N-1个第一时间戳增量、每个第一时间戳增量对应的两个报文的序列号差,以及所述切换设备所支持的多个理论采样率分别对应的相邻报文时间戳差的理论值,进行线性拟合,得到多个第一拟合误差;
确定多个第一拟合误差中最小第一拟合误差对应的相邻报文时间戳差的理论值;
将最小第一拟合误差对应的相邻报文时间戳差的理论值所对应的理论采样率作为所述第一音频流的采样率;
或者,
所述处理单元,在根据所述第二时间戳增量组确定所述第二音频流的采样率,具体用于:
根据M-1个第二时间戳增量、每个第二时间戳增量对应的两个报文的时间戳差,以及所述切换设备所支持的多个理论采样率分别对应的相邻报文时间戳差的理论值,进行线性拟合,得到多个第二拟合误差;
确定多个第二拟合误差中最小第二拟合误差对应的相邻报文时间戳差的理论值;
将最小第二拟合误差对应的相邻报文时间戳差的理论值所对应的理论采样率作为所述第二音频流的采样率。
CN201811526743.7A 2018-12-13 2018-12-13 一种音频流切换方法及装置 Active CN111327923B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201811526743.7A CN111327923B (zh) 2018-12-13 2018-12-13 一种音频流切换方法及装置
PCT/CN2019/123728 WO2020119605A1 (zh) 2018-12-13 2019-12-06 一种音频流切换方法及装置
JP2021533722A JP7284266B2 (ja) 2018-12-13 2019-12-06 オーディオストリーム切り替え方法および装置
KR1020217019455A KR102519514B1 (ko) 2018-12-13 2019-12-06 오디오 스트림 스위칭 방법 및 장치
EP19897159.0A EP3879836B1 (en) 2018-12-13 2019-12-06 Audio stream switching method and device
US17/345,689 US11995375B2 (en) 2018-12-13 2021-06-11 Audio stream switching method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811526743.7A CN111327923B (zh) 2018-12-13 2018-12-13 一种音频流切换方法及装置

Publications (2)

Publication Number Publication Date
CN111327923A CN111327923A (zh) 2020-06-23
CN111327923B true CN111327923B (zh) 2021-08-20

Family

ID=71077136

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811526743.7A Active CN111327923B (zh) 2018-12-13 2018-12-13 一种音频流切换方法及装置

Country Status (6)

Country Link
US (1) US11995375B2 (zh)
EP (1) EP3879836B1 (zh)
JP (1) JP7284266B2 (zh)
KR (1) KR102519514B1 (zh)
CN (1) CN111327923B (zh)
WO (1) WO2020119605A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN119155493A (zh) * 2023-06-15 2024-12-17 广州视源电子科技股份有限公司 一种数据同步方法、装置、存储介质及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102347042A (zh) * 2010-07-28 2012-02-08 Tcl集团股份有限公司 一种音轨切换方法、系统及音视频文件播放设备
CN105657579A (zh) * 2015-10-29 2016-06-08 乐视致新电子科技(天津)有限公司 直播音频切换方法、流媒体服务器及客户端
CN106488255A (zh) * 2016-10-24 2017-03-08 广州酷狗计算机科技有限公司 一种切换媒体流的方法及装置
CN106921885A (zh) * 2017-03-02 2017-07-04 深圳创维数字技术有限公司 一种多媒体数据流的切换播放方法及装置
CN107197394A (zh) * 2017-05-05 2017-09-22 中广热点云科技有限公司 一种视频播放中音频切换的方法
CN108540734A (zh) * 2018-05-16 2018-09-14 中央电视台 一种4k视音频信号的切换方法、装置、系统及电子设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2040436A1 (en) * 2007-09-18 2009-03-25 THOMSON Licensing Access network handover for a mobile television system
JP5346234B2 (ja) 2009-03-30 2013-11-20 Necパーソナルコンピュータ株式会社 ストリーム処理装置及びプログラム
DE102011078021A1 (de) * 2011-06-22 2012-12-27 Institut für Rundfunktechnik GmbH Vorrichtung und Verfahren zum Schalten von Echtzeitmedienströmen
CN102291399B (zh) * 2011-08-08 2015-07-22 成都索贝数码科技股份有限公司 一种流媒体切换台
US9154834B2 (en) * 2012-11-06 2015-10-06 Broadcom Corporation Fast switching of synchronized media using time-stamp management
CN103812842A (zh) * 2012-11-14 2014-05-21 中国科学院沈阳计算技术研究所有限公司 用于网络广播的流媒体切换矩阵及其播控方法
US9860458B2 (en) * 2013-06-19 2018-01-02 Electronics And Telecommunications Research Institute Method, apparatus, and system for switching transport stream
CN105979347A (zh) * 2015-12-03 2016-09-28 乐视致新电子科技(天津)有限公司 一种视频的播放方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102347042A (zh) * 2010-07-28 2012-02-08 Tcl集团股份有限公司 一种音轨切换方法、系统及音视频文件播放设备
CN105657579A (zh) * 2015-10-29 2016-06-08 乐视致新电子科技(天津)有限公司 直播音频切换方法、流媒体服务器及客户端
CN106488255A (zh) * 2016-10-24 2017-03-08 广州酷狗计算机科技有限公司 一种切换媒体流的方法及装置
CN106921885A (zh) * 2017-03-02 2017-07-04 深圳创维数字技术有限公司 一种多媒体数据流的切换播放方法及装置
CN107197394A (zh) * 2017-05-05 2017-09-22 中广热点云科技有限公司 一种视频播放中音频切换的方法
CN108540734A (zh) * 2018-05-16 2018-09-14 中央电视台 一种4k视音频信号的切换方法、装置、系统及电子设备

Also Published As

Publication number Publication date
KR20210091319A (ko) 2021-07-21
EP3879836B1 (en) 2023-02-08
EP3879836A1 (en) 2021-09-15
US20210303259A1 (en) 2021-09-30
US11995375B2 (en) 2024-05-28
JP7284266B2 (ja) 2023-05-30
JP2022513833A (ja) 2022-02-09
EP3879836A4 (en) 2021-12-01
WO2020119605A1 (zh) 2020-06-18
KR102519514B1 (ko) 2023-04-06
CN111327923A (zh) 2020-06-23

Similar Documents

Publication Publication Date Title
US9338208B2 (en) Common event-based multidevice media playback
CN111147907B (zh) 多智能终端同步播放的方法、装置、系统及智能终端
US8762580B2 (en) Common event-based multidevice media playback
US10454811B2 (en) Apparatus and method for de-jitter buffer delay adjustment
US9843489B2 (en) System and method for synchronous media rendering over wireless networks with wireless performance monitoring
CN111629158B (zh) 一种音频流和视频流同步切换方法及装置
US11146611B2 (en) Lip synchronization of audio and video signals for broadcast transmission
CN102118243B (zh) 基于发射机时间戳信息的用于同步通信的低抖动端到端延迟控制方案
JP6290915B2 (ja) 共通イベントベースのマルチデバイスメディア再生
US7953004B2 (en) Minimizing effects of packet delay variation in time-division multiplexing pseudowire services
US9118678B2 (en) Indirect clock measuring and media adjustment
US10686897B2 (en) Method and system for transmission and low-latency real-time output and/or processing of an audio data stream
JP2015056732A (ja) 無線通信システム、無線通信方法、プログラム、及び記録媒体
CN108989246B (zh) 使用稀疏流的设备之间的音频传输
CN111327923B (zh) 一种音频流切换方法及装置
CN114422589B (zh) 数据传输方法、装置、设备及存储介质
JP6827607B2 (ja) 中継装置、中継方法及び中継プログラム
WO2016134186A1 (en) Synchronous media rendering over wireless networks with wireless performance monitoring
WO2023078232A1 (zh) 一种传输方法及装置
CN115278857B (zh) 一种抗干扰的音频数据传输方法及装置
CN112671696B (zh) 报文传输方法、装置、计算机设备以及计算机存储介质
BR112017018324B1 (pt) Método para gerenciar um tempo inicial de conteúdo de mídia em um aparelho receptor, memória não transitória legível por computador e aparelho receptor

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