在网上上传后,使用django中的FFMPEG从视频中提取WAV音频文件

问题描述 投票:2回答:1

Problem

我试图找到一种从mp4视频文件中提取音频wav文件的方法,该文件由网络用户使用ffmpeg使用Django上传。

如果我发现要提取音频,那么我应该将它保存在我的项目中?

  1. 我用“Django-ffmpeg”尝试了它,但没有转换并且卡在“待定转换”消息中。
  2. 然后我试着用: import subprocess subprocess.call('ffmpeg -i filename.mp4 filename.wav')

Error

Error

Script

def validate_file_extension(value):从django.core.exceptions导入os导入ValidationError ext = os.path.splitext(value.name)1#[0]返回路径+文件名filename = os.path.splitext(value.name)1 #[0]返回路径+文件名valid_extensions = ['。mp4']如果不是valid_extensions中的ext.lower():raise ValidationError(u'Unsupported file extension。')else:import subprocess subprocess.call('ffmpeg -i filename .mp4 filename.wav')

python django video ffmpeg
1个回答
0
投票

解决方案: - 您可以在Django中以这种方式提取wav音频文件:

def extract_audio(videofile,channels=1, rate=16000):

    your_media_root = settings.MEDIA_ROOT
    path_to_user_folder = your_media_root + videofile.name

    inFile = path_to_user_folder

    temp = tempfile.NamedTemporaryFile(suffix='.wav', delete=False)
    command = ["ffmpeg", "-y", "-i", inFile,
           "-ac", str(channels), "-ar", str(rate),
           "-loglevel", "error", temp.name]
    subprocess.check_output(command)
    print(temp.name)
    return temp.name
  • 其次使用“import tempfile”库临时存储提取的文件。
© www.soinside.com 2019 - 2024. All rights reserved.