Python 에서 각종 멀티미디어,동 영상,오디 오 에서 그림 까지 의 코드 를 상세 하 게 설명 합 니 다.


우 리 는 영상 파일 에 대한 조작,예 를 들 어 영상 편집,자막 편집,오디 오 분리,영상 오디 오 혼 류 등 멀티미디어 파일 수정 에 대한 조작 을 자주 만 날 수 있다.또한 오디 오 파일 에 대한 작업:오디 오 편집,오디 오 형식 변환.예 를 들 어 우리 가 가장 자주 사용 하 는 그림 파일,형식 변환,각 속성의 편집 등 이다.멀티미디어 파일 의 조작 이 많 기 때문에 본 고 는 대표 적 인 조작 을 선택 하여 코드 의 형식 으로 각 조작 을 실현 한다.
그림 작업
그림 을 조작 하 는 모듈 은 여러 가지 가 있 는데 그 중에서 자주 사용 하 는 두 가지 가 바로Pillowopencv이 고 두 모듈 은 각각 장점 이 있다.그 중에서opencv은 컴퓨터 시각 처리 의 오픈 소스 모듈 로 응용 범위 가 더욱 넓 고 이미지 처리 부터 영상 처리,그리고 물체 검 측 등 이다.pillow직선 에 비해 단순 한 것 이 많 고 대부분 조작 은 이미 지 를 중심 으로 전개 된다.
1.1 형식 변환
그림 의 형식 이 다양 하고 가장 직관 적 인 느낌 은 바로 그림 접미사 이다.한편,형식 간 의 차 이 는 접미사 의 차이 뿐만 아니 라 가장 뚜렷 한 것 은png형식 그림 으로 다른 그림 과 가장 직관 적 인 차이 가 있다.다음은 Python 에서 형식 을 어떻게 바 꾸 는 지 살 펴 보 겠 습 니 다.먼저pillow모듈 을 설치 하 겠 습 니 다.

pip install pillow
그리고 모듈 을 가 져 오 는 방법 과 그림 을 읽 는 방법 을 봅 니 다.

from PIL import Image
#     
img = Image.open('ycjc.jpg')
#     
img.show()
우 리 는 위의 기초 작업 을 한 후에 격식 전환 을 시작 할 수 있다.우 리 는 마을 여동생 의 사진 을 소재 로 한다.

우 리 는 이것 이 흰색 배경의 그림 이라는 것 을 볼 수 있다.우 리 는 그것 을png으로 바 꾸 어 효 과 를 볼 수 있다.

from PIL import Image
#     
img = Image.open('ycjc.jpg')
#     ,  A    
png = img.convert('RGBA')
#     ,   RGBA  ,       png
png.save('ycjc.png')
출력 된 그림 을 놓 지 않 겠 습 니 다.출력 된 그림 을 살 펴 보면 흰색 배경 이 투명 해 지 는 것 같 습 니 다.의심 하지 마 세 요.이것 은 심리 적 작용 일 뿐 사실 그림 은 아무런 변화 가 없 을 것 같 습 니 다.그러나 실제 사진 은 원래 의RGB세 개의 색도 에서RGBA네 개의 색도 로 바 뀌 었 다.우 리 는 사진 이 커 진 것 을 발견 할 수 있다.
A색도 의 투명 도 는 모두 0 이지 만 실제로는 이 색도 가 존재 하기 때문에 크기 면 에서 뚜렷하게 증가 했다.더 많은 변환 모드 는 초 전 Python 이미지 처리 설명(다 중 그림 경고)을 참고 할 수 있 습 니 다.
1.2 그림 재단
그림 재단 의 조작 도 매우 자주 사용 된다.우 리 는pillow그림 을 어떻게 재단 하 는 지 보 자.

from PIL import Image
#     
img = Image.open('ycjc.jpg')
#     ,  crop  ,         
img_crop = img.crop((100, 100, 400, 400))
#         
img_crop.save('ycjc_crop.jpg')
우 리 는crop방법 을 호출 하여 재단 구역 에 들 어 온 원 조 를 재단 합 니 다.원 조 의 내용 은 왼쪽 상단 의 좌표(앞의 두 매개 변수),즉 오른쪽 아래 의 좌표(뒤의 두 매개 변수)입 니 다.효과 도 는 다음 과 같다.
 
캡 처
이미지 조작 은 아니 지만 매우 실 용적 인 조작 이다.저희 가 캡 처 를 하 는 것 은 ImageGrap 류 를 통 해 이 루어 진 것 입 니 다.

from PIL import ImageGrab
#     
im = ImageGrab.grab()
#     
im.save('win.png')
전체 화면 을 캡 처 하 는 것 외 에 우 리 는 구역 을 캡 처 할 수 있다.

im =ImageGrab.grab((300, 100, 1400, 600))
매개 변수 모듈 의 의 미 는crop방법 과 일치 합 니 다.
상기 조작 을 제외 하고 필터 추가,대비 도 조절,밝기 조절,색채 조절 등 도 있 는데 내용 이 많 기 때문에 본 고 에서 상세 하 게 토론 하지 않 습 니 다.
2.오디 오 조작
오디 오의 조작 도 비교적 많다.우리 가 가장 자주 사용 하 는 것 은 오디 오 편집 과 볼 륨 조절 이다.우 리 는 오디 오 파일 을 조작 하기 위해pydub모듈 을 사용 합 니 다.
2.1 pydub 의 설치 및 오디 오 읽 기
설치 하 시 겠 습 니까?pip 를 사용 하 시 겠 습 니까?

pip install pydub
그리고 우 리 는wav파일 을 읽 습 니 다.

