我正在尝试找到一种方法,可以从网络用户使用Django使用ffmpeg
上传的 mp4 视频文件中提取音频 wav 文件。
如果我发现要提取音频,那么应该将其保存在项目中的什么位置?
然后我尝试了:
import subprocess
subprocess.call('ffmpeg -i filename.mp4 filename.wav')
def validate_file_extension(值): 导入操作系统 从django.core.exceptions导入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'不支持的文件扩展名。') 其他: 导入子流程 subprocess.call('ffmpeg -i filename.mp4 filename.wav')
答案 0 :(得分: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