GStreamer 1.26.5 แนะนำการแก้ไขสำคัญสำหรับการแปลงเสียง, โอเวอร์เลย์, V4L2, VA และ Vulkan

  • การแก้ไขที่สำคัญสำหรับ AudioConvert, Overlays, V4L2, VA และ Vulkan รวมถึงการปรับปรุง Wasapi2, ThreadShare และ RtpBin2
  • รองรับการใช้งานจริงแบบใหม่: JPEG XS ใน Videorate/ImageFreeze และความสามารถพิเศษใน STT/Cloud Services
  • รีวิวซีรีส์ 1.26 ฉบับเต็ม: VVC, JPEG XS, LCEVC, คำบรรยาย, HLS/DASH, การวิเคราะห์ และการเร่งความเร็ว
  • การรวม PipeWire: สถานะปัจจุบัน ความท้าทายด้านบัฟเฟอร์/รูปแบบ และแผนงานสำหรับกรณีการใช้งานในโลกแห่งความเป็นจริง

GStreamer ฮิต

GStreamer ฮิต วางจำหน่ายแล้ว เพื่อเป็นการอัปเดตการบำรุงรักษาภายในสาขาเสถียร 1.26 โดยเน้นไปที่ความเสถียร การแก้ไขปัญหาการถดถอย และการปรับปรุงในทางปฏิบัติในพื้นที่ที่ผู้ใช้พบเจอทุกวัน Es รุ่นแก้ไขข้อบกพร่องที่สามารถติดตั้งบน 1.26.x ได้อย่างง่ายดาย และยังมาพร้อมกับส่วนเสริมเล็กๆ น้อยๆ ที่เป็นประโยชน์มากมาย เช่น การรองรับ JPEG XS บนองค์ประกอบเฉพาะ ไปจนถึงการปรับเปลี่ยนการทำงานร่วมกับ Windows, V4L2, Vulkan หรือการตรวจสอบอุปกรณ์

เวอร์ชันนี้สร้างขึ้นจากก้าวกระโดดครั้งใหญ่จากเวอร์ชัน 1.26.0 ซึ่งได้เพิ่มเทคโนโลยีใหม่ๆ (H.266, LCEVC, JPEG XS) การปรับปรุงที่ล้ำลึกให้กับการสตรีมแบบปรับตัว การสร้างคำบรรยายและการติดตาม การบูรณาการเพิ่มเติมกับ Vulkan, OpenGL, CUDA, Direct3D12 และ VA และองค์ประกอบใหม่ๆ มากมายที่เขียนด้วย C และ Rust ในบรรทัดต่อไปนี้ เราจะทบทวนรายละเอียดทุกอย่างที่ 1.26.5 นำมา และเราจะจำสิ่งที่สำคัญที่สุดของซีรีส์ 1.26 ทั้งหมด เพื่อให้คุณมีภาพรวมครบถ้วนก่อนการอัปเดต

GStreamer 1.26.5 คืออะไร และทำไมคุณจึงควรสนใจ

เวอร์ชัน 1.26.5 คือการแก้ไขข้อบกพร่องครั้งที่ห้าในซีรีส์ 1.26เปิดตัวเมื่อวันที่ 7 สิงหาคม โดยเน้นที่ความน่าเชื่อถือ ไฮไลต์คือการแก้ไขและปรับปรุงที่แก้ไขปัญหาที่พบในการใช้งานจริง: audioconvert แก้ไขการถดถอยการเจรจาต่อรองแบบแคปด้วยเมทริกซ์การผสม cea608overlay และ cea708overlay ยอมรับบัฟเฟอร์หน่วยความจำ GPU แล้วเมื่อดาวน์สตรีมรองรับการจัดวางแบบโอเวอร์เลย์ และ d3d12screencapture ปรับปรุงทั้งผู้ให้บริการต้นทางและผู้ให้บริการอุปกรณ์ให้มีพฤติกรรมที่แข็งแกร่งยิ่งขึ้น

