주요 콘텐츠로 건너뛰기

Leapcell에서 FFmpeg 앱 배포하기

몇 단계만으로 Leapcell에서 FFmpeg를 사용하여 비디오 또는 이미지를 처리하는 Flask Python 앱을 배포할 수 있습니다. 이 가이드에서는 Flask를 통해 파일을 업로드하여 FFmpeg 작업을 처리하는 인터페이스로 Flask를 사용하는 방법을 보여줍니다. 그런 다음 FFmpeg를 사용하여 파일을 처리합니다.

이 빠른 시작에서는 FFmpeg 명령을 실행하는 샘플 Flask 앱을 사용하며, 이를 사용자 지정하여 요구 사항에 맞게 조정할 수 있습니다.

:::

계속하려면 GitHub 계정이 필요합니다. 계정이 없는 경우 GitHub 웹사이트에서 만들 수 있습니다.

:::

1. GitHub에서 Flask FFmpeg 예제포크합니다.

레포: Flask FFmpeg 예제

다음은 비디오를 다른 형식으로 변환하는 FFmpeg 명령을 실행하는 기본 app.py 파일입니다.

from flask import Flask, request, jsonify
import subprocess

app = Flask(__name__)

@app.route('/convert', methods=['POST'])
def convert_video():
# 요청에서 비디오 파일 가져오기
file = request.files['file']
output_format = request.form['format']

# 입력 파일 저장, '/tmp' 폴더에 있어야 함
input_path = '/tmp/input_video.mp4'
file.save(input_path)

# 출력 경로 정의
output_path = f'/tmp/output_video.{output_format}'

# FFmpeg를 실행하여 비디오 변환
command = ['ffmpeg', '-i', input_path, output_path]
subprocess.run(command, check=True)

# 변환된 파일의 경로 반환
return jsonify({"output_file": output_path})

if __name__ == '__main__':
app.run(debug=True)

이 Flask 앱은 POST 요청을 통해 비디오 파일을 수락하고 FFmpeg를 사용하여 원하는 형식으로 변환합니다.

다음 명령을 사용하여 API를 로컬에서 테스트할 수 있습니다.

curl -F "file=@/path/to/video.mp4" -F "format=mp4" http://localhost:5000/convert

/tmp/output_video.{output_format}의 결과를 객체 스토리지 또는 기타 서비스에 업로드할 수 있습니다.

2. Leapcell 대시보드에서 서비스 생성 및 새 리포지토리 연결

Leapcell 대시보드로 이동하여 새 서비스 버튼을 클릭합니다.

"새 서비스" 페이지에서 방금 포크한 리포지토리를 선택합니다.

:::

리포지토리에 액세스하려면 Leapcell을 GitHub 계정에 연결해야 합니다.

GitHub에 연결하려면 다음 지침을 따르세요.

연결되면 리포지토리가 목록에 나타납니다.

:::

3. 생성 중에 다음 값 제공:

:::

FFmpeg를 수동으로 설치해야 합니다. 빌드 명령에 다음을 포함합니다.

apt-get update && apt-get install -y ffmpeg && pip install -r requirements.txt

:::

필드
런타임Python (모든 버전)
빌드 명령apt-get update && apt-get install -y ffmpeg && pip install -r requirements.txt
시작 명령gunicorn -w 1 -b :8080 app:app
포트8080

해당 필드에 이러한 값을 입력합니다.

4. 앱에 액세스

배포되면 배포 페이지에 foo-bar.leapcell.dev와 같은 URL이 표시됩니다. 이 도메인을 사용하여 앱을 테스트합니다.

지속적인 배포

연결된 브랜치에 대한 모든 푸시는 자동으로 빌드 및 배포를 트리거합니다. 빌드가 실패하면 다음 성공적인 배포까지 현재 버전이 활성 상태로 유지됩니다.

지속적인 배포에 대해 자세히 알아보세요.