OBS กับ AAC ที่เสียงห่วย(ที่สุด)

โปรแกรม OBS (Open Broadcaster Software) โปรแกรมสตรีมอันดับต้นๆ ที่หลายๆคนนิยมใช้กันมา เพราะมันฟรีและใช้ง่าย สามารถใช้ NVENC ในการStreamก็ได้ แต่หากรู้ไหมว่า ตัว Codec เสียง AAC ของมันช่างห่วยสิ้นดี (โดยเฉพาะเครื่องของใครที่ไม่มี iTunes ติดตั้ง) เสียงมันห่วยกว่าMp3 เสียอีก

ด้วยเพราะว่า OBS มันใช้ AAC encoder จาก ffmpeg ผมมีไฟล์เปรียบเทียบระหว่าง Original wav, Apple AAC และ ffmpeg AAC ให้ดู และฟังกัน

แต่…ทำไมต้อง Apple AAC? ก็เพราะว่า Apple มีตัว Encoder ที่ได้คุณภาพเสียงที่ดีที่สุดในตระกูลAAC หรือ M4A และอีกอย่าง ถ้าคุณติดตั้ง iTunes ในเครื่องของคุณ โปรแกรม OBS ก็จะโหลดModule AAC Encoder ของ Apple มาใช้แทนเจ้า ffmpeg

และเพลงที่ใช้ก็คือ Quake Theme จากเกม Quake นั้นเอง

ไฟล์ต้นฉบับ ริปมาจากแผ่น CD เกม Quake โดยใช้EAC และบันทึกเป็น .wav เพราะฉะนั้น จะได้คุณภาพเท่าต้นฉบับCD (ไฟล์ตัวอย่างที่นำมาเสนอเป็น wav 44100 hz 16bit ทุกไฟล์)

ภาพกราฟของไฟล์ต้นฉบับ โปรแกรมที่ใช้ดูไฟล์คือ Spek
ไฟล์เพลงต้นฉบับ

ภาพกราฟของไฟล์ที่มาจาก Apple AAC@96kbps
ไฟล์เพลงจากการ Encode Apple AAC@96kbps

ภาพกราฟของไฟล์ที่มาจาก ffmpeg AAC@96kbps
ไฟล์เพลงจากการ Encode ffmpeg AAC@96kbps

จะสังเกตุได้ว่า เสียงของ Apple AAC จะดีกว่า FFmpeg อย่างแน่นอน โดยเฉพาะเวลาที่ Bitrate ต่ำๆ อย่าง 96kbps Apple AAC ยังสามารถเก็บความถี่สูงๆได้อยู่ แต่ก็ยังสามารถจับจุดข้อผิดพลาดได้บ้าง แต่สำหรับFFmpeg แล้ว ฟังแต่วิเดียวก็รู้แล้วว่าเสียงของมันห่วยแตกสิ้นดี เสียงเบสไม่ได้อารมณ์ ส่วนเสียงสูงมีสั่นๆ แถมเวทีเสียงแคบลงกว่าเดิม

แล้วทำไมโปรแกรม OBS ถึงไม่ใช้ Apple AAC ตั้งแต่แรกเลยหละ?

OBS ไม่สามารถใช้ AAC ของ Apple ได้ เพราะเรื่องของ License ของตัว Apple และ OBS เอง แต่ถ้าลงiTunes ซึ่งมันจะพวงเอา CoreAudioToolBox มาด้วย ทางOBS ก็สามารถดึงเจ้าModule ตัวนั้นมาใช้ในการ encode เสียงได้