一、音视频的播放速度:
1、对于Video,有 framerate,解码器可以根据framerate的速度了解码,比如说30 fps的码流,视频解码器以33ms的速度来显示每一帧。
2、对于Audio,可以通过以下公式算出播放每一个frame的速度:
需要的参数sample rate,Bitrate,sameple per frame
For example: samples rate = 44.1 KHz
Bit Rate = 128 Kbps
Samples Per Frame of Mp3 stream = 1152
the size of sample = Bit Rate/ Samples rate = 128Kbps/44.1KHz = 2.9 bit
frame size = the size of the sample * samples per frame /8 = 417 Byte
The duration of one frame = frame size * 8/Bitrate = 417*8/128K = 26 ms
The duration of one frame = Samples per frame/sample rate = 1152/44100 = 26ms
对于纯视频或者是纯音频文件,个人觉得是可以上述参数来控制播放速度,但是对于音视频文件,这样来控制播放速度就又容易失步了。
二、音视频同步:
1、为了实现音视频同步,我们增加了Video/Audio DTS/PTS 参数,DTS 来控制什么时候解码,PTS来控制什么时候显示。
个人理解:DTS(Decode Time Stamp) 在DTS与local clock比较,DTS时机成熟的时候进行解码,但是一般都用decode buffer,只要decode output buffer空闲,就可以decode。
PTS(presentation time stamp): PTS与ref clock比较,在一定差值范围内显示出来。
2. video 或者 audio decode出来后,到显示出现,中间可能会有一定的处理时间,要把这个delay算上,也就是PTS+dispaly_delay < LPCR
3.有三种同步模式:
1)AUDIO_MASTER, 以音频为基准,视频去同步音频。/*默认用这样,audio delay的概率小一些,个人理解。视频解码复杂,性能消耗大,容易delay*/
2)VIDEO_MASTER, 以视频为基准,音频同步视频。
3)EXTERNAL_MASTER, 以外部clock为基准,音频和视频都去同步外部clock
1、对于Video,有 framerate,解码器可以根据framerate的速度了解码,比如说30 fps的码流,视频解码器以33ms的速度来显示每一帧。
2、对于Audio,可以通过以下公式算出播放每一个frame的速度:
需要的参数sample rate,Bitrate,sameple per frame
For example: samples rate = 44.1 KHz
Bit Rate = 128 Kbps
Samples Per Frame of Mp3 stream = 1152
the size of sample = Bit Rate/ Samples rate = 128Kbps/44.1KHz = 2.9 bit
frame size = the size of the sample * samples per frame /8 = 417 Byte
The duration of one frame = frame size * 8/Bitrate = 417*8/128K = 26 ms
The duration of one frame = Samples per frame/sample rate = 1152/44100 = 26ms
对于纯视频或者是纯音频文件,个人觉得是可以上述参数来控制播放速度,但是对于音视频文件,这样来控制播放速度就又容易失步了。
二、音视频同步:
1、为了实现音视频同步,我们增加了Video/Audio DTS/PTS 参数,DTS 来控制什么时候解码,PTS来控制什么时候显示。
个人理解:DTS(Decode Time Stamp) 在DTS与local clock比较,DTS时机成熟的时候进行解码,但是一般都用decode buffer,只要decode output buffer空闲,就可以decode。
PTS(presentation time stamp): PTS与ref clock比较,在一定差值范围内显示出来。
2. video 或者 audio decode出来后,到显示出现,中间可能会有一定的处理时间,要把这个delay算上,也就是PTS+dispaly_delay < LPCR
3.有三种同步模式:
1)AUDIO_MASTER, 以音频为基准,视频去同步音频。/*默认用这样,audio delay的概率小一些,个人理解。视频解码复杂,性能消耗大,容易delay*/
2)VIDEO_MASTER, 以视频为基准,音频同步视频。
3)EXTERNAL_MASTER, 以外部clock为基准,音频和视频都去同步外部clock