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

Hãy xem trangCác định dạng được ExoPlayer hỗ trợ để biết thông tin tổng quan về các định dạng nội dung nghe nhìn. Transformer áp dụng các hạn chế tương tự về việc tải, trích xuất và giải mã luồng, mặc dù Transformer không hỗ trợ các mô-đun bộ giải mã phần mềm đi kèm của ExoPlayer.

Transformer cũng dựa vào MediaCodec để mã hoá, điều này hạn chế các định dạng đầu ra được hỗ trợ. Hãy xem bài viết Bộ mã hoá và giải mã video MediaCodec để biết thêm thông tin về các hạn chế khi mã hoá.

Theo mặc định, Transformer xuất các tệp MP4 tiêu chuẩn bằng InAppMp4Muxer. Nếu ứng dụng của bạn yêu cầu MP4 phân mảnh, bạn có thể chuyển InAppFragmentedMp4Muxer.Factory khi khởi chạy thực thể Transformer. Media3 cũng hỗ trợ các định dạng khác như WebM, AAC, Ogg bằng cách sử dụng các bộ ghép kênh chuyên dụng như WebmMuxer , AacMuxerOggMuxer. Các định dạng này phải được gói trong một Muxer.Factory tuỳ chỉnh để được chèn, nhưng các bản phát hành trong tương lai sẽ bao gồm các cách triển khai nhà máy sẵn sàng sử dụng để đơn giản hoá quy trình này.

Hình ảnh được hỗ trợ

Transformer sử dụng BitmapFactory để tải và giải mã tất cả tài sản hình ảnh, vì vậy, Transformer hỗ trợ tất cả các định dạng mà BitmapFactory hỗ trợ. Hãy xem bài viết Hình ảnh được hỗ trợ để biết 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ụ: tệp GIF), một khung hình ảnh duy nhất từ vùng chứa sẽ được hiển thị nếu bạn sử dụng DefaultAssetLoaderFactory.

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

Transformer hỗ trợ xử lý dữ liệu đầu vào ở các định dạng nội dung nghe nhìn mới hơn, cung cấp các tính năng đặc biệt so với các định dạng thông thường.

Xử lý video HDR

Ngày càng có nhiều thiết bị hỗ trợ tính năng quay video HDRmang đến màu sắc sống động, chính xác hơn và dải độ sáng lớn hơn.

Transformer hỗ trợ chỉnh sửa video HDR từ Android 13 (cấp độ API 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 hiệu ứng video GL đều cần xử lý các thành phần màu dấu phẩy động 16 bit và không gian màu BT.2020. HDR_MODE_KEEP_HDR là chế độ mặc định khi tạo Composition. Nếu không hỗ trợ chỉnh sửa HDR, Transformer sẽ 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 được gọi là ánh xạ tông màu, được hỗ trợ từ Android 10 (cấp độ API 29) trở lên trên các thiết bị có hỗ trợ giải mã và OpenGL bắt buộc. Tính năng này hữu ích khi chia sẻ nội dung nghe nhìn HDR cho các ứng dụng hoặc dịch vụ khác không hỗ trợ việc thu thập nội dung HDR. Để bật tính năng ánh xạ tông màu bằng OpenGL, hãy gọi setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL) khi tạo Composition. Từ Android 12 (cấp độ API 31) trở lên, MediaCodec cũng hỗ trợ tính năng ánh xạ tông màu trên một số thiết bị, bao gồm tất cả các thiết bị chạy Android 13 trở lên có thể quay video HDR. Để bật tính năng ánh xạ tông màu bằng MediaCodec, hãy 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 bao gồm siêu dữ liệu cho biết tốc độ phát từng phần của luồng. Làm phẳng là quá trình tạo một luồng video mới dựa trên video chuyển động chậm, nhưng trong đó các phần được tăng tốc hoặc giảm tốc dựa trên siêu dữ liệu, để chúng phát chính xác ngay cả trên những trình phát không áp dụng siêu dữ liệu chuyển động chậm.

Để làm phẳng các luồng chuyển động chậm, hãy sử dụng phương thức 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);

Tính năng này cho phép bạn hỗ trợ video chuyển động chậm mà không phải lo lắng về việc 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 video đã làm phẳng thay vì phiên bản gốc.