将MP3裁剪到前30秒

mp3 ffmpeg

63587 观看

9回复

27151 作者的声誉

原始问题

我希望能够从现有的MP3文件生成一个新的(完全有效的)MP3文件以用作预览-先试后买的风格。新文件应仅包含曲目的前n秒。

现在,我知道我可以在传送文件时在n秒(根据比特率和标头大小)“切碎流” ,但这有点脏,并且在VBR轨道上是真正的PITA。我希望能够生成正确的MP3文件。

有任何想法吗?

答案

这两个mp3splitffmpeg都是很好的解决方案。我选择ffmpeg是因为它通常安装在linux服务器上,并且也可以轻松地用于Windows。这是一些使用ffmpeg生成预览的更好的命令行参数

  • -t <seconds> 指定秒数后斩
  • -y 强制覆盖文件
  • -ab <bitrate>设置比特率,例如-ab 96k
  • -ar <rate Hz>设置采样率,例如-ar 22050 for 22.05kHz
  • -map_meta_data <outfile>:<infile> 将轨道元数据从infile复制到outfile

您可以按照Tim Farley的建议,复制原始的轨道设置,而不用设置-ab和-ar:

  • -acodec copy
作者: Cheekysoft 的来源 发布者: 2008 年 9 月 4 日

回应 (9)


3

19802 作者的声誉

我尚未将其用于此特定目的,但我敢打赌ffmpeg可以做到。

作者: grapefrukt 发布者: 04.09.2008 02:38

17

70223 作者的声誉

尝试:

ffmpeg -t 30 -i inputfile.mp3 outputfile.mp3
作者: John Boker 发布者: 04.09.2008 02:45

5

14286 作者的声誉

您可能想尝试Mp3Splt

我以前在简单包装mp3splt.exe win32进程的C#服务中使用过它。我认为可以在您的Linux / PHP场景中完成类似的操作。

作者: Ryan Duffield 发布者: 04.09.2008 02:45

128

10057 作者的声誉

决定

我还建议使用ffmpeg,但是John Boker建议的命令行会产生意想不到的副作用:它将文件重新编码为默认比特率(至少在我这里使用的版本中为64 kb / s)。这可能使您的客户对声音文件的质量有错误的印象,并且还需要花费更长的时间。

这是一个可以在不进行转码的情况下缩减为30秒的命令行:

ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3

-acodec开关告诉ffmpeg使用不进行转码的特殊“复制”编解码器。闪电般快。

注意:该命令已根据Oben Sonne的评论进行了更新

作者: Tim Farley 发布者: 04.09.2008 03:42

52

2701 作者的声誉

如果您想删除前30秒(保留剩余的时间),请使用以下命令:

ffmpeg -ss 30 -i inputfile.mp3 -acodec copy outputfile.mp3
作者: the.jxc 发布者: 27.05.2010 11:30

11

22502 作者的声誉

您可以使用mp3cut:

cutmp3 -i foo.mp3 -O 30s.mp3 -a 0:00.0 -b 0:30.0

这是在Ubuntu回购,所以才:sudo apt-get install cutmp3

作者: Michał Šrajer 发布者: 19.09.2011 12:15

0

1 作者的声誉

我在执行相同操作时遇到错误

Invalid audio stream. Exactly one MP3 audio stream is required.
Could not write header for output file #0 (incorrect codec parameters     ?): Invalid argumentStream mapping:

对我来说,解决方法是:

ffmpeg -ss 00:02:43.00 -t 00:00:10 -i input.mp3 -codec:a libmp3lame out.mp3
作者: Mithun Cheriyath 发布者: 02.12.2016 02:41

10

521 作者的声誉

此命令也可以完美运行。我将音乐文件从20秒裁剪到40秒。

-y:强制输出文件覆盖。

ffmpeg -i test.mp3 -ss 00:00:20 -to 00:00:40 -c copy -y temp.mp3
作者: Rahul Chauhan 发布者: 14.06.2017 06:03

0

183 作者的声誉

medipack是一个非常简单的命令行应用程序,可以作为包装ffmpeg

您可以使用以下命令来修剪视频:

medipack trim input.mp3 -s 00:00 -e 00:30 -o output.mp3
medipack trim input.mp3 -s 00:00 -t 00:30 -o output.mp3

您可以按以下方式查看trim子命令的选项:

srb@srb-pc:$ medipack trim -h
usage: medipack trim [-h] [-s START] [-e END | -t TIME] [-o OUTPUT] [inp]

positional arguments:
  inp                   input video file ex: input.mp4

optional arguments:
  -h, --help            show this help message and exit
  -s START, --start START
                        start time for cuting in format hh:mm:ss or mm:ss
  -e END, --end END     end time for cuting in format hh:mm:ss or mm:ss
  -t TIME, --time TIME  clip duration in format hh:mm:ss or mm:ss
  -o OUTPUT, --output OUTPUT

您也可以使用 medipack -h

srb@srb-pc:$ medipack --help
usage: medipack.py [-h] [-v] {trim,crop,resize,extract} ...

positional arguments:
  {trim,crop,resize,extract}

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         Display version number

您可以访问https://github.com/srbcheema1/medipack并在README中查看示例。

作者: srbcheema1 发布者: 02.09.2019 11:33
32x32