我有一个大的mp3文件,包括更多的歌曲。是否有任何方法通过检测无声的部分来分割文件?我更喜欢命令行工具(例如ffmpeg)。
试过:
youtube-dl -忽略错误-格式最佳音频-音频-音频格式mp3 -音频质量160 K-输出“%(标题)S.%(Ext)S”-是的-播放列表
发布于 2020-08-05 15:02:07
您可能没有现成的解决方案,但需要自己创建脚本。比杜布就是为此创建的(它在内部使用芬伯或libav ),并且它有一个名为split_on_silence()
的函数,其中包含一些设置,比如keep_silence=100
。
一些来自堆栈溢出的引用有示例:37725416和45526996,以及比杜布的创建者。
从第一个链接,有趣的部分:
# Load your audio.
song = AudioSegment.from_mp3("your_audio.mp3")
chunks = split_on_silence (
# Use the loaded audio.
song,
# Specify that a silent chunk must be at least 2 seconds or 2000 ms long.
min_silence_len = 2000,
# Consider a chunk silent if it's quieter than -16 dBFS.
# (You may want to adjust this parameter.)
silence_thresh = -16
)
发布于 2020-08-05 19:21:13
mp3splt是一个用于拆分mp3s的命令,我相信mp3splt有一个静默检测器(以及其他检测方法)。不需要重新编码。安装:
sudo apt install mp3splt
使用沉默模式(-s
):
mp3splt -s your.mp3
Mp3splt将尝试使用静默检测自动检测分割点,并将使用默认参数找到的所有音轨分割。
或
mp3splt -s -p th=-50,nt=10 your.mp3
传递所需的参数,分裂10个轨道(或更少,如果太多)与最可能的沉默点在一个阈值为-50 dB。
发布于 2020-08-05 15:16:25
通过播放你想要切割的剪辑来获得时间,我通常会做长视频剪辑,我想修剪或剪掉剪辑的一部分。可以使用视频编辑软件对其进行优化,但这些软件通常也会在导出时重新压缩文件。这降低了视频的质量,也需要很长时间。一种解决方案是在ubuntu中执行零损耗切割,在ubuntu中有一种使用FFmpeg的方法:
例子:
ffmpeg -i Myclip.mp4 -ss 00:15:10 -to 00:09:10 -c:v copy -c:a copy output.mp4
上面的剪辑将从0h10min10削减到0h09min,这只需要几秒钟就能完成。
https://askubuntu.com/questions/1264779
复制相似问题