Bỏ qua

Endpoint Cắt video

Giá cả

35 credits cho mỗi yêu cầu

Chi phí cố định bất kể độ dài video hay thời lượng cắt.

1. Tổng quan

Endpoint https://api.revidapi.com/paid/video/trim là một phần của Video API và cho phép người dùng cắt video bằng cách loại bỏ các phần được chỉ định từ đầu và/hoặc cuối. Nó cũng cung cấp các cài đặt mã hóa tùy chọn để kiểm soát chất lượng video đầu ra.

2. Endpoint

URL Path: https://api.revidapi.com/paid/video/trim HTTP Method: POST

3. Yêu cầu

Headers

  • x-api-key (bắt buộc): API key để xác thực.

Tham số Body

  • video_url (bắt buộc, string): URL của tệp video cần cắt.
  • start (tùy chọn, string): Thời gian bắt đầu để cắt theo định dạng hh:mm:ss hoặc mm:ss.
  • end (tùy chọn, string): Thời gian kết thúc để cắt theo định dạng hh:mm:ss hoặc mm:ss.
  • video_codec (tùy chọn, string): Codec video để sử dụng cho việc mã hóa video đầu ra. Mặc định là libx264.
  • video_preset (tùy chọn, string): Preset video để sử dụng cho việc mã hóa video đầu ra. Mặc định là medium.
  • video_crf (tùy chọn, number): Giá trị Constant Rate Factor (CRF) cho mã hóa video, từ 0 đến 51. Mặc định là 23.
  • audio_codec (tùy chọn, string): Codec âm thanh để sử dụng cho việc mã hóa video đầu ra. Mặc định là aac.
  • audio_bitrate (tùy chọn, string): Bitrate âm thanh để sử dụng cho việc mã hóa video đầu ra. Mặc định là 128k.
  • webhook_url (tùy chọn, string): URL để nhận thông báo webhook khi hoàn tất tác vụ.
  • id (tùy chọn, string): Mã định danh duy nhất cho yêu cầu.

Directive validate_payload trong tệp routes đảm bảo rằng payload yêu cầu tuân theo schema đã chỉ định, bao gồm các tham số bắt buộc và tùy chọn, kiểu dữ liệu của chúng, và bất kỳ ràng buộc bổ sung nào.

Ví dụ yêu cầu

{
  "video_url": "https://example.com/video.mp4",
  "start": "00:01:00",
  "end": "00:03:00",
  "video_codec": "libx264",
  "video_preset": "faster",
  "video_crf": 28,
  "audio_codec": "aac",
  "audio_bitrate": "128k",
  "webhook_url": "https://example.com/webhook",
  "id": "unique-request-id"
}
curl -X POST \
  https://api.revidapi.com/paid/video/trim \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "video_url": "https://example.com/video.mp4",
    "start": "00:01:00",
    "end": "00:03:00",
    "video_codec": "libx264",
    "video_preset": "faster",
    "video_crf": 28,
    "audio_codec": "aac",
    "audio_bitrate": "128k",
    "webhook_url": "https://example.com/webhook",
    "id": "unique-request-id"
  }'

4. Phản hồi

Phản hồi thành công

Phản hồi thành công tuân theo cấu trúc phản hồi chung được định nghĩa trong tệp app.py. Đây là ví dụ:

{
  "endpoint": "/v1/video/trim",
  "code": 200,
  "id": "unique-request-id",
  "job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
  "response": "https://example.com/trimmed-video.mp4",
  "message": "success",
  "pid": 12345,
  "queue_id": 6789,
  "run_time": 5.234,
  "queue_time": 0.123,
  "total_time": 5.357,
  "queue_length": 0,
  "build_number": "1.0.0"
}

Phản hồi lỗi

  • 400 Bad Request: Được trả về khi payload yêu cầu bị thiếu hoặc chứa tham số không hợp lệ.
{
  "code": 400,
  "message": "Invalid request payload"
}
  • 401 Unauthorized: Được trả về khi header x-api-key bị thiếu hoặc không hợp lệ.
{
  "code": 401,
  "message": "Unauthorized"
}
  • 500 Internal Server Error: Được trả về khi có lỗi không mong muốn xảy ra trong quá trình cắt video.
{
  "code": 500,
  "message": "An error occurred during the video trimming process"
}

5. Xử lý lỗi

