วิดีโอค้างแต่เสียงยังเล่นต่อใน VLC: วิธีแก้ที่ใช้ได้จริง

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

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

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

  • การถอดรหัสด้วยฮาร์ดแวร์หยุดชะงักที่เฟรมบางเฟรม — ตัวถอดรหัสของ GPU บางครั้งค้างเมื่อเจอโครงสร้าง GOP (คีย์เฟรม) บางแบบหรือ macroblock ที่เสียหาย
  • ภาระของ in-loop deblocking ใน H.264 — บน CPU ที่แรงน้อย ตัวกรอง deblocking อาจกลายเป็นคอขวดที่ทำให้เธรดวิดีโอค้าง
  • สตรีม 4K/HEVC บิตเรตสูงที่เกินกำลังตัวถอดรหัส — ไม่ว่าจะเป็นเส้นทาง GPU หรือ CPU ก็ตามไม่ทัน เธรดวิดีโอจึงขาดข้อมูล
  • สตรีมเครือข่ายที่แพ็กเก็ตมาช้า — สำหรับเนื้อหาออนไลน์ อาการ jitter ทำให้บัฟเฟอร์วิดีโอหมด ขณะที่เสียง (ซึ่งเล็กกว่า) ยังรอดอยู่
  • อัตราการรีเฟรชหน้าจอไม่เข้ากับเนื้อหา 23.976/29.97 — เป็นเรื่องเล็ก แต่มองเห็นได้เป็นอาการค้างเล็ก ๆ เป็นช่วง ๆ

วิธีแก้ไข

วิธี 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

หมายเหตุวิธีนี้จะบังคับให้ถอดรหัสด้วย CPU การใช้งาน CPU สูงขึ้นเล็กน้อยถือเป็นเรื่องปกติ แต่การเล่นจะเสถียรขึ้น ถ้าได้ผล คุณสามารถกลับไปเปิดใช้งานอีกครั้งภายหลังหลังจากอัปเดตไดรเวอร์การ์ดจอแล้ว

วิธี 2ปรับค่า deblocking ของ H.264 (วิธีแก้อาการภาพค้าง)

แก้อาการ "วิดีโอค้างแต่เสียงยังเล่นต่อ" บน CPU/GPU บางรุ่น

  1. ไปที่ Tools > Preferences > Input / Codecs

    การตั้งค่า codec จะเปิดขึ้น

  2. ตั้งค่า "Skip H.264 in-loop deblocking filter" เป็น All

    ระบบจะข้ามขั้นตอน deblocking

  3. บันทึก เปิด VLC ใหม่ แล้วเล่นไฟล์

    วิดีโอไม่ควรค้างที่คีย์เฟรมอีก

หมายเหตุวิธีนี้แลกความคมชัดเพียงเล็กน้อยกับความเสถียร — แทบมองไม่เห็นความต่างในเนื้อหาส่วนใหญ่

วิธี 3เปิดใช้งาน "Drop frames on late pictures"

แก้อาการกระตุกจากการให้ความสำคัญกับเสียงในไฟล์ 4K และไฟล์บิตเรตสูง

  1. ไปที่ Tools > Preferences > Input / Codecs

    การตั้งค่าอินพุตจะเปิดขึ้น

  2. เปิดใช้งาน "Drop frames on late pictures"

    VLC จะข้ามเฟรมวิดีโอที่มาช้า

  3. บันทึก เปิดโปรแกรมใหม่ แล้วเล่นไฟล์

    การเล่นยังคงตรงกับเสียง

หมายเหตุวิธีนี้ทำให้วิดีโอข้ามไปหนึ่งเฟรมแทนที่จะค้าง — แทบสังเกตไม่ได้ที่ 24–60 fps แต่ทำให้เสียงลื่นไหลสมบูรณ์

วิธี 4เพิ่มค่าแคชไฟล์สำหรับการเล่นไฟล์ในเครื่อง