ในส่วนของการทำซ้ำและการค้นพบ จุดสำคัญต่างๆ ได้รับการปรับปรุงแล้ว: decodebin3 ไม่ล้มเหลวในสตรีมที่มีข้อมูลเมตา ONVIF อีกต่อไป และ uridecodebin3 หยุดเสี่ยงต่อการขัดข้อง เมื่อเพิ่ม URI ลงในข้อความ (เช่น หากไม่มีตัวถอดรหัส) V4L2 ขจัดการรั่วไหลของหน่วยความจำ ในการเปลี่ยนแปลงความละเอียดแบบไดนามิก และ ตัวเข้ารหัส VA ได้รับการแก้ไขแล้ว สำหรับกรณีที่อยู่ในขั้นวิกฤต

มีการเพิ่มตัวแปลงสัญญาณที่มีประโยชน์: videorate และ imagefreeze สามารถทำงานร่วมกับ JPEG XSซึ่งช่วยอำนวยความสะดวกให้กับการซิงโครไนซ์ไปป์ไลน์และการสร้างเฟรมด้วยรูปแบบนี้ Vulkan ได้รับการแก้ไขการรวมระบบ, wasapi2 ปรับปรุงการตรวจสอบอุปกรณ์ บน Windows Threadshare และ rtpbin2 รวมการแก้ไขจำนวนมาก y gst-อุปกรณ์-จอภาพ-1.0 ใช้งานได้จากบรรทัดคำสั่ง นอกจากนี้ ในบริการคลาวด์ ความกระชับจะถูกเพิ่มความลงใน AWS Translate และตัวเลือกสำหรับ ลำโพงพาร์ติชั่นพร้อม awtranscriber2พร้อมด้วย คุณสมบัติความหยาบคายของหน้ากากใหม่ใน Speechmatics เพื่อแก้ไขภาษาที่ไม่เหมาะสมในการถอดความ

คำเตือน: การก้าวกระโดดครั้งใหญ่ใน 1.26.0 (ฟีเจอร์หลัก)

