>  기사  >  백엔드 개발  >  Python을 사용하여 클라우드 인터페이스에 연결하여 비디오 트랜스코딩 및 편집을 수행하는 방법

Python을 사용하여 클라우드 인터페이스에 연결하여 비디오 트랜스코딩 및 편집을 수행하는 방법

王林
王林원래의
2023-07-06 08:48:0611149검색

Python을 사용하여 Youpai Cloud 인터페이스에 연결하여 비디오 트랜스코딩 및 편집을 수행하는 방법

요약: Youpai Cloud는 풍부한 멀티미디어 처리 기능을 제공하는 강력한 클라우드 스토리지 플랫폼입니다. 이 기사에서는 Python을 사용하여 Youpaiyun의 API 인터페이스에 연결하여 비디오 트랜스코딩 및 편집 기능을 구현하는 방법을 소개합니다. 특정 콘텐츠에는 API 키 설정, 비디오 파일 업로드, 트랜스코딩 작업 시작, 작업 상태 쿼리, 트랜스코딩된 비디오 파일 다운로드 등이 포함됩니다.

  1. API 키 설정

Youpaiyun의 API 인터페이스를 사용하기 전에 Youpaiyun의 공식 웹사이트에 계정을 등록하고 저장 공간을 만들어야 합니다. 그런 다음 계정에 로그인하고 콘솔에 들어가서 왼쪽 탐색 모음에서 "키 관리"를 찾아 API 키를 생성하세요. 후속 Python 코드를 위해 API 키를 로컬에 저장하세요.

  1. 필요한 라이브러리 설치

Python을 사용하여 클라우드 인터페이스에 연결하려면 요청 및 json을 포함한 관련 라이브러리를 설치해야 합니다.

pip install requests
pip install json
  1. 동영상 파일 업로드

Youpaiyun의 API 인터페이스를 사용하려면 먼저 Youpaiyun의 저장 공간에 동영상 파일을 업로드해야 합니다. 업로드하려는 비디오 파일의 이름이 "example.mp4"라고 가정하면 Python 코드는 다음과 같습니다.

import requests

def upload_video_file(api_key, api_secret, bucket_name, local_file_path):
    url = f'https://{bucket_name}.video.upyun.com/{local_file_path}'
    authorization = api_key + ":" + api_secret
    headers = {
        'Authorization': 'Basic ' + base64.b64encode(authorization.encode()).decode()
    }
    with open(local_file_path, 'rb') as file:
        data = file.read()
    response = requests.put(url, headers=headers, data=data)
    if response.status_code == 200:
        print("视频文件上传成功!")
    else:
        print("视频文件上传失败!")

api_key = 'your_api_key'
api_secret = 'your_api_secret'
bucket_name = 'your_bucket_name'
local_file_path = 'example.mp4'

upload_video_file(api_key, api_secret, bucket_name, local_file_path)

코드에서 요청 라이브러리를 사용하여 비디오 파일을 Youpaiyun의 저장 공간에 업로드하기 위한 PUT 요청을 보냅니다. . 요청 헤더의 Authorization 필드를 API 키로 설정해야 합니다. 업로드가 성공하면 상태 코드 200이 반환됩니다.

  1. 트랜스코딩 작업 시작

비디오 파일을 업로드한 후 트랜스코딩 작업을 시작하여 원본 비디오를 다양한 형식과 해상도로 트랜스코딩할 수 있습니다. Youpaiyun은 특정 요구에 따라 설정할 수 있는 다양한 트랜스코딩 매개변수를 제공합니다. 다음은 비디오를 720p 해상도의 MP4 형식으로 트랜스코딩하는 샘플 코드입니다.

import requests

def transcode_video(api_key, api_secret, bucket_name, local_file_name, target_file_format, target_resolution):
    url = f'https://{bucket_name}.video.upyun.com/transcoding/'
    authorization = api_key + ":" + api_secret
    headers = {
        'Authorization': 'Basic ' + base64.b64encode(authorization.encode()).decode(),
        'X-Transcode-Target': target_file_format,
        'X-Transcode-Resolution': target_resolution
    }
    data = {
        'source': local_file_name
    }
    response = requests.post(url, headers=headers, data=data)
    if response.status_code == 201:
        task_id = response.json()['task_id']
        print(f"转码任务已创建,任务ID为{task_id}")
    else:
        print("转码任务创建失败!")