ช่วยกลบบิตเรตที่พุ่งเป็นช่วง ๆ บนดิสก์ในเครื่อง

  1. ไปที่ เครื่องมือ > &ปรับแต่ง > ส่วนนำเข้า / Codecs

    การตั้งค่าอินพุตจะเปิดขึ้น

  2. ตั้งค่า "File caching (ms)" เป็น 1000–1500 มิลลิวินาที

    VLC อ่านข้อมูลจากไฟล์ล่วงหน้ามากขึ้น

  3. บันทึก เปิด VLC ใหม่ แล้วเล่นไฟล์

    ช่วงที่บิตเรตพุ่งจะไม่ทำให้วิดีโอค้างอีก

หมายเหตุวิธีนี้ช่วยได้เมื่ออาการค้างเกิดตอนเปลี่ยนฉากหรือช่วงที่ภาพเคลื่อนไหวมาก — ซึ่งเป็นจุดที่บิตเรตพุ่งขึ้นตามปกติ

วิธี 5เปลี่ยนโมดูลเอาต์พุตวิดีโอเป็น OpenGL

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

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

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

  2. ตั้งค่า "Output" เป็น OpenGL

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

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

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

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

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

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

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

วิธี 1ทำ remux ไฟล์ (แก้ความเสียหายในระดับคอนเทนเนอร์)

สร้างดัชนีของคอนเทนเนอร์ขึ้นใหม่เมื่อเมทาดาทาของไฟล์เสียหาย

  1. ติดตั้ง ffmpeg (winget install ffmpeg หรือใช้ตัวจัดการแพ็กเกจของคุณ)

    ffmpeg พร้อมใช้งานในเทอร์มินัล

  2. รันคำสั่ง ffmpeg -i input.mp4 -c copy -map 0 output.mp4

    ไฟล์ถูก remux โดยไม่เข้ารหัสใหม่

  3. เล่นไฟล์ผลลัพธ์ใน VLC

    ถ้าอาการค้างหายไป แสดงว่าคอนเทนเนอร์เดิมเสียหาย

หมายเหตุการ remux คัดลอกสตรีมแบบไม่สูญเสียคุณภาพ — ไม่มีคุณภาพลดลง และปกติใช้เวลาเพียงไม่กี่วินาทีสำหรับหนังหนึ่งเรื่อง

วิธี 2ทดสอบด้วย VLC เวอร์ชันพอร์เทเบิล

แยกแยะปัญหาที่เกิดจากคอนฟิกโดยไม่ต้องแตะการติดตั้งเดิมของคุณ

  1. ดาวน์โหลดไฟล์แบบพอร์เทเบิล/zip จากมิเรอร์ทางการ (videolan.org > Windows > zip)

    ได้โฟลเดอร์ VLC แบบพอร์เทเบิลที่แตกไฟล์แล้ว

  2. รัน vlc.exe จากโฟลเดอร์นั้นโดยตรง

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

  3. เล่นไฟล์ที่มีปัญหาในสำเนาพอร์เทเบิลนั้น

    ตอนนี้คุณจะรู้ว่าปัญหาเกิดจากคอนฟิกหรือจากตัวไฟล์

หมายเหตุถ้าเวอร์ชันพอร์เทเบิลเล่นไฟล์ได้ปกติ แสดงว่าคอนฟิกของเวอร์ชันที่ติดตั้งไว้เป็นต้นเหตุ — ให้รีเซ็ตทั้งหมดหรือติดตั้งใหม่

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

  • อัปเดต VLC ให้ทันสมัยเสมอ — บั๊กที่ทำให้ค้างมักถูกแก้ในรุ่นย่อย
  • สำหรับเนื้อหา 4K ควรใช้ชุดฮาร์ดแวร์ที่รองรับเอาต์พุต 4K60 อัตราการรีเฟรชที่ไม่เข้ากันทำให้เกิดอาการค้างเป็นช่วง ๆ
  • ซ่อมหรือดาวน์โหลดไฟล์ใหม่ ถ้าไฟล์นั้นค้างที่ตำแหน่งเดิมซ้ำ ๆ

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

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

สรุป

ปิดการถอดรหัสด้วยการเร่งความเร็วฮาร์ดแวร์ — แก้ปัญหาจอดำ/จอเขียว ภาพแตกเป็นบล็อก และภาพกระตุกได้ในกรณีส่วนใหญ่. 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.