之前有人问过这个问题,海量 MP3 音频文件编辑器,但我想知道现在情况是否有所改变。我也可以接受适用于任何操作系统甚至 CLI 的任何解决方案。
ffmpeg 不起作用(文件输出未被修剪)。
ffmpeg -i 2999.mp3 -ss 0:10 -acodec copy 2999-trimmed.mp3
FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers
built on Mar 7 2011 12:32:28 with gcc 4.2.1 (Apple Inc. build 5646)
configuration: --prefix=/opt/local --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-avfilter-lavf --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libdirac --enable-libschroedinger --enable-libfaac --enable-libfaad --enable-libxvid --enable-libx264 --enable-libvpx --enable-libspeex --enable-nonfree --mandir=/opt/local/share/man --enable-shared --enable-pthreads --disable-indevs --cc=/usr/bin/gcc-4.2 --arch=x86_64
libavutil 50.15. 1 / 50.15. 1
libavcodec 52.72. 2 / 52.72. 2
libavformat 52.64. 2 / 52.64. 2
libavdevice 52. 2. 0 / 52. 2. 0
libavfilter 1.19. 0 / 1.19. 0
libswscale 1.11. 0 / 1.11. 0
libpostproc 51. 2. 0 / 51. 2. 0
**[mp3 @ 0x12180c800]max_analyze_duration reached**
**[mp3 @ 0x12180c800]Estimating duration from bitrate, this may be inaccurate**
Input #0, mp3, from '2999.mp3':
Metadata:
TYER : 2005-01-21
TPE1 : البخاري
TPE2 : البخاري
TALB : صحيح البخاري ٢
Duration: 00:00:28.94, start: 0.000000, bitrate: 32 kb/s
Stream #0.0: Audio: mp3, 22050 Hz, 1 channels, s16, 32 kb/s
Output #0, mp3, to '2999-trimmed.mp3':
Metadata:
TSSE : Lavf52.64.2
Stream #0.0: Audio: libmp3lame, 22050 Hz, 1 channels, 32 kb/s
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
size= 103kB time=26.36 bitrate= 32.0kbits/s
video:0kB audio:103kB global headers:0kB muxing overhead 0.031300%
答案1
我经常使用 mp3splt。它的特点是分割完整的 MP3 帧,也就是说,无需解压和重新压缩声音,这意味着质量完全不受影响。
类似这样的操作对于单个文件是有效的:
mp3splt -f 0.10 5000.0 <filename>
5000.0 需要高于任何单个文件的长度;当遇到 EOF 或到达指定的结束点时,mp3splt 会停止。
答案2
#!/bin/bash
for file in $1/*.mp3
do
echo "file=$file"
mp3splt -f 0.10 5000.0 $file
if test "$?" == "0"; then
# cp $file $file"_backup"
rm $file
fi
done
感谢 Zds 推荐 mp3splt