Как на питоне обрабатывать видео и звук
Перейти к содержимому

Как на питоне обрабатывать видео и звук

  • автор:

Как добавить звуковую дорожку в видео но чтобы старая звуковая дорожка осталась?

Всем привет, подскажите пожалуйста что нужно сделать
У меня есть видео с моим голосом. Я хочу в это видео наложить музыку, но при этом голос должен сохраниться в видео. А у меня не получается: музыку, которую я добавляю, просто стирает звуковую дорожку с голосом и остается только музыка.

from moviepy.editor import * # Загрузите аудио и видео файлы audio_clip = AudioFileClip('filename.mp3') video_clip = VideoFileClip('my_video.mp4') # Добавьте новый аудио клип final_clip = video_clip.set_audio(audio_clip) # Установите длительность аудио дорожки на видео клип final_clip = final_clip.set_duration(10) # Сохраните в выходной файл final_clip.write_videofile('1final_clip.mp4')
  • Вопрос задан 26 янв. 2023
  • 306 просмотров

#5 – Обработка звука. Whisper API

#5 – Обработка звука. Whisper API

Помимо работы с фото и текстом компания OpenAI выпустила модель Whisper. Эта модель позволяет обрабатывать звук в аудиофайлах и видео. Вы можете считывать звук, преобразовывать его в текст и выполнять перевод текста на другие языки.

Видеоурок

Модель Whisper представляет из себя намного большее, нежели то что мы рассмотрим в видео. Мы научимся звук превращать в текст и переводить полученный текст в другие языки.

Дополнительно библиотека позволяет создавать аудио по тексту или же может обработать видео и получить с него звук.

Весь код будет доступен после подписки на проект!

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Форум YourDevice

Python извлекаем аудио из видео. Пакет moviepy.

Всё что касается Python
3 сообщения • Страница 1 из 1

admin Администратор Сообщения: 1103 Зарегистрирован: 18 янв 2012, 01:25 Откуда: Екатеринбург Контактная информация:

Python извлекаем аудио из видео. Пакет moviepy.

Сообщение admin » 23 дек 2020, 21:56

Если необходимо извлечь аудио дорожку из видео файла (скачал аудиокниги с youtube), то python в помощь
Три строчки и все готово.

from moviepy.editor import * #подключаем пакет moviepy audioclip = AudioFileClip("1.mp4") #видеофайл 1.mp4 audioclip.write_audiofile("out_audio.mp3") #извлеченная аудиодорожка в файл out_audio.mp3

Из видео файла в ~900М получился аудио ~500М, по времени ~5 мин (зависит от ПК)

При запуске *.py файла возможно вылетит ошибка, с пакетом Numpy:
RuntimeError: The current Numpy installation (‘*****’) fails to pass a sanity check due to a bug in the windows runtime. See this issue for more information: https://tinyurl.com/y3dm3h86

pip uninstall numpy pip install numpy==1.19.3

admin Администратор Сообщения: 1103 Зарегистрирован: 18 янв 2012, 01:25 Откуда: Екатеринбург Контактная информация:

Re: Python извлекаем аудио из видео пакет moviepy

Сообщение admin » 23 дек 2020, 22:52

Обработать последовательно все файлы в папке

import os from moviepy.editor import * #подключаем пакет moviepy directory = input("Введите путь к папке:"); files = os.listdir(directory) # имена всех файлов папки в список print('\n'.join(files)) # выводим список имен for file in files: #обрабатываем последовательно все файлы в списке audioclip = AudioFileClip(directory+"\\"+file) #видеофайл 1.mp4 audioclip.write_audiofile(directory+"\\"+file+".mp3") #извлеченная аудиодорожка в файл mp3 print(file+".mp3")

admin Администратор Сообщения: 1103 Зарегистрирован: 18 янв 2012, 01:25 Откуда: Екатеринбург Контактная информация:

Re: Python извлекаем аудио из видео. Пакет moviepy.

Сообщение admin » 29 дек 2020, 10:58

Переписал в соответствии в PEP8, дал более логичные имена переменным, навел «красоту»
Можно запускать как самостоятельно так и в PyCharm

