Saturday, February 23, 2008

Video encoding

อาทิตย์ที่ผ่านมา ผมเกิดมีโอกาศจะต้องทำอะไรๆเกี่ยวกับการแปลง/อัดหนังจากทีวี และดีวีดี จากแต่เดิมที่คิดว่าทำเป็นอยู่แล้วพบว่าตัวเองยังไม่รู้อะไรอีกเยอะเลยครับ

โจทย์ของผมมี 2 ข้อ 1. มีดีวีดีแต่เป็น DVD9 จะเก็บยังไงให้สะดวก 2. มีหนังทีวีที่อัดมา (หนังไทยนี่แหละ) แล้วจะมาแปลงให้ดูได้ทำยังไงถึงจะดีที่สุด

โจทย์จริงๆก็ไม่ยากครับ tool ที่จะช่วยนั้นหาได้ไม่ยากเลย มีทั้งฟรีและไม่ฟรี แต่สิ่งที่แตกต่างกันคือ คุณภาพและความถูกต้องของผลลัพธ์

เอาโจทย์แรกก่อน ไม่ขอบอกว่าหนังอะไรละกันครับ แต่เป็นหนังซีรีส์ของ US (มั้ง) ที่คงยังไม่มีลิขสิทธิ์ในไทยแน่ๆ เพราะได้แผ่นมาจากเพื่อนที่อยู่ต่างประเทศ ก่อนอื่นผมลองด้วย dvdshrink กับ dvd fab platinum ก่อนเลย ผลที่ได้ไม่ค่อยจะดีเท่าไหร่ เพราะคุณภาพของหนังลดไปเหลือแค่ 62% หลังตัด subtitle และเสียงต่างๆออกไปหมดแล้ว พอดูด้วยเครื่องเล่น DVD ปรากฎว่าภาพบางช่วงมืดๆสว่างๆด้วย แปลกดี และภาพก็แตกเห็นเป็นเหลี่ยมๆ ผมดูแล้วรับไม่ค่อยได้เท่าไหร่ อ้อ เครื่องเล่นของผมคือ Philips DVD3040k เล่น Divx ได้ แถมเล่น Divx Subtitle หรือจริงๆก็คือไฟล์พวก .srt ได้ด้วย

ผมมาคิดๆดูคุณภาพมันลดไปตั้ง 40% มันก็คงจะไม่แปลกที่มันจะห่วยลงมาก อีกอย่างคือมันเป็นหนังซีรีส์ รวมเวลาของหนังทั้งหมดแล้วราวๆ 200 นาทีแน่ะ ยาวกว่า DVD หนังปกติ (ในแผ่นไม่มี Extras เลย) คงเป็นอีกสาเหตุที่คุณภาพของหนังลดลงมาก ผมเลยมองหาทางเลือกอื่นคือใช้ Encoder คุณภาพสูงมากๆมาช่วย ผมเห็นที่เขานิยม
กันมากๆก็คือ CCE รู้จักแต่ชื่อย่อแต่ไม่รู้สักทีว่าจริงๆมันคืออะไร ลองถาม Google ดูก็คิดว่าคงเป็น Cinema Craft Encoder ครับ เป็น Encoder ที่ Encode VBR multipass ได้หลายๆ Pass แบบว่ากดเลือกๆได้เลยว่าจะเอากี่ Pass ปัญหาของผมคือ CCE เป็นแค่ Encoder แต่เราต้องการ DVD Editor มาตัดพวก Subtitle, เสียงภาษาอื่นๆทิ้งไปเพื่อเพิ่มที่ด้วย สุดท้ายมาลงที่ DVD Rebuilder Pro ซึ่งจะตัดเสียงพวกนี้และส่งต่อให้ CCE Encode และลดขนาดเหลือ DVD5 ได้

แต่ปรากฎว่าผลกลับไม่เป็นอย่างที่คิด เพราะ DVD RB ดันทำไฟล์ออกมา โดยตัดเหลือแค่หนังตอนแรกเท่านั้น ผมเข้าใจว่าปกติมันคงจะเซ็ตเอาไว้ดึงเอาหนังหลักกับเมนู โดยตัด Extras ทั้งหมดทิ้งไป ผลเลยกลายเป็นยังงี้ ผมลองเลือกแบบไม่ตัดอะไรเลยก็ไม่สำเร็จ แถมทำแต่ละทีเสียเวลาชมัดเลย สุดท้ายผมเลยไม่ได้เลือกวิธีนี้

ระหว่างนั้นผมลองอีกวิธีคือการทำ paralle mencoder โดยใช้ xvidenc ซึ่งให้ผลดีกว่าใช้ lavc มากเลยครับ ภาพคมชัดดีทีเดียว ขนาดไฟล์ก็เล็กลงจนสามารถเก็บลงใน DVD5 แผ่นเดียวได้ ที่ติดปัญหาก็คือเรื่องซับไตเติ้ล ผมใช้ subrip ดึง sub ออกมาและปรับๆนิดหน่อยก็ใช้ได้ จริงๆแล้วซับอังกฤษมีให้ดาวน์โหลดด้วยแหละครับถ้าหาดีๆ แต่ timing มันจะไม่ตรงกัน (ไม่รู้ทำไม)

แต่โจทย์เรื่องหนังทีวีนี่หนักหน่อย แรกสุดก็ใช้ TMPGenc Dvd Author3 ซึ่งก็ได้ผลดีทีเดียว คือหนังออกมาเวิร์คใช้ได้ แต่ไม่ชัดครับ ไม่รู้ทำไม TMPGenc แต่ก่อนถือว่าใช้ได้แต่ตอนนี้พอ encode ออกมาแล้วกลับไม่ค่อยจะชัดเท่าไหร่ ขนาดปรับขนาดให้ออกมาใหญ่มากก็ยังไม่ชัด

ทางเลือกอื่นๆก็มีอีกหลายทาง แต่ปัญหาคือทำยังไงถึงจะตัดโฆษณาออกไปได้ โปรแกรมที่น่าใช้อีกตัวคือ Cuttermaran อ้อ แล้วก็ Adobe Premiere ด้วย แต่ทั้งคู่ก็ยังให้ผลได้ไม่ดี Adobe Premiere จริงๆแล้วคงใช้ได้ แต่เวลา Encode นานมากเลยทีเดียว ผมพยายาม Encode ผ่าน CCE แล้วปรากฎว่าไฟล์ออกมาเสียงกับภาพไม่ตรงกัน Cuttermaran ตัด Mpeg ได้โดยไม่ต้อง reencode แต่เสียงกับภาพจะเหลื่อมกันอีก มีวิธีแปลกๆอีกคือใช้โปรแกรม Comskip ซึ่งจะ detect หาโฆษณาและตัดออกให้อัตโนมัติ แต่ว่ารันตั้งนานก็ยังวิเคราะห์ไม่เสร็จสักที ตัดเองยังเร็วกว่าครับ (เพราะหนังไม่ยาว) แล้วก็อีกวิธีก็คือใช้ Mpalyer เล่นในโหมด edlout เพื่อระบุช่วงเวลาที่จะ skip แต่บน Windows กลับไม่เวิร์ค EDL ที่สร้างออกมา timing ผิดหมดเลย สุดท้ายก็ต้องยอมแพ้กลับไปใช้ TMPGenc แต่ Encode เป็น Divx นะ ก็เวิร์คดีครับ แค่ไม่ค่อยชัด เอาไว้คราวหน้าค่อยลอง Cuttermaran + Mplayer ดีๆอีกที