用python把视频里面的音频分离出来

第一你需要下载Flask、moviepy这个库来完成我们下面的东西废话不多说直接上代码

 创建一个test.py这个文件夹

from flask import Flask, render_template, request, send_from_directory

from moviepy.editor import *

app = Flask(__name__)

app.config['UPLOAD_FOLDER'] = 'uploads/'


 

@app.route("/")

def index():

    return render_template('index.html')

@app.route("/upload", methods=['POST'])

def upload_video():

    if request.method == 'POST':

        video = request.files['video']

        video_save_path = os.path.join(app.config['UPLOAD_FOLDER'], video.filename)

        video.save(video_save_path)

       

        # 分离音频并移除原始视频中的声音和背景音乐

        video_clip = VideoFileClip(video_save_path)

        audio = video_clip.audio

        audio_save_path = os.path.join(app.config['UPLOAD_FOLDER'], 'audio_' + video.filename.split('.')[0] + '.mp3')

        audio.write_audiofile(audio_save_path)

        video_without_audio = video_clip.without_audio()

        video_without_audio_save_path = os.path.join(app.config['UPLOAD_FOLDER'], 'video_without_audio_' + video.filename)

        video_without_audio.write_videofile(video_without_audio_save_path)

        return {

            'audio_url': '/uploads/audio_' + video.filename.split('.')[0] + '.mp3',

            'video_without_audio_url': '/uploads/video_without_audio_' + video.filename

        }

@app.route('/uploads/<filename>')

def uploaded_file(filename):

    return send_from_directory(app.config['UPLOAD_FOLDER'], filename)

if __name__ == "__main__":

    app.run(host='127.0.0.1',port=32140,debug=True)

然后再下面写一个index.html

<h1>Upload your video</h1>

    <form action="http://127.0.0.1:32140/upload" method="POST" enctype="multipart/form-data">

        <input type="file" name="video" accept="video/*">

        <input type="submit" value="Upload">

    </form>

这样基本上就没有问题了,你按照上面的方法一步下来基本上是没有问题的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值