ffmpeg を使用してファイルを wave から mp3 に変換しています。しかし、新しいサービスでは、いくつかの曲の最後の 10 秒を切り取る必要があります (著作権侵害の問題のため)。曲の長さに関係なく。トラックの長さがわかっている場合にのみ、これを行うことに関する情報を見つけましたが、このためには自動的に行う必要があります。
誰がどのコマンドを使用するか知っていますか? 5秒前にフェードアウトできればベスト!
ffmpeg を使用してファイルを wave から mp3 に変換しています。しかし、新しいサービスでは、いくつかの曲の最後の 10 秒を切り取る必要があります (著作権侵害の問題のため)。曲の長さに関係なく。トラックの長さがわかっている場合にのみ、これを行うことに関する情報を見つけましたが、このためには自動的に行う必要があります。
誰がどのコマンドを使用するか知っていますか? 5秒前にフェードアウトできればベスト!
python は、ほとんどすべての強力なツールです (Linux でテスト済み)。
#!/bin/python
from sys import argv
from os import system
from subprocess import Popen, PIPE
ffm = 'ffmpeg -i' # input file
aud = ' -acodec mp3' #add your quality preferences
dur = ' 2>&1 | grep "Duration" | cut -d " " -f 4'
def cutter(inp,t=0):
out = inp[:-5] + '_cut' + inp[-5:]
cut = ' -t %s' % ( duration(inp)-t )
cmd = ffm + inp + aud + cut + out
print cmd; system(cmd)
def fader(inp,t=0):
out = inp[:-5] + '_fade' + inp[-5:]
fad = ' -af "afade=t=out:st=%s:d=%s"' % ( duration(inp)-t, t )
cmd = ffm + inp + fad + out
print cmd; system(cmd)
def duration(inp):
proc = Popen(ffm + inp + dur, shell=True, stdout=PIPE, stderr=PIPE)
out,err = proc.communicate()
h,m,s = [float(x) for x in out[:-2].split(':')]
return (h*60 + m)*60 + s
if __name__ == '__main__':
fname=' "'+argv[1]+'"'
cutter(fname,10)
fader (fname, 5)
# $ python cut_end.py "audio.mp3"
フェードアウトするには、コマンドは次のとおりです。
ffmpeg -i audio.mp3 -af "afade=t=out:st=65:d=5" test.mp3
自動化するには
for i in *wav;do python cut_end.py "$i";done
連結 (カッター -> フェーダー) して、必要なことを行うことができます。
よろしく。