π ΠΠ°ΠΊ ΠΈΠ·Π²Π»Π΅ΡΡ Π°ΡΠ΄ΠΈΠΎ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python
ΠΠ°ΠΊ ΠΈΠ·Π²Π»Π΅ΡΡ Π°ΡΠ΄ΠΈΠΎ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python?
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ moviepy Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π°ΡΠ΄ΠΈΠΎ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°:
from moviepy.editor import VideoFileClip
video_path = "ΠΏΡΡΡ_ΠΊ_Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Ρ.mp4"
audio_path = "ΠΏΡΡΡ_ΠΊ_Π°ΡΠ΄ΠΈΠΎΡΠ°ΠΉΠ»Ρ.mp3"
video = VideoFileClip(video_path)
video.audio.write_audiofile(audio_path)
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ VideoFileClip ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ moviepy Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Π°. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ write_audiofile Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π°ΡΠ΄ΠΈΠΎΠ΄ΠΎΡΠΎΠΆΠΊΠΈ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΅Π΅ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π°ΡΠ΄ΠΈΠΎΡΠ°ΠΉΠ».
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ "ΠΏΡΡΡ_ΠΊ_Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Ρ.mp4" Π½Π° ΠΏΡΡΡ ΠΊ Π²Π°ΡΠ΅ΠΌΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Ρ ΠΈ "ΠΏΡΡΡ_ΠΊ_Π°ΡΠ΄ΠΈΠΎΡΠ°ΠΉΠ»Ρ.mp3" Π½Π° ΠΏΡΡΡ, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π°ΡΠ΄ΠΈΠΎΡΠ°ΠΉΠ».
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΈΠ·Π²Π»Π΅ΡΡ Π°ΡΠ΄ΠΈΠΎ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python?
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΡ Π°ΡΠ΄ΠΈΠΎ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python, ΡΠΎ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² Π½ΡΠΆΠ½ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΡ Π·Π°Π΄Π°ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ.
1. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° moviepy
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π°ΡΠ΄ΠΈΠΎ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ moviepy. ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Π°ΠΌΠΈ.
from moviepy.editor import VideoFileClip
# ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»
video = VideoFileClip('video.mp4')
# ΠΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ Π°ΡΠ΄ΠΈΠΎ
audio = video.audio
# Π‘ΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ Π°ΡΠ΄ΠΈΠΎ Π² ΡΠ°ΠΉΠ»
audio.write_audiofile('audio.mp3')
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ VideoFileClip ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ moviepy. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π°ΡΡΠΈΠ±ΡΡ audio, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π°ΡΠ΄ΠΈΠΎ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π°ΡΠ΄ΠΈΠΎΡΠ°ΠΉΠ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° write_audiofile.
2. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° moviepy + ffmpeg
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ffmpeg, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΅Π³ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ moviepy. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ moviepy, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ffmpeg.
from moviepy.editor import VideoFileClip
# ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»
video = VideoFileClip('video.mp4')
# ΠΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ Π°ΡΠ΄ΠΈΠΎ
audio = video.audio
# Π‘ΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌ Π°ΡΠ΄ΠΈΠΎ Π² ΡΠ°ΠΉΠ»
audio.write_audiofile('audio.mp3', codec='mp3')
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ moviepy Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Π° ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π°ΡΠ΄ΠΈΠΎ ΠΈΠ· Π½Π΅Π³ΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ, Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠ΄Π΅ΠΊ mp3 ΠΏΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ Π°ΡΠ΄ΠΈΠΎΡΠ°ΠΉΠ»Π°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΊΠΎΠ΄Π΅ΠΊΠ°ΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
3. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ffmpeg-python
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π°ΡΠ΄ΠΈΠΎ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ffmpeg-python. ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ffmpeg.
import ffmpeg
# ΠΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ Π°ΡΠ΄ΠΈΠΎ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎ
input_file = 'video.mp4'
output_file = 'audio.mp3'
ffmpeg.input(input_file).output(output_file).run()
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ input Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π²Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄ output Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ run Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π°ΡΠ΄ΠΈΠΎ.
4. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° opencv-python
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° opencv-python, Ρ ΠΎΡΡ ΠΎΠ½Π° ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ, ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π°ΡΠ΄ΠΈΠΎ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»ΠΎΠ².
import cv2
# ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»
video = cv2.VideoCapture('video.mp4')
# ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ Π°ΡΠ΄ΠΈΠΎ ΠΊΠΎΠ΄Π΅ΠΊ
audio_codec = int(video.get(cv2.CAP_PROP_FOURCC))
# ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°Π΄ΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ
fps = int(video.get(cv2.CAP_PROP_FPS))
# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π°ΡΠ΄ΠΈΠΎ Π² ΡΠ°ΠΉΠ»
audio_writer = cv2.VideoWriter('audio.mp3', audio_codec, fps, (0, 0))
# Π§ΠΈΡΠ°Π΅ΠΌ ΠΊΠ°Π΄ΡΡ Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π·Π²ΡΠΊ
while video.isOpened():
ret, frame = video.read()
if not ret:
break
audio_writer.write(frame[:, :, 1])
# ΠΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌ ΡΠ΅ΡΡΡΡΡ
video.release()
audio_writer.release()
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ VideoCapture ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ opencv-python Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»Π°. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π°ΡΠ΄ΠΈΠΎ ΠΊΠΎΠ΄Π΅ΠΊ ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠ°Π΄ΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² get. ΠΠ°Π»Π΅Π΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ VideoWriter Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π°ΡΠ΄ΠΈΠΎ Π² ΡΠ°ΠΉΠ». ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΈΡΠ°Π΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ°Π΄Ρ Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π·Π²ΡΠΊ Π² ΡΠ°ΠΉΠ» Π°ΡΠ΄ΠΈΠΎ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π°ΡΠ΄ΠΈΠΎ ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠΉ. Π£ΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ!