GStreamer

**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.

## 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.

GStreamer juga beroperasi dalam perangkat tertanam seperti Jolla Phone, Palm Pre, 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.

Laboratorium LIGO memanfaatkan GStreamer untuk menyimulasikan dan menganalisis data gelombang gravitasi. Antarmuka GStreamer disebut GstLAL.

## Arsitektur perangkat lunak

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. 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]]*).

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) yang memperluas jumlah format media yang didukung.

#### Akselerasi video

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 . Hal ini merupakan sebuah contoh keberhasilan pada Raspberry Pi.
* Inti SIP ada pada beberapa SoC Texas Instruments juga dapat diakses melalui GStreamer: , , .
* VDPAU dan VAAPI di dukung dengan GNOME Videos >= 2.28.0 dan GStreamer >= 0.10.26 sejak tahun 2010
* Broadcom Crystal HD di dukung

#### 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.) 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. 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. 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

## Pranala luar
* 
* Sebuah introduksi ke GStreamer 
* Proyek GStreamer  di Ohloh
* [irc://irc.oftc.net/gstreamer #gstreamer] di OFTC
* GStreamer FFmpeg plug-in website 
* Windows binary installer packages 
* Mac OS X binary installer packages