VLC จอเขียว: สาเหตุและ 5 วิธีแก้แบบเร็ว

ปัญหาการเล่นวิดีโอ อัปเดตล่าสุด: ใช้ได้กับ: Windows / Linux · VLC 3.0.x · NVIDIA & AMD GPUs

ภาพสีเขียวทึบ (บางครั้งเป็นสีชมพูหรือม่วง) ที่มาแทนวิดีโอของคุณ เป็นหนึ่งในปัญหาที่เป็นเอกลักษณ์ของ VLC ต่างจากอาการจอดำ อาการจอเขียวหมายความว่าเฟรมวิดีโอถูกถอดรหัสอยู่ — แต่ได้ฟอร์แมตสีที่ผิด ตัวเรนเดอร์จึงวาดข้อมูลขยะออกมา สาเหตุแทบทุกครั้งคือตัวถอดรหัสวิดีโอด้วยฮาร์ดแวร์ส่งฟอร์แมตพิกเซลที่ไม่รองรับออกมา หรือโมดูลเอาต์พุตวิดีโอจัดการมันได้ไม่ดี นี่คือปัญหาในชั้นการเรนเดอร์ ไม่ใช่ไฟล์เสียหาย วิธีแก้ด้านล่างเรียงตามความน่าจะเป็น และในกรณีส่วนใหญ่แก้ได้ในเวลาไม่ถึงห้านาที

ทำไมจึงเกิดเหตุการณ์นี้?

  • การถอดรหัสด้วย DXVA / D3D11VA ที่ฟอร์แมตพิกเซลไม่เข้ากัน — ตัวถอดรหัสของ GPU ส่งฟอร์แมต NV12 หรือ P010 ออกมา ไดรเวอร์เก่าหรือโมดูลเอาต์พุตบางตัวแปลงมันไม่ได้ จึงเกิดเฟรมสีเขียว
  • ความขัดแย้งของโมดูลเอาต์พุตวิดีโอDirect3D11 บน Windows และ VDPAU/VA-API บน Linux เป็นผู้ต้องสงสัยหลัก
  • บั๊กของไดรเวอร์ GPU กับ codec บางตัวHEVC 10-bit และ VP9 เป็นตัวกระตุ้นที่พบบ่อยที่สุด
  • คอนฟิกของ VLC เสียหายและยังเลือกเอาต์พุตตัวเก่าค้างไว้ — โมดูลที่ไม่มีอยู่ในระบบของคุณอีกแล้ว

วิธีแก้ไข

วิธี 1ปิดการถอดรหัสด้วยการเร่งความเร็วฮาร์ดแวร์

แก้ปัญหาจอดำ/จอเขียว ภาพแตกเป็นบล็อก และภาพกระตุกได้ในกรณีส่วนใหญ่

  1. เปิด VLC แล้วไปที่ Tools > Preferences (หรือกด Ctrl+P บน Windows/Linux และ Cmd+, บน macOS)

    หน้าต่าง Preferences จะเปิดขึ้น

  2. คลิกแท็บ Input / Codecs ทางด้านซ้าย

    ระบบจะแสดงการตั้งค่าที่เกี่ยวข้องกับ codec

  3. มองหา "Hardware-accelerated decoding" แล้วตั้งค่าเป็น Disable

    ช่องดรอปดาวน์จะแสดงคำว่า "Disable"

  4. คลิก Save แล้วปิดและเปิด VLC ใหม่ทั้งหมด (ปิดทุกหน้าต่างของ VLC ไม่ใช่แค่หน้าต่างวิดีโอ)

    VLC เริ่มทำงานใหม่โดยใช้การถอดรหัสด้วยซอฟต์แวร์

  5. เล่นไฟล์ที่มีปัญหาอีกครั้ง

    ถ้าปัญหาหายไป ต้นเหตุคือตัวถอดรหัสของ GPU

หมายเหตุอาการจอเขียวคือสัญญาณคลาสสิกของการถอดรหัสด้วยฮาร์ดแวร์ การถอดรหัสด้วยซอฟต์แวร์ใช้เส้นทางที่ผ่านการทดสอบมาอย่างดีและกำจัดปัญหาฟอร์แมตไม่ตรงกันได้ทันที

วิธี 2เปลี่ยนโมดูลเอาต์พุตวิดีโอเป็น OpenGL (บน Windows) หรือโมดูลอื่นบน Linux (VDPAU → OpenGL)

