Encoding to H.264/MPEG-4 AVC codec

 



โปรดทราบ : บทความนี้เก่าและล้าสมัยมากแล้ว อีกทั้งตัวโปรแกรมเองได้หยุดการพัฒนาไปแล้วตั้งแต่เวอร์ชั่น

[2009-04-16] ดังนั้นผมแนะนำให้ทุกคนใช้โปรแกรมอื่น เช่น MeGUI แทนจะดีกว่า เนื้อหาข้างล่างนี้ถือว่าเอาไว้

ใช้เป็นพื้นฐานเล็กๆน้อยๆก็พอครับ

รับทราบโดยทั่วกัน เลิกแถว $@%!#   (*o*)/ เฮ้ !!!

การเข้ารหัสวิดีโอแบบ H.264/MPEG-4 AVC นั้นทำได้หลายวิธีมาก แต่ผมลองชั่งน้ำหนักระหว่างความยุ่งยาก เวลาที่ใช้ในการแปลงไฟล์ และคุณภาพดูแล้ว จึงคิดว่า วิธีนี้น่าจะเหมาะสมที่สุด โดยเราจะเน้นคุณภาพ และใช้เวลาให้น้อยเท่าที่จะทำได้ แต่ก่อนจะทำต้องทำใจหน่อยนึงว่า การเข้ารหัส Codec H.264 นั้นใช้เวลานานมากๆๆๆๆ อีกทั้งต้องอาศัยพลังCPUอย่างหนัก ใครCPUแรงกว่าก็ใช้เวลาน้อยขึ้น เพราะปัจจุบันการเข้ารหัสวิดีโอส่วนใหญ่อาศัยแต่CPU แต่ขณะนี้มีการ์ดจอของ ATi รุ่นใหม่ออกมาซึ่งสามารถ ใช้ GPU ช่วยในการencode video ทำให้ลดเวลาไปได้อย่างมหาศาลเลยทีเดียว ในอนาคตเราก็คงจะได้ใช้ GPU ช่วย นอกจากใช้แต่ CPU อย่างเดียว

โปรแกรมชั้นนำในปัจจุบันที่ใช้ทำ H.264 ได้อย่างมีประสิทธิภาพ เช่น MeGUI, AutoMKV, LeiMing x264 GUI, VirtualDub, GordianKnot, StaxRip, MainConcept H.264 Encoder เป็นต้น แล้ว H.264 codec ก็มีหลายเจ้า ทั้งฟรี(x264) และไม่ฟรี (MainConcept, CoreAVC)

สรุปแล้ว เราจะเลือกใช้ lmx264gui และ x264 codec

ส่วนใครไม่รู้ว่าH.264มันเยี่ยมยังไง ไปดูตัวอย่างที่ผมทำไว้ได้ที่นี่

[บทความนี้อ้างอิงจาก Leiming version 2007-06-25]

 

โปรแกรมที่ต้องใช้ เป็น Freeware

1- Leiming's x264 GUI

2- x264 Video Codec

3- BePipe (มีมาให้ในLeimingแล้ว)

4- Nero Digital Audio หรือ aacPlus Encoder(ให้ไปเอามาจากในfolder Winamp)

5- MP4Box หรือ MP4Creator

6- MKVmerge

7- AviSynth

8- K-lite codec pack หรือ K-lite mega codec pack

ให้เอาโปรแกรมตัวที่2-6 ไปไว้ในfolder bin ของ lmx264gui แล้วก็ install AviSynth กับ K-lite (2อันนี้ใครลงแล้วก็ไม่ต้อง) ใครไม่อยากยุ่งยาก หรือกลัวทำไม่ถูก ผมได้จัด1-5รวมเป็นชุดไว้ให้แล้ว โหลดไปใช้ได้เลย ส่วนmkvmerge เอาไปรวมใน mkvtoolnix (สำหรับคนที่จะทำเป็น *.mkv)

 

Download Leimings x264 GUI [Pack]

http://upload.mthai.com/F1/474be66e69166

mirror

http://www.4shared.com/file/23812220/68bf4a2f/LM_x264_GUI_pack.html

 

Download MKVtoolnix [Pack]

http://upload.siamza.com/download.php?id=70634

 

Password : advance.exteen.com

 

 

Create an AviSynth script

AviSynth script คืออะไร ไปอ่านบทความก่อนหน้า ที่นี่

เราจะเขียน AviSynth Script เพื่อเป็นวัตถุดิบส่งเข้าโปรแกรม เนื่องจากโปรแกรม lmx264gui นั้นอ่านได้แต่ไฟล์ *avs เท่านั้น ยุ่งยากนิดแต่avsสามารถประยุกต์ใช้ได้หลากหลาย และมีประโยชน์มากอีกด้วย เช่น เราสามารถไฟล์อะไรเป็นinputก็ได้ ทำให้แปลงไฟล์ได้แทบทุกชนิด เป็นต้น ดังนั้น อย่างน้อยน่าจะเขียนกันเป็น ไม่ยากเลยครับ

การเขียน AviSynth Script ทำได้โดย เปิดNotepad แล้วเขียนScriptดังนี้

บรรทัดแรกจะเป็นการระบุตำแหน่งไฟล์ต้นฉบับ

สำหรับไฟล์ avi (ไม่ต้องใส่frame rate)

AVISource("D:\My Videos\video.avi")

สำหรับไฟล์วิดีโออื่นๆที่ไม่ใช่ไฟล์ avi (ต้องกำหนดframe rate)

DirectShowSource("D:\My Videos\video.mov", 29.97)

ตัวเลข 29.97 ให้เปลี่ยนตาม frame rate จริงๆของวิดีโอต้นฉบับ

ถ้าจะไม่เอาเสียงให้ต่อท้ายตัวเลข frame rate ด้วย ,false )

 

หมายเหตุ : รายละเอียดของไฟล์วิดีโอสามารถเปิดดูได้ด้วยโปรแกรม GSpot Codec Information ซึ่งมีมาให้พร้อมในชุด K-lite เรียบร้อยแล้ว (ยังไม่รองรับการลาก-วาง ชื่อไฟล์หรือ directory ภาษาไทย ต้องเปลี่ยนให้เป็นภาษาอังกฤษก่อน)

 

บรรทัดต่อๆมาจะเป็นการกำหนดค่าอื่นๆ จะไม่ใส่เพิ่มก็ได้ถ้าจะคงค่าเดิมจากต้นฉบับไว้

จะยกตัวอย่างแค่ค่าที่ใช้บ่อยๆนะครับ

 

Trim(2000,5000): เอาเฉพาะวิดีโอที่อยู่ในช่วงที่ต้องการ (เอาตั้งแต่frameที่2000-5000)

Crop(4, 70, -6, -72): ตัดขอบออก หน่วยเป็นpixel (ตัดขอบด้านซ้าย4,บน70,ขวา6,ล่าง72)

Letterbox(40,40): ใส่Letterbox [แถบดำ]หน่วยเป็นpixel (บน40,ล่าง40)

Lanczos4Resize(640,360): ปรับขนาด (กว้าง640,สูง360)

ConvertToYV12(): เปลี่ยน Pixel type เป็นแบบYV12