GStreamer

GStreamer
Sebuah pipeline sederhana dengan gst-launch
Tipemultimedia framework (en) Terjemahkan, perangkat lunak bebas dan Pustaka perangkat lunak Edit nilai pada Wikidata
Versi pertama11 Januari 2001 (2001-01-11)[1]
Versi stabil
1.24.7 (21 Agustus 2024) Edit nilai pada Wikidata
GenreKerangka kerja Multimedia
LisensiLGPL-2.1-atau-kemudian[2]
Karakteristik teknis
Sistem operasiLintas platform Edit nilai pada Wikidata
Bahasa pemrogramanC (mul) Terjemahkan Edit nilai pada Wikidata
Format berkas
Daftar
Advanced Systems Format, Audio Video Interleave, 3GPP file format (en) Terjemahkan, mov, FLV (mul) Terjemahkan, MPEG-2 transport stream (en) Terjemahkan, Matroska, WebM, Material Exchange Format (en) Terjemahkan dan Ogg Edit nilai pada Wikidata
Informasi pengembang
PengembangGStreamer Team
Sumber kode
Kode sumberPranala Edit nilai pada Wikidata
Debiangir1.2-gstreamer-1.0 Edit nilai pada Wikidata
Arch Linuxgstreamer Edit nilai pada Wikidata
Ubuntugir1.2-gstreamer-1.0 Edit nilai pada Wikidata
Gentoomedia-libs/gstreamer Edit nilai pada Wikidata
Informasi tambahan
Situs webgstreamer.freedesktop.org
Stack ExchangeEtiqueta Edit nilai pada Wikidata
Pelacakan kesalahanLaman pelacakan Edit nilai pada Wikidata
Free Software DirectoryGStreamer Edit nilai pada Wikidata
Panduan penggunaLaman panduan Edit nilai pada Wikidata
Mastodon: gstreamer@floss.social Edit nilai pada Wikidata
Sunting di Wikidata Sunting di Wikidata • Sunting kotak info • L • B
Info templat
Bantuan penggunaan templat ini


GStreamer adalah framework pengembangan untuk membuat aplikasi seperti pemutar media, penyunting video, streaming media broadcaster, dan lain sebagainya. GStreamer menyediakan sebuah pemutar media yang datang bersama Gst-editor. Sesuai dengan namanya, Gst-editor berfungsi sebagai program konstruksi dan manipulasi pipeline. Gst-editor menggunakan Gnome Canvas sebagai pondasinya. Selain keduanya, ada juga Gst-recorder yang merupakan program perekam video, yang dapat merekam secara sempurna audio dan video tersinkronisasi ke dalam format yang didukung oleh GStreamer.[5]

Distribusi dan penerapan

Lingkungan desktop GNOME, sebuah pengguna setia GStreamer, telah menyertakan GStreamer sejak GNOME versi 2.2 dan mendorong aplikasi GNOME dan GTK untuk menggunakannya. Proyek lainnya juga menggunakan atau mendukungnya, seperti kerangka media Phonon dan pemutar media Songbird. Itu juga digunakan di mesin peramban WebKit.[6]

GStreamer juga beroperasi dalam perangkat tertanam seperti Jolla Phone, Palm Pre,[7] Tizen dan Tablet Internet Nokia 770, N800, N810, N900 dan N9 menjalankan sistem operasi Maemo.

Sebagai tambahan perilisan kode sumber, proyek GStreamer menyediakan build biner untuk Android, iOS, OSX dan Windows.[8]

Laboratorium LIGO memanfaatkan GStreamer untuk mensimulasikan dan menganalisis data gelombang gravitasi. Antarmuka GStreamer disebut GstLAL.[9]

Arsitektur perangkat lunak

Ikhtisar
Inti GStreamer dengan tiga jenis plugin yang berbeda.
GStreamer adalah sebuah Pipeline.

GStreamer ditulis dalam bahasa pemrograman C dengan sistem tipe berdasarkan GObject dan model objek GLib 2.0.

Ikatan bahasa

Sebuah pustaka ditulis dalam satu bahasa pemrograman dapat digunakan dalam bahasa lainnya jika ikatan ditulis; GStreamer memiliki berbagai ikatan untuk berbagai bahasa seperti Go, Python, Rust, Vala, C++, Perl, GNU Guile, C# dan Ruby.

Plug-in

GStreamer menggunakan sebuah arsitektur plug-in yang di mana membuat sebagain besar fungsionalitas GStreamer diimplementasi sebagai pustaka bersama.[10] Fungsionalitas dasar GStreamer berisi fungsi untuk mendaftarkan dan memuat plug-in dan menyediakan dasar dari semua kelas dalam bentuk kelas dasar. Pustaka plug-in dimuat secara dinamis untuk mendukung spektrum yang luas dari codec, format wadah, driver masukan/keluaran dan efek.

