Thông tin file audio & video API
Đọc thời lượng, bitrate, codec, độ phân giải, fps, tần số mẫu, số kênh, tag và ảnh bìa của file MP3, M4A, FLAC, OGG, WAV, MP4, MOV, WebM, MKV.
Tải file lên qua multipart file (hoặc body thô / file_base64), hoặc truyền một url công khai: chỉ max_mb MB đầu (mặc định 8, tối đa 25) được tải về, đủ cho hầu hết các file. Định dạng: MP3 (ID3v1 / v2), AAC (ADTS), M4A / MP4 / MOV (ISO BMFF), FLAC, Ogg Vorbis / Opus, WAV, AIFF, WebM / MKV (Matroska), WMA / ASF…, đọc bằng thư viện music-metadata.
Kết quả có container, codec chính, duration (giây và duration_hms), bitrate, sample_rate, channels, bits_per_sample, lossless, và với video là width, height, fps, video_codec (H.264, H.265 / HEVC, VP9, AV1…). tracks liệt kê từng track audio / video / phụ đề; tags gồm tên bài, nghệ sĩ, album, năm, thể loại, số track, ghi chú và phần mềm mã hoá.
cover mô tả ảnh bìa nhúng trong file; khi cover=true sẽ kèm thumbnail JPEG (tối đa 300 px) dạng data URL. Khi URL chỉ được đọc một phần, thời lượng và bitrate có thể là ước tính và file MP4 có chỉ mục ở cuối có thể thiếu chi tiết (kết quả sẽ ghi chú).
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
file | body | file | không | File audio hoặc video (multipart, body thô hoặc file_base64), tối đa theo giới hạn file của gói. | |
url | body|query | string | không | URL công khai của file thay cho việc tải lên. | |
max_mb | body|query | number | không | 8 | Số MB đọc từ URL (1-25). |
cover | body|query | boolean | không | false | Kèm ảnh thu nhỏ JPEG của ảnh bìa nhúng. |
Ví dụ
curl -X POST "https://apibox.io.vn/v1/media-metadata" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@./my-file"const form = new FormData();
form.append('file', fileInput.files[0]);
const res = await fetch('https://apibox.io.vn/v1/media-metadata', {
method: 'POST',
headers: { Authorization: 'Bearer YOUR_API_KEY' },
body: form,
});
console.log(await res.json());import requests
res = requests.post(
"https://apibox.io.vn/v1/media-metadata",
headers={"Authorization": "Bearer YOUR_API_KEY"},
files={"file": open("my-file", "rb")},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/media-metadata');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
CURLOPT_POSTFIELDS => ['file' => new CURLFile('my-file')],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Kết quả trả về
{
"file": {
"name": "bai-giang.mp4",
"bytes": 31997,
"kind": "file"
},
"container": "isom/iso2/avc1/mp41",
"codec": "MPEG-4/AAC",
"codec_profile": null,
"duration": 2.023,
"duration_hms": "00:02.023",
"bitrate": 127988,
"overall_bitrate": 127988,
"sample_rate": 44100,
"channels": 1,
"bits_per_sample": 16,
"lossless": false,
"has_audio": true,
"has_video": true,
"width": 320,
"height": 240,
"fps": 25,
"video_codec": "H.264 / AVC",
"tracks": [
{
"id": 1,
"type": "video",
"codec": "H.264 / AVC",
"codec_id": "avc1",
"language": null,
"duration": 2,
"bitrate": 45020,
"width": 320,
"height": 240,
"display_width": 320,
"display_height": 240,
"fps": 25,
"interlaced": null
},
{
"id": 2,
"type": "audio",
"codec": "MPEG-4/AAC",
"codec_id": "mp4a",
"language": null,
"duration": 2.023,
"bitrate": 69699,
"sample_rate": 44100,
"channels": 1,
"bit_depth": 16
}
],
"tags": {
"title": "MP4 test",
"encodedby": "Lavf62.3.100"
},
"tag_types": [
"iTunes"
],
"cover": null
}
Ứng dụng
- Kiểm tra video bài giảng tải lên LMS (độ phân giải, thời lượng)
- Điền thông tin podcast, kho nhạc từ tag ID3 / Vorbis
- Kiểm tra codec và độ phân giải trước khi gửi video đi chuyển mã
- Lấy ảnh bìa thu nhỏ cho thư viện audio
Hỏi đáp
Với URL có tải cả file không?
Không. Chỉ max_mb megabyte đầu (mặc định 8) được đọc. Phần đó chứa header của hầu hết file audio và file MP4 có chỉ mục ở đầu (fast start).
Có đọc độ phân giải và tốc độ khung hình video không?
Có với MP4, MOV, M4V, WebM và MKV: width, height, fps và codec video của từng track video.
File có bị lưu lại không?
Không. File chỉ được xử lý trong bộ nhớ cho yêu cầu đó rồi bỏ đi.
API liên quan
Metadata ảnh & EXIF
Đọc kích thước, định dạng, thông tin EXIF máy ảnh, thông số chụp và vị trí GPS của ảnh JPEG, PNG, WebP, HEIC, AVIF, GIF… – upload file hoặc qua URL.
PDFMetadata PDF
Đọc metadata file PDF: số trang, tiêu đề, tác giả, phần mềm tạo, ngày tạo, phiên bản PDF, mã hoá, số trường form và khổ giấy từng trang (A4, Letter…).
PDF₫Tạo PDF báo giá, phiếu thu
Tạo PDF báo giá, phiếu thu, đơn đặt hàng, hoá đơn bán hàng gọn đẹp từ JSON: tiếng Việt chuẩn, thuế GTGT, số tiền bằng chữ và mã VietQR để thanh toán.