반응형
Python의 moviepy 모듈을 활용하면 동영상에 wav, mp3 파일 등의
배경음을 손쉽게 삽입할 수 있는데요.
이 글에서 간략하게 음성 교체와 추가 삽입의 경우로 나누어 코드를 살펴보겠습니다.
1. 동영상 음악 교체 방법
동영상 파일에서 원하는 mp3 파일을 배경음으로 대체하는 코드는 다음과 같습니다.
이 코드 스니펫에서 기존 음성은 제거 후 대체됩니다.
mp4 동영상 파일을 기준으로 코드를 작성한 결과는 다음과 같습니다.
# 모듈 설치: !pip install moviepy
from moviepy.editor import VideoFileClip, AudioFileClip
def replace_audio_in_video(video_file_path, new_audio_file_path, output_file_path, volume=1.0):
# 비디오 파일과 새 오디오 파일 불러오기
video = VideoFileClip(video_file_path)
new_audio = AudioFileClip(new_audio_file_path)
# 볼륨 조정(1.0이 기존 볼륨 크기 기준)
new_audio = new_audio.volumex(volume)
# 비디오의 오디오 교체
video = video.set_audio(new_audio)
# 결과 비디오 파일 저장(코덱: mp4 기준)
video.write_videofile(output_file_path, codec='libx264', audio_codec='aac')
original_video_file = "video_file_path.mp4"
new_audio_file = "audio_file_path.mp3" # wav 등 다른 포맷도 가능
output_video_file = "output_file_path.mp4"
replace_audio_in_video(original_video_file, new_audio_file, output_video_file)
반응형
2. 동영상 음악 추가 삽입 방법
이번에는 기존 동영상 파일의 음성을 유지한 채, 새로운 음성 파일을 추가하는
방법에 대한 파이썬 코드 스니펫을 살펴보도록 하겠습니다.
여기서는 기존 오디오와 새 오디오의 결합 과정이 중간에 추가로 필요합니다.
(해당 코드도 mp4 파일을 기준으로 작성된 코드입니다.)
# 모듈 설치: !pip install moviepy
from moviepy.editor import VideoFileClip, AudioFileClip, CompositeAudioClip
def add_audio_to_video(video_file_path, additional_audio_file_path, output_file_path, original_audio_volume=1.0, additional_audio_volume=1.0):
# 비디오 파일과 새 오디오 파일 불러오기
video = VideoFileClip(video_file_path)
additional_audio = AudioFileClip(additional_audio_file_path)
# 기존 오디오와 새 오디오의 볼륨 조정(1.0이 기존 볼륨 크기 기준)
original_audio = video.audio.volumex(original_audio_volume)
additional_audio = additional_audio.volumex(additional_audio_volume)
# 조정된 볼륨으로 오디오 결합
combined_audio = CompositeAudioClip([original_audio, additional_audio])
# 비디오의 오디오를 결합된 오디오로 교체
video = video.set_audio(combined_audio)
# 결과 비디오 파일 저장(코덱: mp4 기준)
video.write_videofile(output_file_path, codec='libx264', audio_codec='aac')
original_video_file = "video_file_path.mp4"
new_audio_file = "audio_file_path.mp3" # wav 등 다른 포맷도 가능
output_video_file = "output_file_path.mp4"
# 기존 오디오: 새 오디오의 볼륨을 1 : 0.5로 조정하여 저장한 예시
add_audio_to_video(original_video_file, new_audio_file, output_video_file, 1.0, 0.5)
참고: mp4가 아닌 동영상 파일에서도 윗 코드를 마찬가지로 적용할 수 있습니다.
이 경우 추천되는 코덱의 종류는 다음과 같습니다.
AVI: 비디오 코덱으로 mpeg4 또는 libxvid, 오디오 코덱으로 mp3 또는 pcm
MOV: 비디오 코덱으로 libx264 또는 mpeg4, 오디오 코덱으로 aac 또는 alac
WMV: 비디오 코덱으로 wmv2, 오디오 코덱으로 wmav2
'Python > Utils' 카테고리의 다른 글
파이썬 class __init__에서 async로 변수 초기화 하는 방법 (0) | 2024.02.20 |
---|---|
파이썬으로 비디오(mp4 등) -> 오디오(mp3, wav 등) 추출하기(moviepy 활용) (0) | 2024.01.20 |
파이썬 테스트 케이스 모듈 unittest 사용법 (2) | 2024.01.10 |