Plug-in dapat diinstal secara semi-otomatis saat pertama kali dibutuhkan. Untuk tujuan itu distribusi dapat mendaftarkan backend yang menyelesaikan deskripsi fitur ke nama paket.

Sejak versi 0.9, plug-in dikelompokkan menjadi tiga set (dinamai menurut film The Good, the Bad and the Ugly).[11]

Nama kelompok Plug-in Deskripsi
Good Paket ini berisi plug-in GStreamer dari kelompok "bagus", satu kelompok plug-in berkualitas tinggi di bawah lisensi LGPL.[12]
Bad Plug-ins Buruk GStreamer terdiri dari satu set plug-in yang tidak up-to-par dibandingkan dengan yang lain. Mereka mungkin mendekati plug-in berkualitas baik, tetapi mereka kekurangan sesuatu: mungkin sebuah ulasan kode, beberapa dokumentasi, serangkaian tes, pengelola langsung yang nyata, atau penggunaan luas yang sebenarnya.[13]
Ugly Paket ini berisi plug-in dari kelompok "jelek", sekumpulan plug-in berkualitas baik yang mungkin menimbulkan masalah distribusi.[14]

Distribusi individual selanjutnya dapat mengklasifikasikan plug-in ini: sebagai contoh Ubuntu mengelompokkan kumpulan "bad" dan "ugly" ke komponen "Universe" atau "Multiverse".

Sebagai tambahan, terdapat sebuah plug-in GStreamer FFmpeg (disebut gst-libav untuk alasan historis[15]) yang memperluas jumlah format media yang didukung.

Akselerasi video

Melalui plugin spesial yang disediakan oleh Texas Instruments, GStreamer memanfaatkan akselerasi perangkat keras yang disediakan oleh mis. Texas Instruments DaVinci.

Terdapat banyak jenis SIP blocks yang dapat melakukan komputasi untuk memecahkan kode codec video tertentu, seperti PureVideo, UVD, QuickSync Video, TI Ducati dan lainnya. Hal tersebut perlu didukung oleh driver perangkat, yang pada gilirannya menyediakan satu atau beberapa antarmuka, seperti VDPAU, VAAPI, Distributed Codec Engine atau DXVA hingga perangkat lunak pengguna akhir seperti MPlayer untuk mengakses perangkat keras ini dan memindahkan komputasi ke dalamnya.

  • Hal ini dimungkinkan untuk menggunakan Video Coding Engine dengan GStreamer melaui pengumpul plugin OpenMAX IL gst-omx.[16] Hal ini merupakan sebuah contoh keberhasilan pada Raspberry Pi.[17]
  • Inti SIP ada pada beberapa SoC Texas Instruments juga dapat diakses melalui GStreamer: gst-dmai, gst-openmax, gst-dsp.[18]
  • VDPAU dan VAAPI di dukung dengan GNOME Videos >= 2.28.0 dan GStreamer >= 0.10.26 sejak tahun 2010[19]
  • Broadcom Crystal HD di dukung[20]

Format media

Plugin Good, Bad dan Ugly GStreamer yang disebut sebelumnya menyediakan, di samping semua jenis elemen pemrosesan/filter, dukungan untuk berbagai format berkas, protokol, dan codec multimedia. Selain itu, dukungan untuk lebih dari seratus format kompresi (termasuk MPEG-1, MPEG-2, MPEG-4, H.261, H.263, H.264, RealVideo, MP3, WMV, dll.[21]) secara transparan disediakan melalui plug-in gst-libav.

Sejarah dan pengembangan

Awal mula

Erik Walthinsen mencetuskan proyek GStreamer pada 1999. Banyak ide desain intinya berasal dari proyek penelitian di Oregon Graduate Institute.[22] Wim Taymans bergabung dengan proyek ini segera setelahnya dan memperluas banyak aspek sistem. Banyak pengembang perangkat lunak lainnya telah berkontribusi sejak saat itu.

Perilisan besar pertama adalah 0.1.0 yang diumumkan pada 11 Januari 2001.[1] Tidak lama kemudian, GStreamer mendapatkan pendukung komersial pertamanya. Menjelang akhir Januari 2001, mereka merekrut Erik Walthinsen untuk mengembangkan metode untuk menyematkan GStreamer dalam perangkat yang lebih kecil (kelas-telepon seluler). Karyawan RidgeRun lainnya, Brock A. Frazier, merancang logo GStreamer. RidgeRun kemudian mengalami kesulitan keuangan dan harus memberhentikan stafnya, termasuk Erik Walthinsen. Perkembangan GStreamer sebagian besar tidak terpengaruh.

