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