繁体   English   中英

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

[英]Extract WAV audio file from video after uploading on web, using FFMPEG in django

问题

我正在尝试找到一种方法,可以从ffmpeg使用Django的网络用户上传的mp4视频文件中提取音频wav文件。

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

  1. 我使用“ Django-ffmpeg”进行了尝试,但未进行转换,并停留在“待处理的转换”消息中。
  2. 然后我尝试了:

     import subprocess subprocess.call('ffmpeg -i filename.mp4 filename.wav') 

错误

错误

脚本

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():引发ValidationError(u'不支持的文件扩展名。')否则:import subprocess subprocess.call('ffmpeg -i filename .mp4 filename.wav')

解决方案:-您可以通过以下方式在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
  • 其次,使用“导入临时文件”库来临时存储提取的文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM