Skip to content

react-native-video-trim là gì? ​

react-native-video-trim là thư viện React Native dùng để cắt tệp video và âm thanh. Thư viện cho bạn hai cách làm việc với media:

  • Màn hình chỉnh sửa native. showEditor() mở trình cắt toàn màn hình với dòng thời gian thumbnail (hoặc dạng sóng âm thanh), phát lại, thu phóng, thanh công cụ chỉnh sửa (lật, xoay, cắt khung, tắt tiếng, tốc độ, hoàn tác, làm lại) và hộp thoại xác nhận lưu hoặc hủy. Người dùng chọn đoạn cần giữ, còn bạn nhận tệp đầu ra qua các sự kiện.
  • Headless API. Các hàm như trim(), compress(), merge() và mixAudio() xử lý tệp mà không cần UI và trả về Promise.

Trên cả hai nền tảng, việc xử lý media đều chạy bằng FFmpegKit. Mỗi khi cần mã hóa lại video, thư viện dùng bộ mã hóa phần cứng H.264, kèm cơ chế dự phòng tự động trên Android.

Nền tảng và kiến trúc ​

Hỗ trợ
iOSCó (Swift, AVFoundation, FFmpegKit)
AndroidCó (Kotlin, MediaCodec, FFmpegKit), min SDK 24
New Architecture (TurboModules)Có
Old Architecture (Bridge)Có, xem Old Architecture
ExpoDevelopment build và expo prebuild. Không hỗ trợ Expo Go.

Bạn có thể làm gì ​

Tính năngXem ở đâu
Cắt video và âm thanh trên dòng thời gian trực quanTrình chỉnh sửa, trim()
Dạng sóng cho tệp âm thanhCắt âm thanh
Lật, xoay 90°, cắt khung tự do, hoàn tác và làm lạiLật, xoay, cắt khung
Cắt chính xác đến từng khung hìnhCắt chính xác
Bỏ track âm thanh, đổi tốc độ (0.25x đến 4x)Tốc độ và tắt tiếng
Nén theo preset hoặc theo bitrate và kích thước cụ thểcompress()
Lấy một khung hình dưới dạng JPEG hoặc PNGgetFrameAt()
Tách track âm thanhextractAudio()
Chuyển một đoạn video thành GIFtoGif()
Nối nhiều clipmerge()
Thêm nhạc nền hoặc lời thuyết minhmixAudio()
Lưu vào thư viện ảnh, lưu qua trình chọn tài liệu, chia sẻLưu và quản lý tệp
Giao diện tối và sáng, màu tùy chỉnhTheme và màu sắc
Nguồn HTTPSTệp từ xa

Các phần ghép lại với nhau thế nào ​

text
your app ── showEditor(uri, options) ──▶ native editor ──▶ events (onLoad, onFinishTrimming, onError, ...)
         ── trim / compress / merge ... ──▶ FFmpegKit ──▶ Promise<{ outputPath, ... }>
         ── saveToPhoto / saveToDocuments / share / deleteFile ──▶ output files

Mọi API tạo ra tệp đều trả về hoặc báo lại outputPath tuyệt đối của tệp đó. Đầu ra của trình chỉnh sửa và của trim() được giữ lại cho đến khi bạn xóa; đầu ra của các headless API còn lại được ghi vào thư mục cache. Xem Lưu và quản lý tệp.

Bước tiếp theo ​

Ghi công ​

Trình chỉnh sửa trên Android dựa trên Android-Video-Trimmer, còn UI trên iOS dựa trên VideoTrimmerControl.

Phát hành theo giấy phép MIT.