แก้ปัญหาจอดำและความผิดพลาดของการเรนเดอร์บนชุด GPU บางรุ่น

  1. ไปที่ Tools > Preferences > Video

    การตั้งค่าวิดีโอจะเปิดขึ้น

  2. ตั้งค่า "Output" เป็น OpenGL (บน Windows) หรือโมดูลอื่นบน Linux (VDPAU → OpenGL)

    โมดูลเอาต์พุตเปลี่ยนแล้ว

  3. คลิก Save แล้วเปิด VLC ใหม่

    VLC เริ่มทำงานใหม่

  4. เปิดไฟล์อีกครั้งแล้วดูภาพที่ได้

    ตอนนี้วิดีโอควรแสดงผลได้อย่างถูกต้อง

หมายเหตุถ้าโมดูลใหม่ใช้งานได้ ก็ใช้ต่อไปได้เลย GPU และไดรเวอร์แต่ละรุ่นทำงานต่างกัน ดังนั้นการลองเปลี่ยนดูจึงเป็นวิธีที่เร็วที่สุดในการหาเอาต์พุตที่เสถียร

วิธี 3อัปเดตไดรเวอร์การ์ดจอ

แก้ปัญหาจอดำ ภาพเพี้ยนเป็นสีเขียว และการแครชที่เกิดจากบั๊กของไดรเวอร์

  1. กด Win+X แล้วเปิด Device Manager (หรือ System Settings > Displays บน macOS)

    รายการอุปกรณ์จะเปิดขึ้น

  2. ขยาย "Display adapters" แล้วจดรุ่น GPU ของคุณไว้ (NVIDIA, AMD หรือ Intel)

    ระบุ GPU ของคุณได้แล้ว

  3. ดาวน์โหลดไดรเวอร์ตัวใหม่สุดจากเว็บไซต์ผู้ผลิต GPU (nvidia.com, amd.com หรือ intel.com) — หรือใช้ Windows Update

    ชุดไดรเวอร์พร้อมใช้งาน

  4. ติดตั้ง รีสตาร์ตเครื่อง แล้วลอง VLC อีกครั้ง

    ระบบทำงานด้วยไดรเวอร์ตัวใหม่

หมายเหตุโน้ตบุ๊กแบบ OEM บางครั้งบล็อกไดรเวอร์จากผู้ผลิต GPU ในกรณีนั้นให้ใช้หน้าดาวน์โหลดไดรเวอร์ของผู้ผลิตโน้ตบุ๊กแทน

วิธี 4รีเซ็ตการตั้งค่าของ VLC กลับเป็นค่าเริ่มต้น

ล้างการตั้งค่าที่เสียหายซึ่งทำให้โปรแกรมแครช จอดำ และเกิดปัญหาเสียง

  1. ปิด VLC ให้สมบูรณ์

    ไม่มีโปรเซสของ VLC ทำงานอยู่

  2. เปิด Command Prompt (Win+R → cmd) หรือเทอร์มินัล

    พร้อมใช้บรรทัดคำสั่ง

  3. รันคำสั่ง vlc --reset-config (Windows/Linux) — บน macOS ให้ลบ ~/Library/Preferences/org.videolan.vlc แทน

    การตั้งค่าของ VLC กลับไปเป็นค่าเริ่มต้น

  4. เปิด VLC แล้วตั้งค่าใหม่เฉพาะรายการที่คุณจำเป็นต้องใช้จริง

    VLC เริ่มทำงานด้วยการตั้งค่าที่สะอาด

หมายเหตุวิธีนี้จะลบการตั้งค่าที่คุณปรับแต่งไว้ทั้งหมด (รวมถึงปุ่มลัดและสกิน) หากต้องการสำรองไว้ ให้ส่งออกค่าคอนฟิกก่อนที่ Tools > Preferences > All > Interface

วิธี 5อัปเดต VLC เป็นเวอร์ชันล่าสุด

รับการแก้บั๊กและแพตช์ความปลอดภัยจากทางการ (เวอร์ชันเสถียรปัจจุบัน: 3.0.23)

  1. ใน VLC ไปที่ Help > Check for Updates

    VLC เทียบเวอร์ชันของคุณกับเวอร์ชันล่าสุด

  2. ถ้ามีอัปเดต ให้ดาวน์โหลดจากหน้าทางการ videolan.org

    ตัวติดตั้งใหม่ถูกดาวน์โหลดแล้ว

  3. ติดตั้งทับเวอร์ชันปัจจุบัน (การตั้งค่าจะถูกเก็บไว้) แล้วเปิดใหม่

    VLC ทำงานด้วยเวอร์ชันใหม่

หมายเหตุVLC 3.0.23 เป็นอัปเดตครั้งที่ 24 ของสาย 3.0 และรวมการแก้ไข demuxer กับความเสถียรไว้จำนวนมาก — ปัญหา "เล่นไม่ได้" หลายอย่างถูกแก้ไปแล้วในเวอร์ชันนี้

การแก้ไขขั้นสูง

วิธี 1บังคับใช้ฟอร์แมตสีที่ต้องการ (Linux)

แก้อาการจอเขียวบนระบบ Linux ที่ใช้ VA-API/VDPAU

  1. ปิด VLC แล้วเปิดไฟล์คอนฟิกของ VLC: ~/.config/vlc/vlcrc

    ไฟล์คอนฟิกเปิดขึ้นมา

  2. หาส่วน avcodec แล้วเพิ่มบรรทัด avcodec-hw=none (หรือค่าแทนที่ vdpau-version ถ้ามีอยู่)

    การถอดรหัสด้วยฮาร์ดแวร์ถูกปิดในระดับคอนฟิก

  3. เปิด VLC แล้วทดสอบ

    วิดีโอแสดงผลในโหมดซอฟต์แวร์

หมายเหตุบน Linux บั๊กจอเขียวจาก Wayland + VA-API พบได้ทั่วไป วิธีแก้มักคือการปิด hwaccel ตามที่กล่าวไว้ด้านบน หรือเปลี่ยนเอาต์พุตไปเป็น OpenGL

วิธีป้องกันในอนาคต

  • อัปเดตไดรเวอร์ GPU อย่างสม่ำเสมอ — เฟรมสีเขียว/ชมพูมักถูกแก้ในไดรเวอร์รุ่นใหม่
  • หลังอัปเดต VLC ให้ตรวจว่าการถอดรหัสด้วยฮาร์ดแวร์ยังใช้งานได้ เพราะเวอร์ชันใหม่บางครั้งเปลี่ยนค่าเริ่มต้น
  • เก็บ VLC เวอร์ชันพอร์เทเบิลไว้ชุดหนึ่งเพื่อเทียบผลแบบ A/B กับปัญหาคอนฟิกได้ทันที

คำถามที่พบบ่อย

ทำไมวิดีโอของฉันเป็นสีเขียวใน VLC แต่ปกติดีในโปรแกรมอื่น?
โปรแกรมอื่นอาจใช้เส้นทางการถอดรหัสที่ต่างกัน (เช่น Media Foundation บน Windows) ซึ่งจัดการฟอร์แมตพิกเซลได้ถูกต้อง ใน VLC การปิดการเร่งความเร็วฮาร์ดแวร์จะทำให้เส้นทางการทำงานตรงกับเส้นทางที่ใช้ได้
จอเขียวเฉพาะเวลาเต็มหน้าจอ?
อาการนั้นชี้ไปที่โมดูลเอาต์พุตมากกว่าการถอดรหัส ให้สลับระหว่าง Direct3D11, OpenGL และ Direct3D9 ที่ เครื่องมือ > &ปรับแต่ง > &ว&ีดิทัศน์ > Output
จอเขียวเป็นสัญญาณว่า GPU เสียหรือไม่?
ไม่ใช่ — เฟรมสีเขียวทั้งหมดคือปัญหาฟอร์แมตในระดับซอฟต์แวร์ ความผิดพลาดของ GPU จริง ๆ จะออกมาเป็นข้อมูลขยะกระจัดกระจาย ไม่ใช่ภาพสีเขียวสม่ำเสมอ
อาการจอเขียวเกิดกับฟอร์แมตเฉพาะบางตัวหรือไม่?
พบบ่อยที่สุดกับ HEVC 10-bit และ VP9 พบน้อยกว่ากับ H.264 8-bit ซึ่งชี้ชัดไปที่ตัวถอดรหัสด้วยฮาร์ดแวร์ และยืนยันว่าการแก้ด้วย hwaccel เป็นทางที่ถูกต้อง

สรุป

ปิดการถอดรหัสด้วยการเร่งความเร็วฮาร์ดแวร์ — แก้ปัญหาจอดำ/จอเขียว ภาพแตกเป็นบล็อก และภาพกระตุกได้ในกรณีส่วนใหญ่. If it does not help, work through the remaining fixes in order: each targets a different layer of the problem. Most users resolve this issue by fix 3 at the latest. Keep VLC updated (current stable: 3.0.23) and revisit this guide when a new VLC version ships.