1.26.0 (11 มีนาคม) นำเสนอการปรับปรุงที่กว้างขวาง เกี่ยวกับ API 1.x โดยมุ่งเน้นไปที่โคเดกใหม่ คำบรรยาย การสตรีม การวิเคราะห์ และการเร่งความเร็ว ไฮไลท์ประกอบด้วย:

  • รองรับตัวแปลงสัญญาณ VVC H.266:ตัวแยกวิเคราะห์ ตัวถอดรหัสพื้นฐานสำหรับฮาร์ดแวร์ การถอดรหัส VA-API การเข้าถึงตัวถอดรหัส FFmpeg และ mux/demux ใน MP4, Matroska และ MPEG-TS; ตัวถอดรหัสตาม VVdeC ถูกเพิ่มเข้าไปใน Rust
  • JPEG XS:องค์ประกอบการเข้ารหัสและถอดรหัสตาม SVT JPEG XS พร้อม mux/demux ใน MPEG‑TS รองรับอินเทอร์เลซและโปรเกรสซีฟ
  • แอลซีอีวีซี:การเข้ารหัส/ถอดรหัสองค์ประกอบบน V‑Nova SDK และรองรับใน h264parse เพื่อแยกเลเยอร์การปรับปรุงด้วย lcevch264decodebin
  • คำบรรยายและคำบรรยายปิด:ตัวดึง/ตัวแทรกสำหรับ H.264/H.265 cea708overlay จากรัสต์ ซีเอ708มักซ์, tttocea708, การปรับปรุงใน ซีซีคอมไบเนอร์และ การฉีดบริการ cdp สำหรับ CDP
  • เอชแอลเอส/แดช:ไคลเอนต์ adaptivedemux2 พร้อม file:// รองรับการถอยกลับและการลองใหม่ hlscmafsink y เอชแอลซิงก์3 สำหรับ CMAF/TS hlsหมึกหลายตัวแปรและการจัดเตรียมใน แดชซิงค์.
  • splitmuxsrc/sink กับ การโหลดแบบขี้เกียจและส่วนไดนามิกสัญญาณเพิ่มส่วนและนโยบายการเปิดไฟล์
  • MPEG-TS มีความสามารถมากขึ้น
  • MP4/มาโทรสกา:VVC, Hap, Lagarith, วิดีโอแบบดิบ, แท็กการหมุนและพลิก, โหมดหลอกใน qtdemux และการรองรับ ISO ของวิดีโอแบบดิบ
  • SMPTE 2038 ใน Rust สำหรับเมตาข้อมูลเสริม (demux/mux และการแปลง CC)
  • การวิเคราะห์: ใหม่ จีเอสทีเทนเซอร์เมตา, ความสัมพันธ์ N ถึง N, มาสก์การแบ่งส่วน ตัวแยกข้อมูลเมตาของ onvifmetadata, บัฟเฟอร์ดั้งเดิม y ความสัมพันธ์เมตารวมไปถึงการผูก Python ที่ได้รับการขัดเกลาเพิ่มเติม
  • การเร่งความเร็วและกราฟิก: การปรับปรุงที่ยอดเยี่ยมใน Vulkan y OpenGL (v210, YUY2/UYVY, Y444_10/16, นำเข้า DMABuf), QML พร้อมนำเข้า DMABuf โดยตรง CUDA พร้อมด้วย composer, nvenc AV1, Jetson NVMM และเคอร์เนลที่คอมไพล์ไว้ล่วงหน้า ไดเรกต์ 3 ดี 12 กับ d3d12videosink, d3d12swapchainsink, d3d12 ดีอินเตอร์เลซ, GPU IPC แบบไม่มีการคัดลอก และการจับภาพ HDR ที่ถูกต้อง
  • การ์ดจับภาพ: : การปรับปรุงใน AJA และ Decklink (HDR PQ/HLG และการวางแผนเฟรม)
  • RTP / RTSP:rtspsrc พร้อมคีย์ MIKEY ที่จัดการโดยไคลเอนต์ โหมดการซิงค์ใหม่ใน rtpbin, jitterbuffer ที่มีสถานะ RFC7273, การปรับปรุง rtph265depay และการสร้างค่าประทับเวลาใหม่ใน rtppassthroughpayและใหม่ rtpbin2 ในสนิม
  • WebRTC: webrtcbin พร้อมการย้อนกลับและการปรับปรุงพื้นฐาน webrtcsink/src พร้อมด้วยตัวเข้ารหัสเพิ่มเติม MSE และการซิงโครไนซ์ NTP/PTP; WHEP/WHIP มีอยู่ในระบบนิเวศแล้ว; และองค์ประกอบ LiveKit/Kinesis ที่พร้อมใช้งานในรุ่นสูงกว่า 1.26.x
  • ของใหม่ ในขณะที่ เว็บวิว2เอสอาร์ซี, ตัวแยก CC สำหรับ H.264/H.265, h266parse, svtjpegxsenc/ธันวาคม และชิ้นส่วนหลายชิ้นใน VA และ Rust

การเปลี่ยนแปลงทางเทคนิคอันละเอียดอ่อนที่สร้างความแตกต่าง

ตู้คอนเทนเนอร์และการขนส่ง

เพิ่มการรองรับ VVC ที่แข็งแกร่งให้กับ MP4 และ Matroska แล้วรูปแบบเฉพาะเช่น Hap/Lagarith และ วิดีโอดิบนอกเหนือจากการจัดการการหมุนและการพลิกที่ถูกต้องตามสื่อและต่อแทร็ก MPEG-TS ตอนนี้สามารถมัลติเพล็กซ์และดีเพล็กซ์ VVC, JPEG‑XS, VP9 และ AV1 (พร้อมการแมปแบบกำหนดเอง) วัด ID3 y SMPTE 302 ล้านและลองใช้ M2TS ขนาด 192 ไบต์ สำหรับการสตรีมสด mpegtslivesrc ให้สัญญาณนาฬิกาแบบ PCR

ในการสตรีมแบบปรับตัว la ไคลเอนต์ adaptivedemux2 ป้องกันการล้างข้อมูลสดที่ผิดพลาด รองรับ URI ของไฟล์:// และการลองซ้ำด้วยการถอยกลับ และ แดชซิงค์ แก้ไขความยาวช่วงเวลาสำหรับ MPD แบบไดนามิก HLS ได้รับอ่างล้างจานใหม่ที่เน้นที่ CMAF และตัวแปรการปรับขนาด

คำบรรยาย CC และ SMPTE 2038

