1
曲折的音频剪辑历程
我就百度搜音频剪辑软件,首页随便下载一个就开始cut,按照夫人的要求cut掉几段可省略的。然后问题来了!!!
cut完要导出,提示要付费,心里千万只?奔袭而过,这么low的软件功能还要收费??想着十块八块就直接算了,耽误我时间,结果注册了一看要30元,而且有效期只有3个月???
我还是自己写个代码来cut吧,一劳永逸。
然后我就网上开始搜罗资料,写啊写,剪啊剪,本来中午要推送的按键精灵帖子,愣是拖到了晚上(当然coding不难,难的是用户需求频繁变更
)
索性,把python的一起发了吧……
代码实现了剪切片段、片段合并,感兴趣的小伙伴可以直接拿去试用。
最末一段的倍速播放函数,AudioSegment模块研究半天没找到有加速相关的函数,于是就用了一个视频相关的模块去处理??反正最后是倍速成功了,不过有报出一个异常,时间关系就先不求甚解吧,欢迎各路大神来指点一二。
2
coding
#!/usr/bin/env python3.6
# -*- coding: utf-8 -*-
# @Time : 2019-09-01 10:25
# @Author : Ed Frey
# @File : clips.py
# @Software: PyCharm
from pydub import AudioSegment
from moviepy.editor import *
def slice(start,end,input_path,output_path):
'''
to cut a slice of audio needed, from start time to end time ,unit is millisecond.
:param start:
:param end:
:param input_path:
:param output_path:
:return:
'''
input_music = AudioSegment.from_mp3(input_path)
output_music = input_music[start:end]
output_music.export(output_path, format="mp3")
# print(len(output_music), output_music.channels)
def merge(output_path,input_path_list=[]):
'''
to merge different slices in path_list together by order
:param output_path:
:param path_list:
:return:
'''
if input_path_list is None:
return None
playlist = AudioSegment.empty()
for sound in input_path_list:
input_music = AudioSegment.from_mp3(sound)
playlist += input_music
playlist.export(output_path, format="mp3")
# print(len(playlist), playlist.channels)
# 如果需要对音频做封面、填写专辑名称、作者信息,可以用下方的格式输出
# output_music.export("/Users/Ed_Frey/Desktop/mp3_cut/audio_clip/combine_3.mp3", format="mp3", bitrate="192k",
# tags={"album": "专辑名称", "artist": "歌手"}, cover="/photo.jpeg")
return True
def speedup(input_path,output_path,rate):
'''
to speedup video playing.
:param input_path:
:param output_path:
:param rate:
:return:
'''
mp3 = VideoFileClip(input_path)
result = mp3.fl_time(lambda t:rate*t,apply_to=['mask','video','audio']).set_end(mp3.end/rate)
result.write_videofile(output_path)
if __name__=="__main__":
input_path = "/Users/Ed_Frey/Desktop/mp3_cut/audio_clip/jingwei.mp3"
output_path = "/Users/Ed_Frey/Desktop/mp3_cut/audio_clip/output1.mp3"
start = 183000
end = 238600
slice(start,end,input_path,output_path)
# merge(output_path,path_list=["/Users/Ed_Frey/Desktop/mp3_cut/audio_clip/output1.mp3",
# "/Users/Ed_Frey/Desktop/mp3_cut/audio_clip/output2.mp3",
# "/Users/Ed_Frey/Desktop/mp3_cut/audio_clip/output3.mp3",
# "/Users/Ed_Frey/Desktop/mp3_cut/audio_clip/output4.mp3"])
#
PS: 因为这次剪辑的故事要拿去评选,所以昨天临时下架了,等后面再播放给大家听。
开头的故事也一样精彩吧~是前一阵刚去电台录播的一段故事
奔跑的键盘侠原创作品 | 尽情分享朋友圈 | 转载请联系授权