将音频文件拆分为指定长度的块

And*_*ong 22 audio windows audio-conversion

我有几个长音频文件(每个 80 分钟;m4a)并希望将它们分成 5 或 10 分钟的片段。

我看到很多关于在延长的停顿、音调等处分割音频文件的问题,但似乎找不到关于这个简单操作的问题。有谁知道一个简单的方法来做到这一点?

当然,自动和命令行也可以——甚至是首选。

提前致谢!

slh*_*hck 28

使用最近的 ffmpeg(从这里下载静态构建):

ffmpeg -i in.m4a -f segment -segment_time 300 -c copy out%03d.m4a
Run Code Online (Sandbox Code Playgroud)

这使用段复用器并复制比特流。如果您的文件有音频和视频流,您可以使用-vn.


这是一个单行程序,您只需要安装RubyFFmpeg

ruby -e '(0..4500).step(300) { |x| system "ffmpeg -ss #{x} -i in.m4a -c copy -t 300 out-#{x}.m4a"}'
Run Code Online (Sandbox Code Playgroud)

只需在同一个文件夹中执行它in.m4a。它将复制音频比特流,因此执行此操作可能需要不到几秒钟的时间。

解释:

  • 4800 秒是音频文件的长度(80 分钟 × 60 秒),所以我们最后的分割是 4500(4800 - 300 秒)。
  • 我们从 0 到 4500,每 300 秒(5 分钟 × 60 秒)分割一次。
  • FFmpeg 将在指定的时间启动 -ss
  • 它会在指定的时间内复制 -t
  • 它将写入多个名为 的输出文件out-<x>.mp4,其中<x>以秒为单位的开始时间。

  • 如果像我一样,您的 m4a 文件包含视频流(在我的情况下,是单个图像),那么您需要添加 `-vn` 开关以仅选择音频流。如果要保留视频流,则需要输出到扩展名为 .mp4 的文件。 (2认同)