Как добавить звуковую дорожку в видео но чтобы старая звуковая дорожка осталась?
Всем привет, подскажите пожалуйста что нужно сделать
У меня есть видео с моим голосом. Я хочу в это видео наложить музыку, но при этом голос должен сохраниться в видео. А у меня не получается: музыку, которую я добавляю, просто стирает звуковую дорожку с голосом и остается только музыка.
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

Помимо работы с фото и текстом компания 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.
- Установка библиотеки производится просто: pip install movipy
- Импорт в проект: import MoviePy.editor
- Чтение видеоклипа производится при помощи метода 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’ов, и только после этого начнётся воспроизведение.