android学习音频拉流 opensL es播放音频流 。音视频同步。

1音频播放的几种方式。。。。

android学习音频拉流 opensL es播放音频流 。音视频同步。

2.opensL es播放

android学习音频拉流 opensL es播放音频流 。音视频同步。

3.播放的过程。

android学习音频拉流 opensL es播放音频流 。音视频同步。

4.音视频同步。。

不能通过帧率实现音视频同步,用timebase 。

avRatation  num/den 。。

正常的视频延时就是  framedelay =1/tps.

stream->timebase;需要以音频为参考。

clock记录想对音频的时间线。。

clock=frame—》tps 。显示事件事件戳。。然后再*一个timebase。。

video去拿到audio中的clock  同时计算出video的clock 

计算clockdiff。。

如果clock-audioclock 大于0,这说明视频超前了。。视频比音频块。。

休眠事件av_usleep (1/ftp+clockdiff). 注意时间是微秒。

将解码的事件算进去。由于差点的手机。解码时间需要多一些。

同步的延时就是delay=framedelay+解码时间。frame->repeat_dict /(2*tps)就是解压时间。

如果是 if(diff>1) name就是要 av_usleep(delay*2*1000000)

如果可控的就是  av_usleep(delay*1000000)

如果小于0.也就是说明音频超前。音频比视频快了。。。。最快的方法是不休眠。。。

diff>1 就是太恐怖。。就是不休眠。

如果diff>0.05 就丢帧,减少延时时间。。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容