ตัวแยก/ตัวแทรก H.264/H.265 จัดการ CC ตามลำดับการนำเสนอโดยไม่ต้องถอดรหัส (มีประโยชน์สำหรับการประมวลผลท่อโดยไม่ต้องเข้ารหัสใหม่) และกลุ่มผลิตภัณฑ์ Rust รวมอยู่ด้วย st2038ancdemux/mux และตัวแปลงไฟ DC cea708overlay แทนที่ cc708overlay ด้วยการรองรับสมัยใหม่และการยอมรับบัฟเฟอร์ GPU ใน 1.26.5

การวิเคราะห์และข้อมูลเมตา

GstTensorMeta และความสัมพันธ์ N-to-N ใหม่ รองรับเวิร์กโฟลว์การมองเห็นคอมพิวเตอร์ที่ซับซ้อนด้วยมาสก์ การแปลง ONVIF และปลั๊กอินยูทิลิตี้เพื่อรักษาบัฟเฟอร์เดิม ปรับปรุงการผูก Python ปรับปรุงกระบวนการวนซ้ำและการแก้ไขเป้าหมายการวิเคราะห์

การเร่งความเร็ว: Vulkan, OpenGL, CUDA และ D3D12

Vulkan ช่วยปรับปรุงหน่วยความจำ การวัดสี และพูลที่ไม่สอดคล้องกันนอกเหนือจากโปรไฟล์ H.264/H.265 และตัวเข้ารหัสที่คล่องตัวยิ่งขึ้น OpenGL ขยายการแปลง (v210, YUY2/UYVY, ความลึกสูง Y444) และ DMABuf CUDA เพิ่ม composer, nvav1enc, รองรับ Jetson NVMM และคอมไพล์ไว้ล่วงหน้า ไดเรกต์ 3 ดี 12 เปิดห้องสมุดประชาชน อ่างล้างมือพร้อม ความสมดุลของสีพื้นผิว mipmap, IPC แบบไม่คัดลอก และการดีอินเตอร์เลซแบบพกพา

RTP, RTSP และ WebRTC

RTSP จัดการ ไมค์กี้ ในด้านไคลเอนต์ (มีประโยชน์กับกล้อง Axis) rtpbin ได้รับโหมดไม่เคย/ntp และ jitterbuffer เปิดเผยสถานะ RFC7273 ปรับปรุงคำขอคีย์เฟรมใน H.265 RTP และการสร้างใหม่ของค่า timestamps บนเกตเวย์ สนิม ให้บริการ rtpbin2 และเพย์โหลดสำหรับ AC3, AMR, JPEG, KLV, MPEG‑TS, MP4A/G, Opus, PCMU/A, VP8/9 บนเว็บ RTC กำลังปรับแต่งการย้อนกลับ ระดับเสียง และการส่งสัญญาณซ้ำ และได้เพิ่มแหล่ง Janus, LiveKit และ WHEP ตลอดทั้งเวอร์ชัน 1.26.x

API ประสิทธิภาพและการติดตาม

GstIdStr แทนที่ GQuark ในโครงสร้าง/ตัวพิมพ์ใหญ่ เพื่อป้องกันการรั่วไหลและปรับปรุงประสิทธิภาพโดยการเปรียบเทียบโซ่สั้น จีเอสทีเวคเดค เข้าสู่แกนกลางเพื่อคิวที่เรียบง่ายและมีประสิทธิภาพมากขึ้น ยูทิลิตี้เสียง/วิดีโอได้รับการขยาย (การเรียงลำดับใหม่ เส้นทางด่วน v210⇄I420_10/I422_10) และ เพิ่มตัวติดตามใหม่ (หน่วยความจำ เวลาในการกด และ PCAP) ระบบบันทึกข้อมูลเพิ่มรายละเอียดที่สมบูรณ์ ให้กับข้อความ (URI, stream‑id) และการเขียน DOT ได้รับการปรับให้เหมาะสม

GStreamer ฮิต
บทความที่เกี่ยวข้อง:
GStreamer 1.26.4 ปรับปรุงการรองรับ mp4mux, LiveKit และอุปกรณ์ที่มีฟีเจอร์ใหม่