Извлеките аудио файл WAV из видео после загрузки в Интернет, используя FFMPEG в Django - PullRequest
2 голосов
/ 09 марта 2019

Проблема

Я пытаюсь найти способ извлечь аудиофайл wav из видеофайла mp4 , загруженного веб-пользователем с использованием ffmpeg используя Django.

Если я найду аудио для извлечения, то где мне сохранить его в моем проекте?

  1. Я пробовал это с "Django-ffmpeg", но не конвертировал и былзастрял в сообщении "ожидание преобразования".
  2. Затем я попытался с:

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

Ошибка

Error

Сценарий

def validate_file_extension (значение): импорт os из django.core.exceptions import ValidationError ext = os.path.splitext (value.name) 1 # [0] возвращает путь + имя файла filename = os.path.splitext (value.name) 1 # [0] возвращает путь + имя файла valid_extensions = ['.mp4'], если не ext.lower () в valid_extensions: повысить ValidationError (u'Не поддерживается неподдерживаемое расширение файла. ') else: импортировать подпроцесс subprocess.call (' ffmpeg -i filename.mp4 filename.wav ')

1 Ответ

0 голосов
/ 26 марта 2019

Решение: - вы можете извлечь аудиофайл wav следующим образом в Django:

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» для временного хранения извлеченного файла.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...