from moviepy.editor import * # подключаем пакет moviepy def audio_capture(): print("Введите путь к папке:") directory = input() # все имена файлов папки сохраняем в список _list_name_files = os.listdir(directory) # выводим список имен файлов print('\n'.join(_list_name_files)) # перебираем последовательно все файлы имена которых в списке for _name_file in _list_name_files: print("Конвертируем файл: \n" + _name_file) # извлекаем аудиодорожку audio = AudioFileClip(directory + "\\" + _name_file) # изменяем расширение на mp3 + сохраняем в введенную директорию audio.write_audiofile(directory + "\\" + (os.path.splitext(_name_file)[0] + ".mp3")) print("Конвертация файлов закончена!") if __name__ == '__main__': audio_capture() 

Как разделить аудио и видео-дорожки для уменьшения их объема с помощью MoviePy?

Однажды нам дали видеоматериал и была поставлена задача разделить аудио и видео дорожки для уменьшения объема хранимых файлов. Для конвейерной обработки файлов мы использовали библиотеки MoviePy и pydub, которая помимо инструментов для видеомонтажа, содержит все необходимые функции и для обработки аудио.

Первый этап — отделение и запись только аудио и только видео MoviePy.

  1. Установка библиотеки производится просто: pip install movipy
  2. Импорт в проект: import MoviePy.editor
  3. Чтение видеоклипа производится при помощи метода VideoFileClip()

В качестве атрибутов данный метод может принимать:

  • битрейт,
  • частоту обновления,
  • количество байт для кодирования,
  • видео кодек,
  • размер буфера,
  • и т.д.

Во избежание переполнения оперативной памяти рекомендуем использовать вспомогательный метод subclip (, )

4. Для отделения аудио дорожки используем метод audio:

Аудио дорожку можно отделить и удержать в оперативной памяти audio=video.audio

Объект хранящийся в оперативной памяти метода, можно записать на диск сразу после отделения video.audio.write_audiofile(path)

5. Для записи аудио дорожки определен метод write_audiofile

6. Для записи видео дорожки определен метод write_videofile

import MoviePy.editor as mp MyVideo = mp.VideoFileClip(“path”).subclip(0,100) MyAudio = MyVideo.audio MyVideo.audio.write_audiofile(“path”) MyAudio.write_audiofile(“path”) MyVideo.write_videofile(“path”)

Второй этап — разделение аудиодорожек.

Использование в работе вышеизложенного, на первый взгляд, достаточно для обработки видео дорожки. Однако иногда недостаточно для обработки аудио, т.к. аудио дорожек может быть несколько и необходимо выделение монодорожки.

Для языка Python существует библиотека «pydub» для обработки аудио, которая имеет больше функциональных возможностей, чем MoviePy, но передать напрямую объект VideoFileClip в pydub нельзя, поэтому необходимо производить чтение аудиодорожек из файлов.

Для чтения аудио дорожки в pydub используется определенный класс и метод:

AudioSegment from_<название_расширения>.

Изменения параметров аудио осуществляются через маску:

from pydub import AudioSegment sound = AudioSegment.from_wav(r»C:\Users\IgorN\Desktop\SANDBOX\ffmpg\theaudio2.wav») sound = sound.set_channels(1) sound.export(«/output.wav», format=»wav»)

Результатом манипуляций, представленных выше стал «WAV» файл, который после конвертации в формат «MP3» в среднем имеет объем в четыре раза меньше исходного видео файла. Это работает и в обратную сторону объем видео файлов без аудио дорожки сокращается в среднем на четверть, но эти соотношения очень вариативны.

Посмотреть видеозапись в блокноте Jupyter можно двумя путями.

При импорте модуля Video из библиотеки IPython.display и чтении видео, воспроизведение файла можно начать сразу после считывания первого chank’а с подгрузкой последующих во время просмотра.

Так же можно воспроизвести видео, обращаясь к методу ipython_display объекта VideoFileClip, при этом произойдет сначала запись во временное хранилище всех chank’ов, и только после этого начнётся воспроизведение.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *