前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一行命令实现视频、音频倍速

一行命令实现视频、音频倍速

作者头像
老肥码码码
发布2020-02-12 11:04:18
8900
发布2020-02-12 11:04:18
举报
文章被收录于专栏:算法与数据之美

最近小李看了一部悬疑爱情电视剧 《想见你》,看过的朋友估计都已经被伍佰的一首《last dance》洗了脑,相当上头。

所以暂时将你眼睛闭了起来 黑暗之中飘乎我的期待 平静脸孔映着缤纷色彩 让人好不疼爱

由于我是二倍速观看的视频,里面播放的歌曲也是二倍速。脱离开视频,我下载了这首歌试听之后,感觉截然不同,整体节奏放缓,不够洗脑,不符合新时代快节奏的生活,简而言之,没那味了。于是我便想要将此歌倍速播放,掏出了法宝FFmpeg。

改变音频速率

改变音频速率最简单的方法是直接调整音频的采样率,但是与此同时,这种方法会改变音频的音色。目前一般采用对原音进行重采样,差值等方法来实现。下面这行命令的倍率调整范围为0.5到2。

代码语言:javascript
复制
ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

如果想要再快的话,需要更改命令,通过将多个atempo过滤器串接在一起来绕过这个限制。

代码语言:javascript
复制
ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn output.mkv

改变视频速率

改变视频的播放速率是通过修改视频的表示时间戳(PTS)来实现的。举个简单的例子,如果在时间戳1和2处显示两个连续帧,我们想要加快视频速度,那么这两个时间戳需要分别变为0.5和1。因此,我们必须把他们乘以0.5。

代码语言:javascript
复制
ffmpeg -i input.mkv -r 16 -filter:v "setpts=0.5*PTS" output.mkv

对视频进行加速时,为了不丢帧,可以利用 -r 参数指定输出的fps。

一般来说,视频倍速还需要将视频中的音频也一同倍速,通过混合的过滤图实现,命令如下,

代码语言:javascript
复制
ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv

想要倍速播放视频、音乐的朋友不妨一试,另外洗脑歌曲二倍速lastdance送给大家!

参考文献

  • How to speed up/slow down a video
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与数据之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 改变音频速率
  • 改变视频速率
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档