
การมาถึงของ GStreamer ฮิต มาพร้อมกับความรู้สึกที่ขัดเกลา: เป็นรุ่นที่มุ่งเน้นการแก้ไขข้อบกพร่อง ปรับปรุงส่วนต่างๆ และเสริมเสถียรภาพให้กับเฟรมเวิร์กมัลติมีเดียข้ามแพลตฟอร์ม แม้ว่าจะไม่ได้มีการเปลี่ยนแปลงที่สร้างความปั่นป่วน แต่ก็มีการปรับปรุงที่สำคัญหลายประการ ซึ่งช่วยเพิ่มความน่าเชื่อถือในการใช้งานเสียงและวิดีโอในโลกแห่งความเป็นจริง เวอร์ชันนี้ให้ความสำคัญกับองค์ประกอบสำคัญต่างๆ เช่น RTP/RTSP, คอนเทนเนอร์, GPU, คำบรรยาย CEA-608, จังหวะเวลา และเครื่องมือพัฒนา ถือเป็นการก้าวกระโดดที่ปลอดภัยสำหรับผู้ที่ใช้ซีรีส์ 1.26.x อยู่แล้ว และพวกเขาต้องการลดความล่าช้าในการผลิตลง
ทีมงานขอเน้นย้ำว่านี่เป็นการอัปเดตที่แนะนำสำหรับผู้ใช้ทุกคน สาขามั่นคงรวมถึงแอปพลิเคชันที่ทำงานกับสตรีมแบบเรียลไทม์ การแยกสัญญาณของรูปแบบยอดนิยม และไพลน์ไลน์ที่รองรับโดย GPU ของ NVIDIA หรือ Direct3D 12 นอกจากนี้ ยังมีหมายเหตุเชิงปฏิบัติ: โปรแกรมไบนารีสำหรับ Android, iOS, macOS และ Windows จะพร้อมใช้งานเร็วๆ นี้ทำให้ทีมงานข้ามแพลตฟอร์มสามารถเคลื่อนย้ายระหว่างสภาพแวดล้อมได้อย่างราบรื่น
ภาพรวมการเปิดตัว GStreamer 1.26.7
GStreamer 1.26.7 มุ่งเน้นไปที่การแก้ไขข้อบกพร่อง การปรับแต่งค่าความหน่วง และการปรับปรุงความเข้ากันได้ โดยมีการแก้ไขมากมายที่ส่งผลต่อทั้งปลั๊กอินเฉพาะและส่วนประกอบข้ามแพลตฟอร์ม จุดเด่นประกอบด้วยการปรับปรุงโอเวอร์เลย์ CEA-608, การรองรับ CUDA 13.0 toolchain, การแก้ไข D3D12, เพย์โหลดเดอร์/ดีเพย์โหลดเดอร์ใหม่สำหรับเสียงเชิงเส้นใน RTP, การเพิ่มประสิทธิภาพการแยกสัญญาณและการมัลติเพล็กซ์ และการปรับปรุงกลไกการแชร์เธรด เป้าหมายคือการเพิ่มความทนทานโดยไม่ต้องเปลี่ยนแปลง API หรือพฤติกรรมที่คาดหวัง บนสาขาที่มั่นคง 1.26.
- คำบรรยายและโอเวอร์เลย์: การจัดการหน่วยความจำที่ไม่ใช่ระบบที่ดีขึ้นใน cea608overlay.
- GPU: การคอมไพล์เคอร์เนลเพื่อรองรับรันไทม์สำหรับ CUDA 13.0 และการแก้ไข D3D12 ในกระบวนการครอบตัดและการดีอินเทอร์เลซ
- Demux และคอนเทนเนอร์: การปรับปรุงใน คิวทีดีมักซ์ (ช่องเสียงรอบทิศทางและประสิทธิภาพการทำงานด้วย GoPro) การแก้ไขใน mpegtsmux/tsdemux สำหรับ Opus และแก้ไขเมื่อกำหนดแพดที่จุดสิ้นสุดของสตรีมบนมัลติเพลเซอร์หลายตัว
- เครือข่ายเรียลไทม์: เพย์โหลดเดอร์/ดีเพย์โหลดเดอร์ใหม่สำหรับเสียงเชิงเส้น (L8, L16, L24), RTSP keepalives ในโหมด TCP/interleaved และการแก้ไขหลายรายการใน rtp/rtpbasepay2/rtpamrpay2
- ประสิทธิภาพและความหน่วง: การปรับปรุงใน กระทู้แชร์, อัตราวิดีโอ และการจัดการข้อมูลประทับเวลา
- การพัฒนาและการสร้าง: แก้ไขคำอธิบายประกอบ gobject-introspection และอัปเดต Meson เป็น 1.9.0 บน Cerbero สำหรับความเข้ากันได้กับ Xcode 26 มีเสถียรภาพมากขึ้นและการรั่วไหลของหน่วยความจำน้อยลง.
รายละเอียดการแก้ไขและการปรับปรุงใน GStreamer 1.26.7
คำบรรยายและโอเวอร์เลย์ CEA-608
ชิ้น cea608overlay ได้รับการปรับปรุงที่สำคัญ: ขณะนี้สามารถจัดการบัฟเฟอร์ที่มาจากหน่วยความจำที่ไม่ได้ถูกจัดการโดยระบบได้ดีขึ้น ซึ่งมักเกิดขึ้นเมื่อรวมตัวเร่งความเร็วหรือแหล่งข้อมูลภายนอก ช่วยลดข้อผิดพลาดเล็กๆ น้อยๆ เมื่อผสมคำบรรยายกับวิดีโอในไพพ์ไลน์ที่ซับซ้อน ผลลัพธ์ที่ได้คือโอเวอร์เลย์ที่คาดเดาได้และแข็งแกร่งยิ่งขึ้น เมื่อแหล่งที่มาของข้อมูลไม่ใช่ RAM แบบดั้งเดิม
GPU: CUDA และ Direct3D 12
ในส่วนของ NVIDIA GStreamer 1.26.7 ได้แก้ไขการคอมไพล์เคอร์เนลแบบรันไทม์ด้วย CUDA 13.0 การเปลี่ยนแปลงนี้มีความสำคัญอย่างยิ่งสำหรับผู้ที่สร้างเคอร์เนลแบบไดนามิกหรือตัวกรองแบบต่อเนื่องที่ขึ้นอยู่กับ การคอมไพล์รันไทม์. หลีกเลี่ยงการเกิดข้อผิดพลาดและความล้มเหลวในสภาพแวดล้อมที่ได้เปลี่ยนไปใช้เครื่องมือ CUDA รุ่นล่าสุดแล้ว.
สำหรับ Windows แบ็กเอนด์ D3D12 ได้รับการปรับปรุงในสองด้าน ได้แก่ การรองรับเมตาดาต้าแบบครอบตัดในตัวแปลง และการจัดการแบบพาสทรูในดีอินเตอร์เลซเซอร์ ในทางปฏิบัติ ส่งผลให้การครอบตัดมีประสิทธิภาพทั่วทั้งเชน และดีอินเตอร์เลซที่ไม่รบกวนการทำงานเมื่อไม่ควรรบกวน ช่วยหลีกเลี่ยงต้นทุนการประมวลผลที่ไม่จำเป็น ปรับปรุงความสอดคล้องของภาพและประสิทธิภาพใน Direct3D 12 pipelines.
แหล่งที่มาและการซิงโครไนซ์: fallbacksrc และ inter
การสำรองข้อมูล รวมการปรับปรุงในการจัดการแหล่งที่มาและส่งสัญญาณ no-more-pads สำหรับผู้ปกครองที่ไม่ทราบเกี่ยวกับกระแสข้อมูล ช่วยอำนวยความสะดวกในการประสานกระบวนการต่างๆ ที่เปลี่ยนแหล่งที่มาตามความพร้อม ช่วยลดความซับซ้อนในการออกแบบในกรณีที่มีอินพุตทางเลือก โค้ดแบบ "กาว" น้อยลงและการเปลี่ยนแปลงแหล่งที่มาที่เชื่อถือได้มากขึ้น.
องค์ประกอบ ฝัง เพิ่มคุณสมบัติเพื่อปรับแต่งส่วนประกอบย่อยภายในให้ละเอียดยิ่งขึ้น สำหรับนักพัฒนาที่ต้องการเพิ่มประสิทธิภาพการสื่อสารระหว่างองค์ประกอบต่างๆ ผ่านลิงก์ภายในไพพ์ไลน์ การเพิ่มรายละเอียดนี้จะช่วยให้ปรับแต่งพฤติกรรมการทำงานได้อย่างละเอียดโดยไม่ต้องเจาะลึก การควบคุมเวลาและการบัฟเฟอร์ที่ละเอียดยิ่งขึ้น ในโทโพโลยีขั้นสูง
การแยกสัญญาณแบบมัลติเพล็กซ์และคอนเทนเนอร์
ในโลกของ MPEG-TS mpegtsmux y tsdemux พวกเขาแก้ไขแง่มุมต่าง ๆ ที่เกี่ยวข้องกับเสียง Opus ซึ่งแม้จะไม่ใช่โคเดก TS แบบคลาสสิกที่สุด แต่ก็ช่วยปรับปรุงประสิทธิภาพในสตรีมสมัยใหม่ ช่วยลดปัญหาสิ่งแปลกปลอม การดีซิงโครไนซ์ และการตีความสตรีมที่ไม่เสถียร ปรับปรุงการทำงานร่วมกันของ Opus ภายใน TS.
มัลติเพล็กเซอร์หลายตัว เช่น มาโตรสกามักซ์, ทีเอสเอ็มเอ็กซ์, ฟลวีมักซ์ y ซีเอ608มักซ์, พวกเขาจะแก้ไขการเลือกแผ่นที่ดีที่สุดเมื่อเกิดปัญหา EOS (สิ้นสุดสตรีม) การแก้ไขประเภทนี้มีความสำคัญอย่างยิ่งต่อการปิดไฟล์หรือสตรีมอย่างเรียบร้อย หลีกเลี่ยงส่วนหัวที่ไม่สอดคล้องหรือตัวอย่างที่ไม่สมบูรณ์ การปิดการไหลที่สะอาดขึ้นและไฟล์สุดท้ายที่ถูกต้อง.
RTP/RTSP: เสียงเชิงเส้น, การติดตามและการกำหนดเวลา
สแต็ก RTP มาพร้อมเพย์โหลดเดอร์และดีเพย์โหลดเดอร์สำหรับเสียงเชิงเส้น L8, L16 และ L24 ซึ่งเป็นรูปแบบที่พบได้บ่อยในสภาพแวดล้อมระดับมืออาชีพที่ความหน่วงและความเที่ยงตรงเป็นสิ่งสำคัญ รูปแบบเหล่านี้ช่วยเพิ่มความเข้ากันได้โดยตรงโดยไม่จำเป็นต้องผ่านการแปลงสัญญาณขั้นกลาง ความยืดหยุ่นมากขึ้นสำหรับการสตรีมเสียงแบบไม่บีบอัด.
rtspsrc ขณะนี้สามารถส่ง keepalives ในโหมด TCP/interleaved เพื่อลดการตัดการเชื่อมต่ออันเนื่องมาจากการหมดเวลาเมื่อมีพร็อกซี ไฟร์วอลล์ หรือเครือข่ายที่มีแนวโน้มที่จะหยุดการเชื่อมต่อที่ไม่ได้ใช้งานชั่วคราว ในสภาพแวดล้อมการตรวจสอบหรือการสนับสนุนระยะไกล มาตรการนี้มีความจำเป็นอย่างยิ่ง เซสชัน RTSP ที่เสถียรยิ่งขึ้นบนเครือข่ายจริง.
En rtpamrpay2 ด้านที่เกี่ยวข้องกับเครื่องหมายคุณภาพเฟรมได้รับการแก้ไขและใน rtpbasepay2 PTS สุดท้ายจะถูกนำมาใช้ซ้ำทุกครั้งที่ทำได้ ซึ่งเป็นวิธีแก้ปัญหาเชิงปฏิบัติเพื่อหลีกเลี่ยงปัญหาที่รายงานเกี่ยวกับตัวเข้ารหัส NVIDIA Jetson AV1 แม้จะดูเหมือนเป็นรายละเอียดเล็กๆ น้อยๆ แต่ส่งผลกระทบโดยตรงต่อความต่อเนื่องของสตรีมตามเวลา ความสั่นไหวน้อยลงและค่าประทับเวลามีความสม่ำเสมอมากขึ้น.
เวลาและอัตราเฟรม
องค์ประกอบ อัตราวิดีโอ แก้ไขข้อโต้แย้งที่อาจเกิดเหตุการณ์เมื่อระยะเวลาบัฟเฟอร์ที่ไม่ทราบค่าในสตรีมอัตราเฟรมแปรผัน เงื่อนไขเหล่านี้ซึ่งเกิดขึ้นกับกล้องและแหล่งที่มาที่ "ไม่สม่ำเสมอ" ได้รับการจัดการที่ดีขึ้นแล้ว ความทนทานที่มากขึ้นต่ออัตราเฟรมที่แปรผันโดยไม่เกิดการขัดข้อง.
ประสิทธิภาพ: เธรดแชร์และเวลาแฝง
ระบบย่อย กระทู้แชร์ ได้รับการปรับปรุงหลายประการเพื่อมุ่งเน้นที่ความหน่วงและความเสถียร การแบ่งปันเธรดระหว่างองค์ประกอบต่างๆ จะช่วยลดค่าใช้จ่าย แต่จำเป็นต้องปรับแต่งสมดุลอย่างละเอียดเพื่อหลีกเลี่ยงปัญหาคอขวด การเปลี่ยนแปลงนี้รวมถึงการปรับแต่งสมดุลนี้อย่างละเอียด ซึ่งมีประโยชน์ที่เห็นได้ชัดโดยเฉพาะอย่างยิ่งในไปป์ไลน์ที่ซับซ้อนและมีความหน่วงต่ำ ค่าใช้จ่ายน้อยลงและการตอบสนองแบบเรียลไทม์ที่รวดเร็วยิ่งขึ้น.
การทำงานร่วมกันและบัฟเฟอร์ขนาดใหญ่: unixfd
การสนับสนุน ยูนิกซ์เอฟดี ขณะนี้รองรับบัฟเฟอร์ที่มีเพย์โหลดขนาดใหญ่ การสนับสนุนนี้มีประโยชน์เมื่อเชื่อมต่อกระบวนการต่างๆ ผ่านตัวอธิบายไฟล์ ซึ่งเป็นเรื่องปกติในสถาปัตยกรรมแบบหลายกระบวนการ หรือเมื่อส่งเฟรมระหว่างส่วนประกอบเฉพาะทาง การเคลื่อนย้ายข้อมูลขนาดใหญ่โดยไม่หยุดชะงัก.
บริการแก้ไขและใส่คำอธิบายประกอบ
ในบริการแก้ไขนั้นได้ดำเนินการไปแล้ว ไทม์ไลน์ GES เคารพการตัดสินใจในการทิ้งสัญญาณ SELECT_ELEMENT_TRACKการแก้ไขเส้นทางที่ทำให้เกิดพฤติกรรมที่ไม่คาดคิดและการรั่วไหลของหน่วยความจำ การปรับแต่งนี้ช่วยให้สามารถแก้ไขแบบไม่เชิงเส้นได้แม่นยำยิ่งขึ้น หลีกเลี่ยง "ภาพซ้อน" จากองค์ประกอบที่ถูกยกเลิกการจัดสรร ไทม์ไลน์ที่สอดคล้องและปราศจากการรั่วไหลมากขึ้น.
นอกจากนี้ยังมีการขัดโน้ตอีกด้วย gobject- วิปัสสนาซึ่งเป็นพื้นฐานสำหรับการสร้างการเชื่อมโยงกับหลายภาษา ด้วยคำอธิบายประกอบที่แม่นยำยิ่งขึ้น การเชื่อมโยงจึงแม่นยำยิ่งขึ้น ช่วยลดความประหลาดใจเมื่อพัฒนาใน Python, JavaScript หรือภาษาอื่นๆ การผูกมัดที่เชื่อถือได้มากขึ้นด้วยการทบทวนตนเองที่อธิบายได้ดีขึ้น.
การก่อสร้างและเครื่องมือ: เซอร์เบอรัสและเมสัน
ระบบสร้าง Cerbero อัปเดต Meson เป็น 1.9.0 ช่วยให้เข้ากันได้กับ Xcode 26 ซึ่งถือเป็นกุญแจสำคัญในการสร้างระบบนิเวศ SDK และไฟล์ไบนารี ดังนั้นการอัปเดตจะช่วยปลดล็อกการสร้างที่ทันสมัยบน macOS สภาพแวดล้อมการสร้างที่ทันสมัย ลดแรงเสียดทานใน CI/CD.
GStreamer 1.26.7 อัปเดตและไบนารีพร้อมใช้งานแล้ว
ทีมงานประกาศว่าไฟล์ไบนารีสำหรับ Android, iOS, macOS และ Windows จะพร้อมใช้งาน "เร็วๆ นี้" ซึ่งช่วยลดความยุ่งยากในการทดสอบข้ามแพลตฟอร์มและการปรับใช้ เนื่องจากไม่มีการเปลี่ยนแปลง API/ABI และเวอร์ชัน 1.x มีเสถียรภาพ จึงเหมาะสมที่จะอัปเดตแม้ในรอบการเปิดตัวที่ค่อนข้างจำกัด การขยับขึ้นไปที่ 1.26.7 ถือเป็นการซื้อขายที่มีความเสี่ยงต่ำ.
หากคุณกำลังใช้งานไปป์ไลน์ที่มีความละเอียดอ่อน (เช่น ฮาร์ดแวร์ NVIDIA Jetson หรือกล้อง IP ผ่าน RTSP) การตรวจสอบความถูกต้องภายใน (in-place) ถือเป็นความคิดที่ดี โดยเฉพาะอย่างยิ่งสำหรับการเปลี่ยนแปลงเวลา (การใช้ PTS ซ้ำ) และการรักษาสถานะการใช้งาน (keepalive) อย่างไรก็ตาม เป้าหมายที่ชัดเจนของการเปิดตัวนี้คือการกำจัดบั๊กโดยไม่ต้องแก้ไขพฤติกรรมตามสัญญา ทดสอบและปรับใช้ด้วยความมั่นใจหลังจากรอบ QA.
แนวปฏิบัติที่ดีและข้อควรทราบทางกฎหมาย
เมื่อเผยแพร่ไฟล์ไบนารีหรือเอกสารประกอบ โปรดคำนึงถึงข้อควรพิจารณาเกี่ยวกับเครื่องหมายการค้าโดยทั่วไป: ตามที่ระบุไว้ในแหล่งข้อมูลที่ได้ศึกษา ชื่อและโลโก้ Arch Linux เป็นเครื่องหมายการค้าที่ได้รับการยอมรับ และการใช้เครื่องหมายการค้า Linux® อยู่ภายใต้ใบอนุญาตย่อยจาก LMI ซึ่งเป็นผู้รับใบอนุญาตแต่เพียงผู้เดียวของ Linus Torvalds สำหรับ GStreamer ใบอนุญาต LGPL และความเสถียรของ API/ABI ของซีรีส์ 1.x ช่วยให้การปรับใช้ในผลิตภัณฑ์เชิงพาณิชย์และผลิตภัณฑ์ฟรีเป็นไปได้สะดวกยิ่งขึ้น การปฏิบัติตามใบอนุญาตและเครื่องหมายการค้าจะช่วยหลีกเลี่ยงปัญหาในภายหลัง.
สิ่งหนึ่งที่ชัดเจนหลังจากตรวจสอบ GStreamer 1.26.7 คือ การหยุดการบำรุงรักษาครั้งใหญ่ที่กระทบกับส่วนประกอบสำคัญโดยไม่ทำให้ใครหลุดจากเส้นทาง โดยมุ่งเน้นเป็นพิเศษที่ความเสถียรของเครือข่าย คอนเทนเนอร์ และการเร่งความเร็วของ GPU สำหรับโปรเจกต์ส่วนใหญ่ที่ใช้ 1.26 การก้าวข้ามขีดจำกัดจะทำให้พบบั๊กน้อยลง มีขั้นตอนการทำงานที่สม่ำเสมอมากขึ้น และรากฐานที่พร้อมรับมือกับสิ่งที่จะเกิดขึ้นต่อไปได้ดีขึ้น ทั้งหมดนี้มาพร้อมกับความอุ่นใจจากสาขาที่เสถียรซึ่งเคารพ API/ABI และยังคงรักษาระบบนิเวศของเครื่องมือและการคอมไพล์ไว้ได้ รุ่นที่ออกแบบมาเพื่อให้ทำงานได้ดีขึ้นในวันนี้และไปได้ไกลกว่าในวันพรุ่งนี้.
