我试图找到一种从mp4视频文件中提取音频wav文件的方法,该文件由网络用户使用ffmpeg
使用Django上传。
如果我发现要提取音频,那么我应该将它保存在我的项目中?
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():raise ValidationError(u'Unsupported file extension。')else: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