กำลังแปลงบิตแมป 32 bpp เป็น 8bpp ด้วยจานสี 256 สี รูปภาพนี้ฉันต้องการเข้ารหัสโดยใช้ h264 และส่งผ่านซ็อกเก็ต และอีกด้านหนึ่งก็ถอดรหัสเฟรมและแสดงบน UI ของฉัน
จากตัวเข้ารหัส ด้านข้าง:
- จับภาพ 32 bpp
- จัดปริมาณภาพเป็น 8bpp ด้วยจานสี 256 สี
- Sws_scale ภาพจาก PIX_FMT_GRAY8 ถึง YUV420P
- เข้ารหัสด้วย h264 และส่งผ่านซ็อกเก็ต
จากตัวถอดรหัสด้านข้าง
- รับภาพ.
- ถอดรหัสภาพ
- Sws_scale จาก YUV420P ถึง PIX_FMT_GRAY8
- และแสดงบน UI พร้อมกับข้อมูลพาเล็ต (ส่งจาก Encoder ผ่านซ็อกเก็ต)
เมื่อทำตามขั้นตอนข้างต้น ฉันจะได้ภาพที่บิดเบี้ยวโดยสิ้นเชิง และเมื่อฉันไม่ใช้จานสี ฉันจะได้ภาพขาวดำ
ฉันไม่ชัดเจนว่าจะเข้ารหัสบิตแมปจานสี 8bpp 256 โดยใช้ h264 และถอดรหัสตามนั้นได้อย่างไร โปรดช่วยฉันเกี่ยวกับเรื่องนี้
ฉันกำลังทำงานกับ C ++ บนแพลตฟอร์ม windows
ขอบคุณล่วงหน้าพอล