api_key = 'your_api_key'
api_secret = 'your_api_secret'
bucket_name = 'your_bucket_name'
local_file_name = 'example.mp4'
target_file_format = 'mp4'
target_resolution = '720p'

transcode_video(api_key, api_secret, bucket_name, local_file_name, target_file_format, target_resolution)

코드에서는 요청 라이브러리를 사용하여 POST 요청을 보내 트랜스코딩 작업을 시작합니다. 요청 헤더의 Authorization 필드를 API 키로 설정하고 요청 헤더에 대상 파일 형식과 해상도를 지정해야 합니다. 업로드가 성공하면 상태 코드 201이 반환되고 작업 ID도 반환됩니다.

  1. 작업 상태 쿼리

트랜스코딩 작업을 시작한 후 Youpaiyun의 API 인터페이스를 사용하여 작업 상태를 쿼리할 수 있습니다. 다음은 샘플 코드입니다.

import requests

def query_task_status(api_key, api_secret, bucket_name, task_id):
    url = f'https://{bucket_name}.video.upyun.com/tasks/{task_id}/'
    authorization = api_key + ":" + api_secret
    headers = {
        'Authorization': 'Basic ' + base64.b64encode(authorization.encode()).decode()
    }
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        task_status = response.json()['status']
        print(f"任务状态为{task_status}")
    else:
        print("查询任务状态失败!")

api_key = 'your_api_key'
api_secret = 'your_api_secret'
bucket_name = 'your_bucket_name'
task_id = 'your_task_id'

query_task_status(api_key, api_secret, bucket_name, task_id)

코드에서는 요청 라이브러리를 사용하여 GET 요청을 보내 작업 상태를 쿼리합니다. 요청 헤더의 Authorization 필드를 API 키로 설정해야 합니다. 쿼리가 성공하면 상태 코드 200이 반환되고 작업 상태가 반환됩니다.

  1. 트랜스코딩된 비디오 파일 다운로드

비디오 트랜스코딩 작업이 완료된 후 Youpaiyun의 API 인터페이스를 사용하여 트랜스코딩된 비디오 파일을 다운로드할 수 있습니다. 다음은 샘플 코드입니다.

import requests

def download_transcoded_video(api_key, api_secret, bucket_name, task_id, local_file_name):
    url = f'https://{bucket_name}.video.upyun.com/tasks/{task_id}/download'
    authorization = api_key + ":" + api_secret
    headers = {
        'Authorization': 'Basic ' + base64.b64encode(authorization.encode()).decode()
    }
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        with open(local_file_name, 'wb') as file:
            file.write(response.content)
        print("视频文件下载成功!")
    else:
        print("视频文件下载失败!")

api_key = 'your_api_key'
api_secret = 'your_api_secret'
bucket_name = 'your_bucket_name'
task_id = 'your_task_id'
local_file_name = 'output.mp4'

download_transcoded_video(api_key, api_secret, bucket_name, task_id, local_file_name)

코드에서는 요청 라이브러리를 사용하여 트랜스코딩된 비디오 파일을 다운로드하기 위한 GET 요청을 보냅니다. 요청 헤더의 Authorization 필드를 API 키로 설정해야 합니다. 다운로드가 성공하면 상태 코드 200이 반환되고 파일이 로컬에 저장됩니다.

이 글에서는 Python을 사용하여 Youpai Cloud 인터페이스에 연결하여 비디오 트랜스코딩 및 편집 기능을 구현하는 방법을 소개합니다. API 키 설정, 비디오 파일 업로드, 트랜스코딩 작업 시작, 작업 상태 쿼리 및 트랜스코딩된 비디오 파일 다운로드를 통해 Python에서 비디오 처리를 매우 편리하게 수행할 수 있습니다. 이는 비디오 웹 사이트, 짧은 비디오 플랫폼, 온라인 교육 및 기타 분야와 같이 비디오의 일괄 처리가 필요한 시나리오에 매우 유용합니다. 이 기사가 독자들이 Youpaiyun의 기능을 더 잘 활용하고 프로젝트에 더 많은 멀티미디어 처리 기능을 추가하는 데 도움이 되기를 바랍니다.

위 내용은 Python을 사용하여 클라우드 인터페이스에 연결하여 비디오 트랜스코딩 및 편집을 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.