jonghwanhyeon/python-ffmpeg
A python binding for FFmpeg which provides sync and async APIs
해결하는 문제
이 라이브러리는 Python 개발자가 널리 사용되는 멀티미디어 도구인 FFmpeg를 제어할 수 있는 깔끔하고 프로그래밍 가능한 방법을 제공합니다. 복잡한 명령줄 인수를 입력하는 대신, Python에서 단계별로 명령을 빌드하고 실행하며 진행 상황 이벤트에 대응할 수도 있습니다.
작동 방식
FFmpeg 객체를 생성하고 .input(), .output(), .option()과 같은 메서드를 체이닝하여 변환 또는 녹화 작업을 설정합니다. 옵션은 키워드 인수(예: 비디오 필터용 vf, preset, crf) 또는 코덱 설정을 위한 딕셔너리로 전달할 수 있습니다. 그런 다음 execute()를 호출하여 FFmpeg를 실행합니다. 동기(블로킹) 버전과 asyncio와 함께 사용할 수 있는 비동기 버전(ffmpeg.asyncio.FFmpeg) 두 가지 API를 사용할 수 있습니다. 또한 @ffmpeg.on("progress")로 콜백을 데코레이팅하여 progress와 같은 이벤트를 수신할 수 있으며, 이 콜백은 frame과 같은 필드가 포함된 Progress 객체를 받습니다. 이를 통해 실행 중인 작업을 프로그래밍 방식으로 모니터링하거나 종료할 수 있습니다.
대상 사용자
비디오 트랜스코딩, RTSP 카메라 스트리밍, 미디어 파이프라인 구축 등 애플리케이션에 FFmpeg 기능을 포함해야 하며, 명령줄을 직접 호출하는 대신 더 Pythonic한 인터페이스를 원하는 Python 개발자에게 적합합니다.
주요 특징
- 블로킹 및 논블로킹 사용 사례를 모두 지원하는 동기 및 비동기 API
- FFmpeg 명령을 구성하기 위한 체이닝 가능하고 읽기 쉬운 메서드 호출
- 키워드 인수 또는 딕셔너리를 통한 사용자 지정 옵션, 코덱 설정 및 비디오 필터 지원
- 진행 상황 업데이트를 위한 이벤트 리스너 메커니즘으로 조건부 종료(예: 200프레임 후 중지) 가능
pip install python-ffmpeg를 통해 설치 가능
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트