หลังจากปีครึ่งของการพัฒนา มีการประกาศเปิดตัว GStreamer 1.20 เวอร์ชันใหม่ ชุดส่วนประกอบข้ามแพลตฟอร์มที่เขียนด้วยภาษา C สำหรับสร้างแอปพลิเคชันมัลติมีเดียที่หลากหลาย ตั้งแต่เครื่องเล่นสื่อและตัวแปลงไฟล์เสียง/วิดีโอ ไปจนถึงแอปพลิเคชัน VoIP และระบบการสตรีม
ในเวอร์ชันใหม่นี้ การรวมตัวเข้ารหัสใหม่นั้นมีความโดดเด่น เช่นเดียวกับการปรับปรุงเพื่อรองรับการผสมเสียงและวิดีโอ และอื่นๆ
คุณสมบัติใหม่หลักของ GStreamer 1.20
ในเวอร์ชั่นใหม่นี้จะกล่าวถึง การพัฒนาที่ด้านบนของ GitLab ได้ย้ายไปใช้ที่เก็บทั่วไปเดียว ไปยังโมดูลทั้งหมด
ส่วนความแปลกใหม่ที่จะนำเสนอในเวอร์ชั่นใหม่นี้นั้นน่าสังเกตว่า เพิ่มไลบรารีระดับสูงใหม่ GstPlay ซึ่งมาแทนที่ GstPlayer API และให้การทำงานที่คล้ายกันสำหรับการเล่นเนื้อหา ยกเว้นว่าจะใช้บัสข้อความเพื่อแจ้งแอปพลิเคชันแทนสัญญาณ GObject
นอกจากนี้ยังมีการเน้นย้ำว่า เพิ่มการรองรับกลไก SMPTE 2022-1 2-D (ส่งต่อการแก้ไขข้อผิดพลาด) บวก encodebin และ transcodebin สำหรับตัวแปลงสัญญาณ VP8, VP9 และ H.265 ใช้โหมดการเข้ารหัสอัจฉริยะ ("การเข้ารหัสอัจฉริยะ") ซึ่งการแปลงรหัสจะดำเนินการเมื่อจำเป็นเท่านั้นและเวลาที่เหลือ การส่งข้อมูลที่มีอยู่จะถูกส่งต่อ
การเปลี่ยนแปลงที่โดดเด่นอีกประการหนึ่งก็คือ เพิ่มความสามารถในการถอดรหัสข้อมูลเข้าที่ระดับเฟรมกลาง (sub-frame) ซึ่งให้คุณเริ่มถอดรหัสโดยไม่ต้องรอฟูลเฟรม การเพิ่มประสิทธิภาพนี้เข้ากันได้กับตัวถอดรหัส OpenJPEG JPEG 2000, FFmpeg H.264 และ OpenMAX H.264/H.265
นอกจากการถอดรหัสวิดีโอสำหรับโปรโตคอล RTP, WebRTC และ RTSP แล้ว ยังมีการจัดการอัตโนมัติของการสูญเสียแพ็กเก็ต ข้อมูลเสียหาย และคำขอคีย์เฟรมอีกด้วย เพิ่มการรองรับการเปลี่ยนข้อมูลตัวแปลงสัญญาณได้ทันที ถึงผู้บรรจุหีบห่อ สื่อ mp4 และ Matroska
ในทางกลับกันก็เน้นว่า เพิ่มการรองรับการถอดรหัสข้อมูล ความโปร่งใส ในรูปแบบ WebM ช่วยให้คุณสามารถเล่นวิดีโอ VP8/VP9 ที่มีพื้นที่โปร่งใส รวมทั้งรองรับการตั้งค่าคุณสมบัติเฉพาะแอปพลิเคชันเพิ่มเติมในโปรไฟล์การเข้ารหัส และความสามารถในการใช้ CUDA สำหรับการแปลงพื้นที่สี การปรับขนาดองค์ประกอบ และการปรับ การโหลดองค์ประกอบ
ของ การเปลี่ยนแปลงอื่น ๆ ที่โดดเด่น ของเวอร์ชันใหม่นี้:
- คลาส payloader และ payloader มีการสนับสนุนแบบรวมสำหรับการทำงานกับส่วนหัว RTP เพิ่มเติม
- ปรับปรุงความเข้ากันได้กับ WebRTC
- เพิ่มโหมดเพื่อสร้างถังสื่อ mp4 ที่กระจัดกระจาย
- เพิ่มการรองรับเหตุการณ์ให้กับ AppSink API นอกเหนือจากบัฟเฟอร์และรายการบัฟเฟอร์
- เพิ่มการตั้งค่าเพิ่มเติมสำหรับคิวภายในไปยัง AppSrc
- อัปเดตการผูกภาษา Rust และเพิ่มปลั๊กอินใหม่ 26 รายการที่เขียนใน Rust (gst-plugins-rs)
- เพิ่มองค์ประกอบ aesdec และ aesec สำหรับการเข้ารหัสและถอดรหัสโดยใช้อัลกอริทึม AES
เพิ่มองค์ประกอบ fakeaudiosink และ videocodectestsink สำหรับการทดสอบและการดีบัก - เครื่องมือที่ได้รับการปรับปรุงเพื่อสร้าง GStreamer เวอร์ชันมินิมอล
เพิ่มความสามารถในการคอมไพล์ด้วย FFmpeg 5.0 - สำหรับ Linux จะมีการใช้ตัวแปลงสัญญาณ MPEG-2 และ VP9 เวอร์ชันไร้สัญชาติ
- สำหรับ Windows ตัวถอดรหัสที่ใช้ Direct3D11/DXVA ได้เพิ่มการรองรับ AV1 และ MPEG-2
- ปลั๊กอิน Souphttpsrc เข้ากันได้กับ libsoup2 และ libsoup3
- Composer รองรับการแปลงและมิกซ์วิดีโอในโหมดมัลติเธรด
ในที่สุด หากคุณต้องการทราบข้อมูลเพิ่มเติม เกี่ยวกับ Gstreamer เวอร์ชันใหม่นี้ คุณสามารถตรวจสอบบันทึกการเปลี่ยนแปลง ในลิงค์ต่อไปนี้.
จะติดตั้ง Gstreamer 1.20 บน Ubuntu และอนุพันธ์ได้อย่างไร?
หากคุณสนใจที่จะติดตั้ง Gstreamer 1.18 บน distro ของคุณ คุณสามารถทำได้โดยทำตามขั้นตอนที่เราแบ่งปันด้านล่างนี้
กระบวนการนี้ใช้ได้ทั้งกับ Ubuntu 20.04 เวอร์ชันใหม่และเวอร์ชันก่อนหน้าพร้อมการสนับสนุน
ติดตั้ง, เราต้องเปิดเทอร์มินัล (Ctrl + Alt + T) และในนั้นเราพิมพ์คำสั่งต่อไปนี้:
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
และพร้อมที่จะติดตั้ง Gstreamer 1.16 ในระบบแล้ว