使用 Mplayer 1 提取特定音频段落

使用 Mplayer 1 提取特定音频段落

这基本上是一个涉及 mplayer 参数的问题(1)。(因为我不知道在文档中查找什么)

假设有一段音频从-诗 43:20,如何提取音频转储(使用 -o pcm)在那时候到结束于 +1 分 30 秒的相对点或者在 44:50 的绝对点结束?

答案1

mplayer 输入.mp3 -ao pcm -ao pcm:file=tmp.wav -ss 5 -endpos 7

这会将文件中的 5 到 7 秒保存到 tmp.wav。我不知道如何使用相对结束时间执行此操作,但如果您将其放入脚本中,那么您应该能够非常轻松地计算出来。

将差异转换为精确时间戳的示例脚本:

#!/usr/bin/env python

import sys
import datetime

start = sys.argv[1]
diff = sys.argv[2]

def parse_ts(x):
    bits = [int(a) for a in x.split(":")]
    while len(bits) < 3:
        bits = [0] + bits
    return datetime.timedelta(hours=bits[0],
                              minutes=bits[1],
                              seconds=bits[2])

end = datetime.datetime(2000, 1, 1) + parse_ts(start) + parse_ts(diff)

print end.strftime("%H:%M:%S")

如果你调用该 date.py,那么这将保存 42 分 23 秒的声音:

mplayer 输入.mp3 -ao pcm -ao pcm:file=tmp.wav -ss 1:23:5 -endpos $(python date.py 1:23:5 42:23)

相关内容