Định dạng được hỗ trợ

Xem các định dạng được hỗ trợ của ExoPlayer để xem giới thiệu về truyền thông nói chung. Các giới hạn tương tự về việc tải, trích xuất và luồng giải mã áp dụng với Transformer, mặc dù Transformer không hỗ trợ Các mô-đun giải mã phần mềm đi kèm của ExoPlayer.

Bộ biến áp cũng dựa vào MediaCodec để mã hoá cũng như cần ghép kênh, hoặc mux, đầu ra các tệp nội dung nghe nhìn, giới hạn các định dạng đầu ra được hỗ trợ. Xem Bộ mã hoá và giải mã video MediaCodec để biết thêm thông tin về các giới hạn mã hoá và MediaMuxer cho các giới hạn áp dụng cho vùng chứa nội dung nghe nhìn đầu ra. Chỉ thiết bị chuyển đổi xuất ra tệp MP4.

Theo mặc định, Transformer sử dụng MediaMuxer, nhưng InAppMuxer đang trong quá trình phát triển có sẵn để tránh một số giới hạn của MediaMuxer về xung quanh cấu trúc khung tham chiếu và định dạng mẫu được hỗ trợ. Trình kết hợp mặc định sẽ trở thành trình trộn trong ứng dụng ở bản phát hành sau này.

Hỗ trợ hình ảnh

Transformer sử dụng BitmapFactory để tải và giải mã tất cả thành phần hình ảnh, vì vậy Transformer hỗ trợ tất cả các định dạng mà BitmapFactory thực hiện. Xem Hỗ trợ hình ảnh cho các loại hình ảnh được hỗ trợ. Đối với các định dạng nhiều hình ảnh (ví dụ: gif), một hình ảnh duy nhất khung này từ vùng chứa sẽ được hiển thị nếu DefaultAssetLoaderFactory là đã sử dụng.

Định dạng đặc biệt

Transformer hỗ trợ xử lý dữ liệu đầu vào ở các định dạng phương tiện mới hơn cung cấp so với định dạng thông thường.

Xử lý video HDR

Ngày càng có nhiều thiết bị hỗ trợ video HDR chụp, mang đến hình ảnh sống động, chính xác hơn và phạm vi độ sáng lớn hơn.

Transformer hỗ trợ chỉnh sửa video HDR từ Android 13 (API cấp 33) trở lên trên các thiết bị có hỗ trợ mã hoá bắt buộc. Khi chỉnh sửa video HDR, mọi GL Hiệu ứng video cần xử lý các thành phần màu dấu phẩy động 16 bit và BT.2020 hệ màu. HDR_MODE_KEEP_HDR là chế độ mặc định khi tạo Composition Nếu chỉnh sửa HDR không được hỗ trợ, Transformer quay lại sử dụng HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL.

Tính năng chuyển đổi HDR sang SDR (còn gọi là ánh xạ sắc độ) được hỗ trợ trên Android 10 (API cấp 29) trở lên trên các thiết bị có phần giải mã và OpenGL bắt buộc của Google. Điều này rất hữu ích khi chia sẻ nội dung nghe nhìn HDR với các ứng dụng hoặc dịch vụ khác không hỗ trợ truyền dẫn nội dung HDR. Cách bật tính năng ánh xạ âm thanh bằng lệnh gọi OpenGL setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL) khi tạo Composition Từ Android 12 (API cấp 31) trở lên, MediaCodec cũng hỗ trợ tính năng ánh xạ âm thanh trên một số thiết bị, bao gồm cả mọi thiết bị đang chạy Android 13 trở lên có thể quay video HDR. Để bật tính năng ánh xạ âm điệu bằng cách sử dụng MediaCodec gọi setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_MEDIACODEC).

Xử lý nội dung nghe nhìn chuyển động chậm

Video chuyển động chậm chứa siêu dữ liệu cho biết tốc độ của mỗi phần của luồng sẽ được phát. Làm phẳng là quá trình tạo ra một luồng video dựa trên video chuyển động chậm nhưng có các phần được đẩy nhanh hoặc bị chậm lại dựa trên siêu dữ liệu để chúng có thể phát chính xác ngay cả trên trình phát không áp dụng siêu dữ liệu chuyển động chậm.

Để làm phẳng luồng chuyển động chậm, hãy sử dụng trình tạo setFlattenForSlowMotion trên EditedMediaItem.

Kotlin

val editedMediaItem =
    EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build()
val transformer =
    Transformer.Builder(context).addListener(transformerListener).build()
transformer.start(editedMediaItem, outputPath)

Java

EditedMediaItem editedMediaItem =
    new EditedMediaItem.Builder(inputMediaItem).setFlattenForSlowMotion(true).build();
Transformer transformer =
    new Transformer.Builder(context).addListener(transformerListener).build();
transformer.start(editedMediaItem, outputPath);

Chế độ này giúp bạn hỗ trợ video chuyển động chậm mà không phải lo lắng xử lý các định dạng đặc biệt này. Bạn chỉ cần lưu trữ và phát phiên bản làm phẳng của video thay vì phiên bản gốc.