ตัวกรองการซ้อนทับ ffmpeg เพิ่มพื้นหลังสีดำสำหรับ PNG ด้วยความโปร่งใส


0

ฉันพยายามเพิ่ม 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 ดังนั้นทั้งหมดของคุณ format=rgba ทำคือการกระตุ้น lavfi เพื่อแทรก scaler อัตโนมัติเพื่อแปลง yuv420p เป็น rgba คุณต้องตรวจสอบรูปแบบของอินพุตโอเวอร์เลย์ (รอง) เพื่อให้แน่ใจว่าอัลฟ่ายังคงอยู่ รูปแบบของอินพุตหลักไม่เกี่ยวข้อง สำหรับการตรวจสอบดำเนินการวางซ้อนโดยใช้ CLI (โดยไม่เพิ่มตัวกรองรูปแบบด้วยตนเอง) และตรวจสอบ
Gyan

ขอบคุณ @Gyan ฉันได้ลองจาก CLI (แต่ใช้ x264) และมันใช้ได้ดี ดังนั้นเนื่องจากอินพุตโอเวอร์เลย์นั้นดีความคิดใด ๆ ที่ทำให้เกิดปัญหาดังกล่าว
Pavel S.

แปลงรูปแบบของอุปกรณ์รองเป็น yuva420p จากนั้นป้อนเป็นภาพซ้อน
Gyan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.