from pydub import AudioSegment
#   wav       
music = AudioSegment.from_wav('    .wav')
이렇게 해서 우 리 는 오디 오 파일 의 읽 기 를 완성 했다.wav파일 은 압축 되 지 않 은 파일 로 우 리 는pydub을 통 해 직접 읽 을 수 있다.다른 형식의 파일 읽 기pydub역시 해당 하 는 방법 을 제공 합 니 다.

music = AudioSegment.from_mp3('music.mp3')
music = AudioSegment.from_ogg("music.ogg")
music = AudioSegment.from_flv("music.flv")
실제 작업 과정 에서 명확 한 이 유 를 찾 지 못 한 오류 가 발생 했 기 때문에 본 고의 오디 오 작업 은wav형식 만 을 대상 으로 한다.
2.2 오디 오 편집
오디 오 편집 이 실 현 된 것 은 ndarray 와 같은 괄호 로 작 동 합 니 다.

#    20 
clip = music[:20*1000]
#    20 
clip = music[-20000:]
#   20     40 
clip = music[20*1000:40*1000]
잘 라 낸 세 션 은 파일 을 따로 저장 할 수 있 습 니 다.

#      clip.mp3,   mp3
clip.export('clip.mp3', format='mp3')
3.3 볼 륨 증가/감소
음량 의 제 어 는 오디 오 대상 에 상수 만 추가 하면 됩 니 다.

#    5
music -= 5
#    5
music += 5
3.4 오디 오 조합
우 리 는 먼저 중복 연결 을 보 았 다.

#               
music = music*2
맞 춤 형 오디 오의 효 과 는 원래 오디 오 가 두 번 순환 하 는 것 이다.다음은 서로 다른 오디 오 를 연결 하 는 것 을 보 겠 습 니 다.

#    20   
clip1 = music[:20*1000]
#    20   
clip2 = music[-20*1000:]
#     
clip = clip1 + clip2
3.5.교차 점 입 점 출
교차 점 입 점 출 은 비교적 부 드 러 운 오디 오 전환 방식 으로 두 오디 오 전환 의 간헐 적 으로 겹 쳐 코드 로 다음 과 같이 실현 된다.

#    20 
begin = music[20*1000:40*1000]
#    20 
end = music[-20*1000:]
#            
clip = begin.append(end, crossfade=1500)
우 리 는 우리 가 모두 40 초 동안 재단 한 것 을 볼 수 있다.생 성 된 파일 을 우 리 는 38 초 만 볼 수 있다.왜냐하면 필드 를 돌 릴 때 겹 치 는 효과 가 있 기 때문이다.물론 더 많은 조작 이 있 으 니 여러분 스스로 알 아 보 세 요.
3.영상 조작
영상의 조작 은moviepyopencv을 통 해 진행 할 수 있 습 니 다.우 리 는 먼저 두 개의 모듈 을 설치 합 니 다.

pip install opencv-python
pip install moviepy
3.1 영상 편집
이에 비해moviepy동 영상 조작 이 더욱 편리 하 다.우 리 는moviepy동 영상 을 어떻게 편집 하 는 지 살 펴 보 자.

from moviepy.editor import *
#     bws.mp4  50   60 
clip = VideoFileClip('bws.mp4').subclip(50, 60)
#         
clip.write_videofile("clip.mp4")
3.2 오디 오 파일 추출VideoFileClip클래스 에서 오디 오 파일 은 그 중의 매개 변수 로 서 우 리 는 직접 가 져 올 수 있 습 니 다.

from moviepy.editor import *
#       
video = VideoFileClip('bws.mp4')
#       
audio = video.audio
#       
audio.write_audiofile('audio.mp3')
3.3 혼 류
우 리 는 또한 오디 오 와 비디오 를 혼합 할 수 있 습 니 다.moviepy 에서 오디 오 파일 을 읽 는 클래스 를 제공 합 니 다.우 리 는 비디오 의 오디 오 를 설정 하려 면 이런 종류의 대상 을 만들어 야 합 니 다.

from moviepy.editor import *
#     
video = VideoFileClip('bws.mp4')
#     
audio = AudioFileClip('    .mp3')
#        
video = video.set_audio(audio)
#         
video.write_videofile('bws_audio.mp4')
3.4 프레임 추출 화면
우 리 는 모두 영상 이 한 프레임 한 프레임 의 그림 으로 구성 되 어 있다 는 것 을 알 고 있다.우 리 는 화면 을 한 프레임 추출 할 수 있다.

import cv2
#     
video = cv2.VideoCapture('bws.mp4')
#     ,      ret True,frame     ndarray  
ret, frame = video.read()
i = 0
#     
while ret:
 i += 1
 cv2.imwrite('v'+str(i) + '.jpg', frame)
 ret, frame = video.read()
상기 코드 는 화면의 모든 프레임 을 그림 으로 저장 할 수 있다.
3.5、gif 캡 처
gif 를 캡 처 하 는 것 과 동 영상 을 캡 처 하 는 것 은 별 차이 가 없 지만 gif 의 크기 를 줄 이기 위해 우 리 는 보통 동 영상 을 크기 조정 합 니 다.

from moviepy.editor import *
#     
video = VideoFileClip('bws.mp4')
#     ,     
video = video.subclip(20, 30).resize((0.5))
#   gif  
video.write_gif('bws.gif')
위의 subclip 방법 에서 우 리 는 원 그룹 에 들 어 갈 수 있 습 니 다.예 를 들 어:

video.subclip((1, 20), (2, 30))
1 분 20 초 에서 2 분 30 초 로 캡 처 한 다 는 의미 다.
총결산
파 이 썬 에서 각종 멀티미디어,동 영상,오디 오 에서 그림 까지 의 코드 에 대한 상세 한 설명 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 멀티미디어 동 영상 오디 오 이미지 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기