>  기사  >  백엔드 개발  >  Python 가젯: 하루의 작업량을 5분 만에 완료, 너무 맛있어요

Python 가젯: 하루의 작업량을 5분 만에 완료, 너무 맛있어요

王林
王林앞으로
2023-05-23 16:43:061471검색

Python 가젯: 하루의 작업량을 5분 만에 완료, 너무 맛있어요

소개

FFmpeg는 강력한 오디오 및 비디오 처리 프로그램이자 많은 오디오 및 비디오 소프트웨어의 기반이 되었습니다. 실제로 FFmpeg는 업계의 오디오 및 비디오 처리 표준이 되었습니다. 그러나 명령줄에서 FFmpeg를 사용하려면 일정한 학습 비용이 발생하며 ffmpeg-python 라이브러리는 이 문제를 매우 잘 해결합니다.

pip를 통해 간단 설치 후 Python 코드에서 ffmpeg를 사용할 수 있습니다.

pip3 install ffmpeg-python

비디오 정보 가져오기

path = 'main.mp4'
probe = ffmpeg.probe(path)
video_stream = next((stream for stream in probe['streams'] if stream['codec_type'] == 'video'), None)
width = int(video_stream['width'])
height = int(video_stream['height'])
print(width, height)

스트림을 사용하여 크기, 지속 시간, 프레임 속도 등과 같은 비디오의 기본 정보를 얻을 수 있습니다.

거울처리

# 左右镜像
ffmpeg.input(path).hflip().output('output.mp4').run()
# 上下镜像
ffmpeg.input(path).vflip().output('output.mp4').run()

는 간단히 영어단어 수평(horizontal)과 수직(vertical)의 약어로 이해하시면 됩니다.

Add watermark

main = ffmpeg.input(path)
logo = ffmpeg.input('logo.png')
ffmpeg.filter([main, logo], 'overlay', 0, 500).output('out.mp4').run()

이 명령은 메인 영상 위에 로고 워터마크 이미지를 (0,500) 좌표에 배치한다는 의미입니다. 영상의 왼쪽 상단은 원점(0,0)의 위치로 이해될 수 있으며, x축과 y축은 각각 원점에서 오른쪽과 아래쪽을 나타냅니다.

물론, 로고를 영상보다 크게 만든 후 양쪽의 위치를 ​​변경하면 로고 위의 영상이 되는데, 이는 실제로 영상에 배경 이미지를 추가하는 것과 같습니다.

ffmpeg.filter([logo, main], 'overlay', 0, 500).output('out.mp4').run()

비디오 차단

ffmpeg.input(path).trim(start_frame=10,end_frame=20).output('out3.mp4').run()

이 명령은 이해하기 쉬운 것 같습니다. start_frame과 end_frame은 각각 시작 프레임과 끝 프레임을 나타냅니다.

비디오 스플라이싱

base = ffmpeg.input(path)
ffmpeg.concat(
base.trim(start_frame=10, end_frame=20),
base.trim(start_frame=30, end_frame=40),
base.trim(start_frame=50, end_frame=60)
).output('out3.mp4').run()

비디오 스플라이싱은 concat 기능을 사용하여 수행할 수 있습니다.

요약

오늘 저는 Python에서 비디오를 처리하기 위한 좋은 라이브러리를 공유했습니다. 이 라이브러리가 업무/부업의 효율성을 향상시킬 수 있기를 바랍니다.

위 내용은 Python 가젯: 하루의 작업량을 5분 만에 완료, 너무 맛있어요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제