มีเฟรมเวิร์กมัลติมีเดีย GStreamer 1.20.0

หลังจากหนึ่งปีครึ่งของการพัฒนา GStreamer 1.20 ได้เปิดตัว ซึ่งเป็นชุดส่วนประกอบข้ามแพลตฟอร์มที่เขียนด้วยภาษา C สำหรับการสร้างแอปพลิเคชันมัลติมีเดียที่หลากหลาย ตั้งแต่เครื่องเล่นมีเดียและตัวแปลงไฟล์เสียง/วิดีโอ ไปจนถึงแอปพลิเคชัน VoIP และระบบสตรีมมิ่ง รหัส GStreamer ได้รับอนุญาตภายใต้ LGPLv2.1 ในเวลาเดียวกัน มีการอัปเดตปลั๊กอิน gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20 รวมถึงการเชื่อมโยง gst-libav 1.20 และ เซิร์ฟเวอร์สตรีมมิ่ง gst-rtsp-server 20 ที่ระดับ API และ ABI รีลีสใหม่สามารถใช้งานร่วมกับสาขา 1.0 แบบย้อนหลังได้ แอสเซมบลีไบนารีจะถูกจัดเตรียมในไม่ช้าสำหรับ Android, iOS, macOS และ Windows (ใน Linux ขอแนะนำให้ใช้แพ็คเกจจากการแจกจ่าย)

การปรับปรุงที่สำคัญใน GStreamer 1.20:

  • การพัฒนาบน GitLab ได้รับการเปลี่ยนมาใช้พื้นที่เก็บข้อมูลเดียวซึ่งใช้ได้กับทุกโมดูล
  • มีการเพิ่มไลบรารี GstPlay ระดับสูงใหม่ ซึ่งมาแทนที่ GstPlayer API และมีฟังก์ชันการทำงานที่คล้ายกันสำหรับการเล่นเนื้อหา แตกต่างโดยใช้บัสข้อความเพื่อแจ้งเตือนแอปพลิเคชันแทนสัญญาณ GObject
  • เพิ่มการรองรับสำหรับการถอดรหัสข้อมูลความโปร่งใสของ WebM ทำให้สามารถเล่นวิดีโอ VP8/VP9 ด้วยพื้นที่โปร่งใสได้
  • ขณะนี้โปรไฟล์การเข้ารหัสรองรับการตั้งค่าคุณสมบัติเฉพาะแอปพลิเคชันเพิ่มเติมแล้ว
  • Compositor รองรับการแปลงและผสมวิดีโอแบบมัลติเธรด
  • คลาส depayloader และ payloader มีการสนับสนุนแบบรวมสำหรับการทำงานกับส่วนหัว RTP เพิ่มเติม (ส่วนขยายส่วนหัว RTP)
  • เพิ่มการรองรับกลไก SMPTE 2022-1 2-D (การแก้ไขข้อผิดพลาดการส่งต่อ)
  • Encodebin และ Transcodebin สำหรับตัวแปลงสัญญาณ VP8, VP9 และ H.265 ใช้โหมดการเข้ารหัสอัจฉริยะ ซึ่งการแปลงรหัสจะดำเนินการเมื่อจำเป็นเท่านั้น และส่วนที่เหลือของเวลานั้นสตรีมที่มีอยู่จะถูกส่งต่อ
  • ปลั๊กอินซุปhttpsrc เข้ากันได้กับ libsoup2 และ libsoup3 แล้ว
  • เพิ่มความสามารถในการถอดรหัสข้อมูลอินพุตในระดับเฟรมกลาง (เฟรมย่อย) ซึ่งช่วยให้คุณเริ่มถอดรหัสได้โดยไม่ต้องรอให้ได้รับแบบเต็มเฟรม การสนับสนุนสำหรับการเพิ่มประสิทธิภาพนี้รวมอยู่ในตัวถอดรหัส OpenJPEG JPEG 2000, FFmpeg H.264 และ OpenMAX H.264/H.265
  • เมื่อถอดรหัสวิดีโอสำหรับโปรโตคอล RTP, WebRTC และ RTSP จะมีการจัดการการสูญหายของแพ็กเก็ต ข้อมูลเสียหาย และคำขอคีย์เฟรมโดยอัตโนมัติ
  • เพิ่มการรองรับการเปลี่ยนแปลงข้อมูลโคเดกได้ทันทีใน mp4 และ Matroska Media Container Packers ซึ่งช่วยให้คุณเปลี่ยนโปรไฟล์ ระดับ และความละเอียดสำหรับสตรีมอินพุต H.264/H.265
  • เพิ่มโหมดสำหรับการสร้างคอนเทนเนอร์สื่อ mp4 ที่กระจัดกระจาย
  • เพิ่มการรองรับเสียงในพอร์ตที่ใช้ WPE (WebKit Port for Embedded)
  • เพิ่มความสามารถในการใช้ CUDA สำหรับการแปลงพื้นที่สี การปรับขนาดองค์ประกอบ และการโหลดองค์ประกอบ
  • เพิ่มการรองรับหน่วยความจำ NVMM (NVIDIA Memory Module) สำหรับองค์ประกอบ OpenGL gupload และ gldownload
  • ปรับปรุงการรองรับ WebRTC
  • มีการเสนอปลั๊กอินใหม่สำหรับ VA-API (Video Acceleration API) ซึ่งรองรับตัวถอดรหัสและองค์ประกอบหลังการประมวลผลเพิ่มเติม
  • AppSink API ได้เพิ่มการรองรับเหตุการณ์นอกเหนือจากบัฟเฟอร์และรายการบัฟเฟอร์
  • เพิ่มการตั้งค่าเพิ่มเติมสำหรับคิวภายในไปยัง AppSrc แล้ว
  • อัปเดตการเชื่อมโยงภาษา Rust และเพิ่มปลั๊กอินใหม่ 26 ปลั๊กอินที่เขียนด้วย Rust (gst-plugins-rs)
  • เพิ่มองค์ประกอบ aesdec และ aesenc สำหรับการเข้ารหัสและถอดรหัสโดยใช้อัลกอริทึม AES
  • เพิ่มองค์ประกอบ fakeaudiosink และ videocodectestsink สำหรับการทดสอบและการดีบัก
  • เครื่องมือที่ได้รับการปรับปรุงสำหรับการสร้าง GStreamer แบบเรียบง่าย
  • เพิ่มความสามารถในการสร้างด้วย FFmpeg 5.0
  • สำหรับ Linux เวอร์ชันของตัวแปลงสัญญาณ MPEG-2 และ VP9 ได้ถูกนำมาใช้ โดยทำงานโดยไม่บันทึกสถานะ (ไร้สถานะ)
  • สำหรับ Windows มีการเพิ่มการรองรับ AV3 และ MPEG-11 ในตัวถอดรหัสที่ใช้ Direct1D2/DXVA

ที่มา: opennet.ru

เพิ่มความคิดเห็น