Referensi

  1. ^ a b "GStreamer "Slipstream" 0.1.0 released". 11 January 2001. Diarsipkan dari versi asli tanggal 11 November 2012. Diakses tanggal 3 November 2010.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  2. ^ "What are the exact licensing terms for GStreamer and its plugins?". freedesktop.org. Diarsipkan dari versi asli tanggal 2021-06-07. Diakses tanggal 2021-06-07.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  3. ^ "GStreamer 1.24.7 stable bug-fix release" (dalam bahasa bahasa Inggris). 21 Agustus 2024. Diakses tanggal 21 Agustus 2024. Pemeliharaan CS1: Bahasa yang tidak diketahui (link)
  4. ^ "GStreamer", Ohloh Analysis Summary, Ohloh, diarsipkan dari versi asli tanggal 2014-06-26, diakses tanggal 2016-11-06  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  5. ^ Ariya Hidayat dan Noprianto (2003), Perang Tanding : KDE vs GNOME[pranala nonaktif permanen], halaman 43. www.infolinux.web.id. Diakses pada 06 Juni 2010.
  6. ^ "Igalia Multimedia". Diarsipkan dari versi asli tanggal 2021-09-01. Diakses tanggal 2021-09-01.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  7. ^ "webOS and GStreamer". webOShelp. Diarsipkan dari versi asli tanggal 22 March 2009. Diakses tanggal 25 July 2009.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  8. ^ "GStreamer: Download". gstreamer.freedesktop.org. Diarsipkan dari versi asli tanggal 2015-05-10. Diakses tanggal 15 May 2015.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  9. ^ "GstLAL Project Page". Wiki.ligo.org. Diarsipkan dari versi asli tanggal 23 April 2020. Diakses tanggal 6 May 2019.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  10. ^ Overview of the modules, Gstreamer.freedesktop.org, diarsipkan dari versi asli tanggal 25 January 2012, diakses tanggal 8 February 2012  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  11. ^ GStreamer 0.9 development series - Hung by a Thread, Gstreamer.freedesktop.org, diarsipkan dari versi asli tanggal 27 January 2013, diakses tanggal 24 February 2013  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  12. ^ "GStreamer Good Plug-ins". Diarsipkan dari versi asli tanggal 2019-02-07. Diakses tanggal 2019-02-05.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  13. ^ "GStreamer Bad Plug-ins". Diarsipkan dari versi asli tanggal 2019-02-07. Diakses tanggal 2019-02-05.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  14. ^ "GStreamer Ugly Plug-ins". Diarsipkan dari versi asli tanggal 2019-02-07. Diakses tanggal 2019-02-05.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  15. ^ "subprojects/gst-libav/README.md · 47ac79d7b8cc078f4890d0ce21f47e1c1af2c736 · GStreamer / gstreamer · GitLab". GitLab (dalam bahasa Inggris). Diakses tanggal 2022-07-12. 
  16. ^ "GStreamer OpenMAX IL wrapper plugin". gstreamer.freedesktop.org. Diarsipkan dari versi asli tanggal 2017-07-10. Diakses tanggal 2017-07-21.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  17. ^ "Gstreamer 1.0 for raspbian". GRaspberrypi.org. Diarsipkan dari versi asli tanggal 2017-07-10. Diakses tanggal 2017-07-21.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  18. ^ "GStreamer Plug-ins for TI hardware". Processors.wiki.ti.com. Diarsipkan dari versi asli tanggal 2017-06-28. Diakses tanggal 2017-07-21.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  19. ^ "Fluendo Codec Pack Release 11 bring VDPAU and VAAPI support". 2010-03-25. Diarsipkan dari versi asli tanggal 2014-06-24.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  20. ^ Debian Webmaster. "Debian - Details of package gstreamer0.10-crystalhd in wheezy". Packages.debian.org. Diarsipkan dari versi asli tanggal 2017-06-29. Diakses tanggal 2017-07-21.  Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
  21. ^ "subprojects/gst-libav/ext/libav/gstavcodecmap.c · 47ac79d7b8cc078f4890d0ce21f47e1c1af2c736 · GStreamer / gstreamer · GitLab". GitLab (dalam bahasa Inggris). Diakses tanggal 2022-07-12. 
  22. ^ Edge, Jake (26 October 2010). "GStreamer: Past, present, and future". LWN.net. Diakses tanggal 15 May 2022. 

Pranala luar

  • Situs web resmi
  • Sebuah introduksi ke GStreamer Diarsipkan 2007-05-07 di Wayback Machine.
  • Proyek GStreamer Diarsipkan 2008-01-24 di Wayback Machine. di Ohloh
  • #gstreamer di OFTC
  • GStreamer FFmpeg plug-in website Diarsipkan 2021-01-26 di Wayback Machine.
  • Windows binary installer packages Diarsipkan 2017-01-11 di Wayback Machine.
  • Mac OS X binary installer packages Diarsipkan 2011-03-14 di Wayback Machine.