เป็นชิ้นๆ

เครื่องคอมผมตอนนี้มีโปรแกรมจำพวก ‘ดูหนังฟังเพลง’ หรือ media player อยู่ประมาณ อืมม.. หลายตัว

เริ่มจาก Windows Media Player ที่มากับวินโดวส์ กะ WinDVD ที่แถมมากับเครื่อง จากนั้นก็เป็น QuickTime กับ iTunes (มาพร้อมกัน) แล้วก็ RealPlayer อีกตัว ยังไม่นับ WinAmp ที่นานๆ ใช้ที (เอาไว้เล่นพวกเพลงจากเกม, tracker)

ถ้าพวกโปรแกรมดูรูป กับ CD ripper ก็เยอะไปอีก

Windows Media Player, QuickTime, RealPlayer สามตัวนี้จำเป็นในการฟัง/ดูพวก streaming ซึ่งแต่ละเว็บ ก็ใช้ฟอร์แมตนั้นบ้างนี้บ้าง จะลงแค่ตัวใดตัวนึงก็ไม่ได้

ส่วน WinDVD นั้น ก็พบว่าสะดวกกว่าโปรแกรมอื่นๆ มาก ในการดูหนัง คือ ใส่แผ่น แล้วกด Play แค่นี้ก็ดูได้แล้ว

ส่วนเรื่องจะฟังเพลง, 4 ตัวจากที่ว่ามาข้างบนก็ฟังได้สารพัดฟอร์แมต โดยเฉพาะฟอร์แมตหลักอย่าง mp3 ทุกตัวทำได้เหมือนๆ กันหมด มีความสามารถครบถ้วน ทั้ง play list, graphical equalizer, หรือจะเขียนซีดีก็ยังได้

ปัญหาคือ แล้วผมจะมีโปรแกรมบ้าพวกนี้ไปทำไมเยอะแยะ ทั้งๆ ที่ใช้ความสามารถไม่หมด — คือใช้ความสามารถนั้นของโปรแกรมนี้ ความสามารถนี้ของโปรแกรมนั้น อย่างละนิดอย่างละหน่อย

แล้วตัวนึงมันเล็กๆ ซะที่ไหน ประมาณร้อยเม็กทั้งนั้น ลงทั้งหมดนั่นก็ประมาณครึ่งกิ๊ก ? (= 1/4 แฟน)

อยากได้เครื่องเล่นที่มัน แยกชิ้น น่ะ หลักๆ ก็แยกได้ 3 ส่วน input/decoder + processor + encoder/output

input/decoder ก็เป็นตัวอ่านฟอร์แมตต่างๆ mp3, aac, wma, rm, mov, ogg, omg, mid, jpg, png อะไรก็ตามเถอะ ให้ออกมาเป็นข้อมูล ภาพ เสียง ปกติ (คือไม่ได้ถูก encode ไว้)

processor ก็เอาไว้ปรับเสียงดังขึ้นลดลง แต่งเสียง เพิ่มลดแสงสีภาพ อะไรพวกนี้

encoder/output ก็ส่งภาพ/เสียงออกมา ไปออกจอ ออกลำโพง หรือจะไปลงซีดี หรือว่าแปลงเป็นฟอร์แมตอื่น

อย่างถ้าขั้นตอนเป็น อ่านซีดีเพลง-ปรับความดังเสียง-เขียน mp3 แบบนี้ก็คือ CD ripper

หรือถ้าเป็น อ่านไฟล์ภาพ-ปรับขนาดรูป-เขียนลงจอ แบบนี้ก็เป็นโปรแกรมดูรูป

ถ้าทำแบบนี้ได้ ผู้ใช้ก็สามารถเลือกลงเฉพาะที่ตัวเองจะใช้ได้ (แบบเลือกมาเป็นชิ้นๆ เอามาเสียบๆ ต่อกัน แล้วใช้ได้เลยน่ะ, ไม่ต้องเลือกโค้ดมาคอมไพล์เอง -_-“) ไม่ต้องลงอะไรที่ไม่อยากใช้ ไม่ได้ใช้

ตัว play list ก็อาจจะเป็นลักษณะ frontend ที่ควบคุมครอบตัว decoder-processor-encoder อีกที

จริงๆ ตอนนี้พวก media player ต่างๆ เค้าก็มี plug-in เอาไว้ทำพวกนี้อยู่เหมือนกัน แต่ก็ใช้ได้กับโปรแกรมนั้นเท่านั้น — อยากให้มีประมาณว่ามาตรฐานกลางอะไรซักอย่าง สำหรับโปรแกรมจำพวก AV (audio/visual นะ ไม่ใช่ adult video :P)

จะได้ทำแบบพวกเครื่องเสียงไฮไฟได้ ซื้อมาเป็นชิ้นๆ แล้วก็เสียบๆ สายต่อกัน อยากเปลี่ยนชิ้นไหนก็ได้ ชิ้นอื่นยังใช้ได้อยู่

จริงๆ จะว่าไป มันก็คือคอนเซปต์ของโปรแกรมใน UNIX รึเปล่า? ทำอย่างเดียว ทำให้ดี สื่อสารกันผ่าน pipe, ส่วนใหญ่ข้อมูลจะมาเป็นรูปข้อความ (เอาไป parse กันอีกที) หรือไม่ก็ผ่าน socket

กรณีนี้ ก็ให้ AV components ทั้งหลายพวกนี้ มีรูปแบบการติดต่อกลางอันนึง ที่ component อื่นๆ เข้าใจได้เหมือนกันหมด

ใครรู้จัก โปรแกรม หรือ ชิ้นส่วน อะไรทำนองนี้มั๊ยครับ? บนระบบปฏิบัติการอะไรก็ได้