ฉันพยายามเพิ่ม PNG แบบโอเวอร์เลย์ในวิดีโอ h264 โดยทางโปรแกรม
แม้ว่าภาพ PNG จะมีช่องอัลฟา แต่หลังจากที่ฉันใช้ฟิลเตอร์วิดีโอที่ได้รับภาพนี้มีพื้นหลังสีดำแทนที่จะเป็นแบบโปร่งใส นี่คือตัวกรอง:
[in][in2]overlay=15:15[out]
ฉันใช้ openh264 เพื่อถอดรหัส / เข้ารหัสวิดีโอดังนั้นรูปแบบพิกเซลของวิดีโอที่ได้คือ YUV420P ฉันพยายามกำหนดรูปแบบในตัวกรองอย่างชัดเจน:
[in][in2]overlay=15:15,format=rgba,format=yuv420p[out];
แต่ไม่มีการเปลี่ยนแปลง ffmpeg: 3.4 ; openh264: Git (เช่น 1.9.0)
ขอบคุณล่วงหน้า.
ที่เพิ่ม: ไฟล์ PNG ของฉัน: อาจมองไม่เห็นบนพื้นหลังสีขาว
คุณสามารถแชร์ PNG ได้ไหม? และคำสั่งเต็มของคุณ
—
Gyan
@Gyan ฉันแบ่งปัน PNG สำหรับคำสั่ง - ฉันทำทุกอย่างโดยทางโปรแกรม สิ่งสำคัญคือวิดีโอของฉันที่มีรูปแบบพิกเซล YUV420p
—
Pavel S.
หากคุณใช้ C API แสดงว่าเป็นของ SO โอเวอร์เลย์ค่าเริ่มต้นเป็น yuv420p ดังนั้นทั้งหมดของคุณ
—
Gyan
format=rgba
ทำคือการกระตุ้น lavfi เพื่อแทรก scaler อัตโนมัติเพื่อแปลง yuv420p เป็น rgba คุณต้องตรวจสอบรูปแบบของอินพุตโอเวอร์เลย์ (รอง) เพื่อให้แน่ใจว่าอัลฟ่ายังคงอยู่ รูปแบบของอินพุตหลักไม่เกี่ยวข้อง สำหรับการตรวจสอบดำเนินการวางซ้อนโดยใช้ CLI (โดยไม่เพิ่มตัวกรองรูปแบบด้วยตนเอง) และตรวจสอบ
ขอบคุณ @Gyan ฉันได้ลองจาก CLI (แต่ใช้ x264) และมันใช้ได้ดี ดังนั้นเนื่องจากอินพุตโอเวอร์เลย์นั้นดีความคิดใด ๆ ที่ทำให้เกิดปัญหาดังกล่าว
—
Pavel S.
แปลงรูปแบบของอุปกรณ์รองเป็น yuva420p จากนั้นป้อนเป็นภาพซ้อน
—
Gyan