Endpoint xử lý các lỗi phổ biến như thiếu hoặc tham số không hợp lệ bằng cách trả về các mã trạng thái HTTP và thông báo lỗi phù hợp. Decorator validate_payload đảm bảo rằng payload yêu cầu tuân theo schema đã chỉ định, và bất kỳ vi phạm nào sẽ dẫn đến lỗi 400 Bad Request.

Ngữ cảnh ứng dụng chính (app.py) bao gồm xử lý lỗi cho hàng đợi tác vụ. Nếu đạt đến độ dài hàng đợi tối đa, endpoint sẽ trả về lỗi 429 Too Many Requests với thông báo tương ứng.

6. Ghi chú sử dụng

  • Các tham số startend là tùy chọn, nhưng ít nhất một trong số chúng phải được cung cấp để thực hiện thao tác cắt.
  • Các tham số video_codec, video_preset, video_crf, audio_codec, và audio_bitrate là tùy chọn và cho phép người dùng tùy chỉnh cài đặt mã hóa cho video đầu ra.
  • Tham số webhook_url là tùy chọn và có thể được sử dụng để nhận thông báo khi tác vụ hoàn tất.
  • Tham số id là tùy chọn và có thể được sử dụng để xác định duy nhất yêu cầu.

7. Vấn đề thường gặp

  • Cung cấp video_url không hợp lệ hoặc không thể truy cập.
  • Chỉ định giá trị không hợp lệ hoặc không được hỗ trợ cho các tham số mã hóa (video_codec, video_preset, video_crf, audio_codec, audio_bitrate).
  • Gặp phải vấn đề với quá trình cắt video do định dạng video không được hỗ trợ hoặc tệp bị hỏng.

8. Thực hành tốt nhất

  • Xác thực tham số video_url để đảm bảo nó trỏ đến tệp video hợp lệ và có thể truy cập.
  • Sử dụng cài đặt mã hóa phù hợp dựa trên yêu cầu chất lượng đầu ra và kích thước tệp mong muốn.
  • Triển khai xử lý lỗi và cơ chế thử lại cho các yêu cầu thất bại hoặc vấn đề mạng.
  • Giám sát độ dài hàng đợi tác vụ và điều chỉnh giá trị MAX_QUEUE_LENGTH tương ứng để tránh quá tải hệ thống.
  • Triển khai cơ chế giới hạn tốc độ hoặc điều tiết để tránh lạm dụng hoặc yêu cầu quá mức.

Giá cả

35 credits cho mỗi yêu cầu

Chi phí cố định bất kể độ dài video hay thời lượng cắt.


Kiểm tra Trạng thái Công việc

Sau khi gửi một công việc, bạn có thể kiểm tra trạng thái của nó bằng cách sử dụng job_id được trả về trong phản hồi.

Endpoint

URL Path: https://api.revidapi.com/paid/get/job/status
HTTP Method: POST

Yêu cầu

Headers

  • x-api-key (bắt buộc): API key để xác thực.
  • Content-Type: application/json

Tham số Body

{
  "job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6"
}

Ví dụ Yêu cầu

curl -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6"}' \
  https://api.revidapi.com/paid/get/job/status

Phản hồi

Phản hồi Thành công

{
  "endpoint": "/v1/toolkit/job/status",
  "code": 200,
  "id": null,
  "job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
  "response": {
    "job_status": "done",
    "job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
    "queue_id": 140368864456064,
    "process_id": 123456,
    "response": {
      "endpoint": "/v1/endpoint/name",
      "code": 200,
      "id": "request-123",
      "job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
      "response": "https://cloud-storage.example.com/output.mp4",
      "message": "success",
      "pid": 123456,
      "queue_id": 140368864456064,
      "run_time": 2.345,
      "queue_time": 0.123,
      "total_time": 2.468,
      "queue_length": 0,
      "build_number": "1.0.0"
    }
  },
  "message": "success",
  "pid": 123456,
  "queue_id": 140368864456064,
  "run_time": 0.001,
  "queue_time": 0.0,
  "total_time": 0.001,
  "queue_length": 0,
  "build_number": "1.0.0"
}

Phản hồi Lỗi

  • 404 Not Found: Nếu không tìm thấy công việc với job_id được cung cấp:
{
  "error": "Job not found",
  "job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6"
}
  • 500 Internal Server Error: Nếu xảy ra lỗi không mong muốn:
{
  "error": "Failed to retrieve job status: <error_message>",
  "code": 500
}