播放MP3至前30秒

Che*_*oft 97 mp3 ffmpeg

原始问题

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

现在,我知道我可以在传送文件时在n秒(从比特率和标题大小计算)"切断流" ,但这有点脏,并且在VBR轨道上是真正的PITA.我希望能够生成一个合适的MP3文件.

任何想法?

答案

这两个mp3splitffmpeg都是很好的解决方案.我选择了ffmpeg,因为它通常安装在Linux服务器上,也很容易用于Windows.这里有一些更好的命令行参数,用于使用ffmpeg生成预览

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

而不是设置-ab和-ar,您可以像Tim Farley建议的那样复制原始曲目设置:

  • -acodec copy

Tim*_*ley 130

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

这是一个命令行,在没有转码的情况下切片到30秒:

ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3
Run Code Online (Sandbox Code Playgroud)

-acodec开关告诉ffmpeg使用不转码的特殊"复制"编解码器.它闪电般快速.

注意:该命令是根据Oben Sonne的评论更新的

  • 最近的`ffmpeg`版本(至少从0.10.6开始)根据位置不同地解释选项.输入相关的选项必须出现在`-i ...'之前,输出相关的选项必须出现在`-i ...`之后.这意味着`ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3`将*现在*是正确的答案. (19认同)
  • 如果要设置开始时间(偏移量),可以使用[`-ss hh:mm:ss [.xxx]`](https://ffmpeg.org/ffmpeg.html#Main-options).示例:`ffmpeg -t 30 -ss 00:00:15.500 -i inputfile.mp3 -acodec copy outputfile.mp3`将切片为*30秒*从*00h 00m 15s 500ms*开始. (5认同)
  • 由于某种原因,上面的命令对我不起作用,但如果我将其更改为:`ffmpeg -i inputfile.mp3 -t 30 -acodec copy outputfile.mp3` 那么它就可以完美运行 (2认同)

the*_*jxc 56

如果你想删除前30秒(并保留剩余部分),那么使用:

ffmpeg -ss 30 -i inputfile.mp3 -acodec copy outputfile.mp3
Run Code Online (Sandbox Code Playgroud)


Joh*_*ker 17

尝试:

ffmpeg -t 30 -i inputfile.mp3 outputfile.mp3
Run Code Online (Sandbox Code Playgroud)


Mic*_*jer 11

你可以使用mp3cut:

cutmp3 -i foo.mp3 -O 30s.mp3 -a 0:00.0 -b 0:30.0
Run Code Online (Sandbox Code Playgroud)

这是在ubuntu回购中,所以只是:sudo apt-get install cutmp3.


小智 10

这个命令也很完美.我将音乐从20秒缩短到40秒.

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

ffmpeg -i test.mp3 -ss 00:00:20 -to 00:00:40 -c copy -y temp.mp3
Run Code Online (Sandbox Code Playgroud)

  • 完美的!感谢您分享这个。 (2认同)

Rya*_*eld 5

您可能想尝试Mp3Splt.

我之前在C#服务中使用过它,它只包含了mp3splt.exe win32进程.我假设你的Linux/PHP场景可以做类似的事情.

  • 使用MP3Split成功进行mp3剪辑 (2认同)