美文网首页@IT·互联网读书
FFmpeg 实现音视频倍速效果

FFmpeg 实现音视频倍速效果

作者: _结弦 | 来源:发表于2024-08-24 12:28 被阅读0次

调整视频帧数

命令

ffmpeg -r 1 -i 输入.m2v -r 24 输出.mp4

参数解释

  • -r(第一个) 调整输入视频的帧率
    如果视频共有2秒, 每秒25帧, 一共50帧, 调整出来的就是一秒1帧, 共50帧, 时长50秒
  • -r(第二个) 调整视频输出帧率
    视频时长为50秒, 时长不会随着-r的改变而改变, 每秒的帧会发生变化, 但是多出来的或少出来的帧会根据算法得出

现象

输入视频为2秒, 输出视频时长为 50秒, 音频时长不会发生变化

调整音频ar

pcm纯数据

纯文本音频播放速度会随着ar的改变而改变

ffplay -ar 8000  -f s16le video.pcm

mp3非纯数据

对于非纯数据来说, ar影响的是音频清晰度

ffplay -ar 44100 -f s16le video.mp3
44100
ffplay -ar 8000 -f s16le video.mp3
8000.png

atempo

对于mp3这种非纯文本格式的数据来说, 其实也可以修改采样处理来倍数播放, 但不是ar, ar叫做重采样
可以通过 atempo 过滤器来实现这种效果。atempo 过滤器可以改变音频的播放速度,同时保持音高不变。这实际上是通过改变每秒处理的数据量来实现的。是采样率的倍数

ffmpeg -i input.mp3 -af "atempo=2.0" output.mp3

个人理解

当atempo=1

  • 非纯文本数据
    假设ar=44100, 一共10s的数据包解压后得到4410010的大小, 音频播放速度和ar有关, 及4410010/44100=10s
  • 纯文本数据
    假设因为是纯文本数据, 没有指定ar, 数据包/ar=播放时长, 所以, 非纯文本数据会因为ar的改变而改变
image.png

相关文章

网友评论

    本文标题:FFmpeg 实现音视频倍速效果

    本文链接:https://www.haomeiwen.com/subject/mtogkjtx.html