倍速播放通常有两种方式:一种是变速变调,另一种是变速不变调

一.变速变调

这种方法的原理就是音频重采样。比如说44100Hz采样率的音频,每秒钟有44100个采样点,如果我们要加速为200%播放,最简单的方法是将解码出来的音频数据,均匀的扔掉一部分即可。解码出来44100个采样点,本来可以播放1s的时长,我扔掉一半,那么我们就只剩下 22050 个采样点,仍然按照 44100 的采样率去播放,那么我们就只能播放0.5s的时长,这样音频的播放速率就变为了200%。
如果原始采样率为44100Hz,播放速度为speed,那么重采样的采样率计算公式为:
newSamprate = 44100 * 100.0 / speed;
我们以 newSamprate的采样率对解码出来的原始音频进行重采样,然后仍然以原来的44100Hz的速率去播,就实现了音频的变速播放。音频的重采样,详见:基于FFmpeg的视频播放器之八:音频重采样

二.变速不变调

这种方法需借助第三方库,常用的有sonic和soundtouch,本客户端就是采用soundtouch加速音频播放,因为采用的同步策略的是视频同步到音频,因此当音频加速播放时,视频也会加速。

1.soundtouch

soundtouch是一个用C++编写的开源的音频处理库,可以改变音频文件或实时音频流的节拍(Tempo)、音调(Pitch)、速率(Rat

基于FFmpeg的视频播放器之十一:倍速播放相关推荐

  1. 基于FFmpeg的视频播放器之十五:录像

    一.效果 1.录制视频 2.播放录制的视频 二.原理 将上一篇基于FFmpeg的视频播放器之十四:remuxing中的代码直接用于录像是行不通的,会存在下列问题. 1.因为可以从任意时间点开始录制,此 ...

  2. 酷播云html5倍速功能视频播放器,可以倍速播放视频的浏览器插件

    可以倍速播放视频的浏览器插件 Video Speed Controller 是一款倍速播放视频的浏览器插件! 现在网站上播放的视频,基本上都可以实现倍速播放,但偶尔也有些网站上的视频:没有倍速播放功能 ...

  3. 基于FFmpeg的视频播放器之十六:完结

    学习FFmpeg个人认为是不需要买书的,只需利用好下面四种资源 1.优秀的博客,比如雷神的博客:https://blog.csdn.net/leixiaohua1020 2.FFmppeg的exanm ...

  4. Ubuntu18.04下 安装SMPlyer视频播放器 设置倍速播放

    安装方法 添加源,需要按回车键继续 sudo apt-add-repository ppa:rvm/smplayer 更新 sudo apt-get update 安装SMPlyer sudo apt ...

  5. 基于FFmpeg的视频播放器之十二:seek

    seek是播放器的常用操作,也是衡量播放器好坏的重要标志之一. 一.效果 下面是对正在播放的4K视频执行seek操作 二.原理 1.av_seek_frame FFmpeg提供了av_seek_fra ...

  6. 基于FFmpeg的视频播放器之十三:抓图

    抓图的话当然可以用QImage来实现,但是得先把yuv图像转成图像再通过QImage保持,比较麻烦.这里直接通过ffmpeg从视频流中抓取图片,也就是在yuv渲染之前抓取. 整个takeSnapsho ...

  7. ffplay使用ffmpeg滤镜实现倍速播放

    第一章 自定义播放器接口 第二章 倍速播放(本章) ______第一节 sonic实现倍速播放 ______第二节 soundtouch实现倍速播放 ______第三节 ffmpeg滤镜实现倍速播放( ...

  8. 从零开始学习音视频编程技术(七) FFMPEG Qt视频播放器之SDL的使用

    从零开始学习音视频编程技术(七) FFMPEG Qt视频播放器之SDL的使用 原文地址:http://blog.yundiantech.com/?log=blog&id=10 前面介绍了使用F ...

  9. 从零开始学习音视频编程技术(六) FFMPEG Qt视频播放器之显示图像

    从零开始学习音视频编程技术(六) FFMPEG Qt视频播放器之显示图像 原文地址:http://blog.yundiantech.com/?log=blog&id=9 前面讲解了如何用FFM ...

最新文章

  1. Springboot结合 framework 加载静资源 出现404 问题解决 记录
  2. 【习题4-1 Uva1589】Xiangqi
  3. Eclipse中部署hadoop2.3.0
  4. 判断两线段是否相交——快速排斥与跨立实验
  5. 计算机一级办公软件试题,计算机一级《MS Office》练习题(含答案)
  6. 解决The total number of locks exceeds the lock table size错误
  7. java map的遍历
  8. 【转】STM32中的抢占优先级、响应优先级概念
  9. css 3小时从入门到略通
  10. 进度条上的小圆点怎么做_Android自定义带圆点的半圆形进度条
  11. 内容页超连接关键词的完美实现
  12. python3 format用法_python3 str.format()的使用
  13. Cocos2d-x 地图行走的实现3:A*算法
  14. HBase与Zookeeper数据结构查询
  15. paip.表格化CSV输出
  16. 思科网络综合实验(服务器,三层交换机,路由器)
  17. VS中的debug和releasse版本的区别
  18. PHP教程5-安装PHPNow
  19. 前端弹出对话框 js实现 ajax交互
  20. Docker - Dockerfile之FROM、ARG、LABEL、MAINTAINER、RUN、CMD指令详解

热门文章

  1. ajax java首字母检索_AJAX的拼音首字母查找对应中文的portlet
  2. 洛谷 P1551 亲戚
  3. RFID在固定资产盘点系统中的应用
  4. java哪些类重写equals方法_Java自定义类中重写equals方法
  5. PWM的周期和占空比是如何计算
  6. .so文件移动游戏破解范例
  7. 解决双击tomcat startup.bat的弹框一闪而过的问题,以及如何配置 jre_home 和 java_home
  8. shell_小技巧_掐头去尾法
  9. 【论文阅读】【综述】从Optical Flow到Scene Flow
  10. 推荐画UML图以及流程图的在线网站Site