รูปแบบที่รองรับ

ดูรูปแบบที่รองรับ ExoPlayer สำหรับข้อมูลเบื้องต้นเกี่ยวกับ รูปแบบสื่อโดยทั่วไป ข้อจำกัดเดียวกันในการโหลด การดึงข้อมูล และ สตรีมการถอดรหัสจะใช้กับ Transformer แม้ว่า Transformer จะไม่รองรับ โมดูลตัวถอดรหัสซอฟต์แวร์ที่ให้มาด้วย ExoPlayer

นอกจากนี้ Transformer ต้องใช้ MediaCodec ในการเข้ารหัสและจำเป็นต้องใช้มัลติเพล็กซ์ หรือ mux เป็นไฟล์สื่อเอาต์พุต ซึ่งจำกัดรูปแบบเอาต์พุตที่รองรับ โปรดดู ตัวแปลงรหัสวิดีโอ MediaCodec เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับข้อจำกัดในการเข้ารหัสและ MediaMuxer เพื่อดูข้อจำกัดที่ใช้กับคอนเทนเนอร์สื่อเอาต์พุต เฉพาะหม้อแปลง ให้เอาต์พุตไฟล์ MP4

โดยค่าเริ่มต้น Transformer จะใช้ MediaMuxer แต่อยู่ระหว่าง InAppMuxer สามารถเลือกเพื่อหลีกเลี่ยงข้อจำกัดบางประการของ MediaMuxer โครงสร้างเฟรมอ้างอิงและรูปแบบตัวอย่างที่รองรับ Muxer เริ่มต้นจะ ในการเป็น Muxer ในแอปในรุ่นต่อๆ ไป

การรองรับรูปภาพ

Transformer ใช้ BitmapFactory เพื่อโหลดและถอดรหัสชิ้นงานรูปภาพทั้งหมด Transformer รองรับทุกรูปแบบที่ Bitmapfactor รองรับ โปรดดู การรองรับรูปภาพ สำหรับประเภทรูปภาพที่รองรับ สำหรับรูปแบบที่มีหลายภาพ (เช่น GIF) ภาพเดียว เฟรมจากคอนเทนเนอร์จะปรากฏขึ้นหาก DefaultAssetLoaderFactory คือ

รูปแบบพิเศษ

Transformer รองรับการป้อนข้อมูลในรูปแบบสื่อใหม่ๆ ที่มีองค์ประกอบ คุณลักษณะเมื่อเทียบกับรูปแบบปกติ

การจัดการวิดีโอ HDR

มีอุปกรณ์มากขึ้นเรื่อยๆ ที่รองรับวิดีโอ HDR จับภาพ ซึ่งเพิ่มความชัดเจนและแม่นยำ และช่วงความสว่างที่มากขึ้น

Transformer รองรับการแก้ไขวิดีโอ HDR ตั้งแต่ Android 13 (API ระดับ 33) เป็นต้นไป บนอุปกรณ์ที่รองรับการเข้ารหัสที่กำหนด เมื่อตัดต่อวิดีโอ HDR, GL ใดก็ได้ เอฟเฟกต์วิดีโอจะต้องจัดการกับองค์ประกอบสีจุดทศนิยม 16 บิตและ BT.2020 พื้นที่สี HDR_MODE_KEEP_HDR คือโหมดเริ่มต้นเมื่อสร้าง Composition หากระบบไม่รองรับการแก้ไข HDR ระบบ Transformer กลับไปใช้ HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL

Android รองรับการแปลง HDR เป็น SDR หรือที่เรียกว่าการแมปโทนสี 10 (API ระดับ 29) ขึ้นไปบนอุปกรณ์ที่ต้องมีการถอดรหัสและ OpenGL การสนับสนุน ซึ่งจะมีประโยชน์เมื่อแชร์สื่อ HDR กับแอปหรือบริการอื่นๆ ที่ ไม่รองรับการส่งผ่านข้อมูลของเนื้อหา HDR วิธีเปิดใช้การแมปโทนโดยใช้การเรียกใช้ OpenGL setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL) เมื่อสร้าง Composition ตั้งแต่ Android 12 (API ระดับ 31) เป็นต้นไป MediaCodec ยังรองรับการแมปโทนสีบนอุปกรณ์บางประเภท รวมถึงอุปกรณ์ทั้งหมดที่เรียกใช้ Android 13 ขึ้นไปที่ถ่ายวิดีโอ HDR ได้ วิธีเปิดใช้การแมปโทนสีโดยใช้ MediaCodec โทรหา setHdrMode(HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_MEDIACODEC)

การจัดการสื่อสโลว์โมชัน

วิดีโอสโลว์โมชันมีข้อมูลเมตาที่ระบุความเร็วที่แต่ละส่วน ของสตรีม ควรเล่น Flattening เป็นกระบวนการสร้างฟิลด์ สตรีมวิดีโอที่อิงจากวิดีโอสโลว์โมชัน แต่ส่วนที่เพิ่มความเร็ว หรือช้าลงตามข้อมูลเมตา เพื่อให้ผู้เล่นเล่นอย่างถูกต้อง ที่ไม่ใช้ข้อมูลเมตาแบบสโลว์โมชัน

หากต้องการปรับสตรีมสโลว์โมชัน ให้ใช้เครื่องมือสร้าง setFlattenForSlowMotion ใน 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);

ซึ่งจะช่วยให้คุณรองรับวิดีโอสโลว์โมชันโดยไม่ต้องกังวลเกี่ยวกับ กับรูปแบบพิเศษเหล่านี้ คุณเพียงแค่ต้องจัดเก็บและเล่น มีการนำวิดีโอเวอร์ชันแยกเป็นหลายรายการแทนวิดีโอต้นฉบับ