GStreamer este o bibliotecă open source, o componentă complexă de software care acționează ca un cadru multimedia pentru numeroasele sisteme de operare GNU / Linux, precum Android, OpenBSD, Mac OS X, și Symbian OS.
Caracteristici dintr-o privire
Caracteristicile cheie includ o bibliotecă de bază completă, arhitectură inteligentă a pluginurilor, o acoperire extinsă a tehnologiilor multimedia, precum și instrumente extinse de dezvoltare, astfel încât să puteți adăuga cu ușurință suport pentru GStreamer în aplicațiile dvs.
Acesta este principalul backend multimedia pentru o gamă largă de proiecte open source, furios de aplicațiile de redare audio și video, cum ar fi Totem (Video) din mediul desktop GNOME și editoare complexe video și audio.
În plus, software-ul dispune de performanțe foarte ridicate și de latență redusă, datorită tehnologiei sale extrem de ușoare de transmitere a datelor, precum și a sincronizării globale (audio / video)
Cuprinde mai multe pachete de codecuri
Proiectul este alcătuit din mai multe pachete diferite, cunoscute și sub denumirea de pachete de cod, care pot fi instalate cu ușurință pe orice distribuție GNU / Linux din depozitele de programe implicite, toate simultan sau separat. Acestea sunt următoarele: GStreamer Plugins Base, GStreamer Plugins Good, GStreamer Plugins Bad și GStreamer Plugins Ugly.
GStreamer este o bibliotecă compactă de bază, care permite construcțiilor aleatoare pipleline grație structurii bazate pe grafice, bazată pe biblioteca de modele obiect GLib 2.0, care poate fi utilizată pentru proiectarea și moștenirea orientată pe obiecte.
Utilizează tehnologia QoS (Quality of Service)
Pentru a garanta cea mai bună calitate a sunetului și a calității video sub sarcină mare CPU, proiectul folosește tehnologia QoS (Quality of Service). În plus, oferă o construcție transparentă și trivială a conductelor multi-filetate.
Datorită API-ului simplu, stabil și curat (Application Programming Interface), dezvoltatorii pot integra cu ușurință în aplicațiile lor, precum și pentru a crea pluginuri care vor extinde funcționalitatea implicită. De asemenea, le oferă un sistem complet de depanare.
Linia de fund
În concluzie, GStreamer este un cadru multimedia foarte puternic și extrem de apreciat pentru ecosistemul open source, oferind utilizatorilor GNU / Linux o gamă largă de codecuri audio și video pentru redarea și procesarea media.
strong> Ce este nou în această ediție:
- Eliberare Bugfix.
Ce este nou în versiunea 1.14.1:
Ce este nou în versiune:
- Această versiune conține numai remedii și ar trebui să fie sigur să actualizați 1.8.0.
Ce este nou în versiunea 1.8.2:
- pentru a actualiza de la 1.8.0.
Ce este nou în versiunea 1.8.0:
- Decodificarea video cu copiere zero la hardware accelerate pe Android
- Sursă nouă de captură video pentru Android utilizând API-ul android.hardware.Camera
- Suport pentru redarea inversă Windows Media (ASF / WMV / WMA)
- Sistemul de urmărire nou oferă suport pentru instrumente de depanare mai sofisticate
- API nou pentru un nivel avansat de redare GstPlayer
- Sprijinul inițial pentru noul Vulkan API, a se vedea postarea blogului lui Matthew Waters pentru mai multe detalii
- Suport îmbunătățit pentru codec audio Opus: Suport pentru mai mult de două canale; MPEG-TS demuxer / muxer poate lucra acum cu Opus; codare / decodare / transmuxare exacte cu Ogg, Matroska, ISOBMFF (Quicktime / MP4) și MPEG-TS ca container; noi funcții utilitare codec pentru captarea și captarea Opus în biblioteca pbutils. Elementele de encoder / decodor Opus au fost mutate, de asemenea, în gst-plugins-base (de la -bad) și opusloader-ul RTP opus la -bun.
- Modulul VAAPI GStreamer este acum lansat și întreținut ca parte a proiectului GStreamer
- Suport pentru proxy de active în serviciile de editare GStreamer
Ce este nou în versiunea 1.6.3:
- Fixați regresia în biblioteca GL care a făcut glimagesink nesăbuit pe Android
- Prelungire aritmetică intregă în elementul queue2 care ar putea rupe buffering-ul sau poate provoca accidente datorate dereferenței indicatorului NULL
- Remedierea accidentală a tipului de tip AAC / ADTS cauzată de citirea mai multor memorii decât este disponibilă
- Opriți ignorarea erorilor codorului în encoderele VP8 / VP9
- Deprestați GstVideoEncoder GST_VIDEO_ENCODER_FLOW_DROPPED. Este redundant și nu a fost niciodată implementat efectiv
- Asigurați-vă că ați stocat informațiile video corecte în GstVideoBufferPool
- Fixați capacele în rtspsrc atunci când faceți SRTP peste TCP intercalat
- Rezolvați un accident în parserul pcap pe pachetele de dimensiuni 0
- Ștergeți pavilionul EOS în appsrc pentru a permite reutilizarea după EOS și spălare
- Ignoră fluxurile de spălare din fluxul de streamsynchronizer în timpul comutărilor de flux pentru a remedia problemele cauzate de acest lucru în serviciile de editare gst
- Ignorarea etichetelor și a altor metadate în fișierele WAV după "date" bucată în modul PUSH pentru a împiedica interpretarea lor ca audio
- Folosiți corect colorimetria în v4l2 numai pentru formatele de culoare YUV
- Setează biți rezervate în MPEG TS muxer la 1s
- Fixați calculul lungimilor ramelor SBC
- Ieșirea fixă a deployloader-ului RTP JPEG2000 să aibă un cadru per tampon și un accident în decodorul OpenJPEG pe cadre incomplete
- Actualizați instantaneu ffmpeg în gst-libav la 2.8.5
- Rezolvarea pierderilor de memorie se realizează în scaletempo, în materialul brut RTP deplayloader și în playink legate de filtrele audio / video
- Remedieri pentru tratarea erorilor în pluginul audio OSX
- Diferite adnotări adnotări gobiect-introspecție și adăugări
- Remedieri de avertizare Compiler pentru cel mai recent compilator clang
Ce este nou în versiunea 1.6.1:
- Crashes în encoderele gst-libav au fost fixate
- Mai multe fluxuri de test DASH-IF funcționează acum
- Fluxurile live DASH, HLS și SM SmoothStreaming funcționează mai fiabile și alte soluții pentru protocoalele adaptive de streaming
- Redarea inversă funcționează cu scaletempo pentru a păstra pasul audio
- Raportul de timp corect este raportat pentru negativul aplicat
- Validarea pachetelor SRTP în timpul decodificării nu mai respinge pachetele valide
- Remediază pentru agregator și agregator pentru a începe producerea producției la momentul potrivit și de ex. fără a da o mulțime de tăcere la început
- Snapshot-ul intern ffmpeg al gst-libav a fost actualizat la 2.8.1
- cerbero are suport pentru Mac OS X 10.11 (El Capitan)
- S-au fixat diferite scurgeri de memorie, inclusiv scurgeri majore în playbin, playink și decodebin
- Diferite adnotări GObject-Introspection fixează pentru legături
- și multe, multe altele
Ce este nou în versiunea 1.6.0:
- Suport video stereoscopic 3D și multiview
- API mod trick pentru redare rapidă înainte / înapoi, etc.
- Îmbunătățirea procesării DTS (decodarea timestamp) vs. manipularea PTS (timestamp prezentare) pentru a ține cont de DTS negativ
- noul API GstVideoConverter pentru o conversie optimizată și mai corectă a cadrelor video brute între toate formatele acceptate, cu redimensionare
- v4l2src acceptă acum renegocierea
- v4l2transform poate face scalarea acum
- Elementul V4L2 raportează acum Colorimetria în mod corespunzător
- Înregistrarea mai ușoară a MP4, Matroska, Ogg, MPEG-TS: îmbunătățiri noi pentru splitmuxsink și multifilesink
- Suportul de semnalizare pentru protecția conținutului pentru DASH / MP4 pentru semnalizarea API și Common Cripping (CENC)
- Multe îmbunătățiri de streaming adaptive (DASH, HLS și MSS)
- Noi ceasuri PTP și NTP ale clientului de rețea și stabilitate mai bună a stabilității ceasului la distanță
- Suprapunere de subtitrare de înaltă calitate la rezoluțiile de afișare cu glimagesink sau gtkglsink
- Suport pentru înregistrare pentru serverul GStreamer RTSP
- Suport pentru retransmisii (RTX) în serverul RTSP și client
- RTSP care solicită suport în client și server a fost fixat
- Îmbunătățiri de programare RTCP și suport RTCP redus
- MP4 / MOV muxer a achiziționat un nou "robust" modul de operare care încearcă să mențină fișierul de ieșire într-o stare validă în orice moment
- Suportul de mixare live în agregator, audiomixer și compozitor a fost îmbunătățit mult
- compozitorul acceptă, de asemenea, redimensionarea fluxurilor de intrări în zbor
- Element nou de intrare audio cu sincronizare de intrare și suport de intrare live
- Blackmagic Design DeckLink suportul pentru captarea și redarea cardurilor a fost rescris de la zero; Suport 2k / 4k; modul de detectare
- Suport pentru metadatele KLV în RTP și MPEG-TS
- encoder video H.265 (x265), decodoare (libav, libde265) și încărcătoare payloader RTP și depayloaders
- Un nou plugin DTLS și suport SRTP / DTLS
- Suport pentru OpenGL3, contexte multiple și propagare de context, 3D video, separare transfer / conversie, amestecare subtitrări
- Noua chiuveta video QML bazată pe OpenGL, chiuveta video Gtk GL, chiuveta video CoreAnimation CAOpenGLLayerSink
- gst-libav a fost transferat la ffmpeg ca furnizor libav, câștigă suport pentru video 3D / multiview, trucuri și codec CAVS
- API GstHarness pentru teste unitare
- gst-editing-services a primit o interfață ges-launch-1.0 complet nouă, suport îmbunătățit de mixare și integrare în gst-validate
- gnonlin a fost depreciat în favoarea nle (Non Linear Engine) în gst-editing-services
- gst-validate are un nou sistem de plugin-uri, o extensie de testare extensivă, suport pentru run-uri de test concurent și suport pentru valgrind
- instrumentul de construire cerbero pentru pachetele binare SDK câștigă o nouă comandă "bundle-source"
- Diferite îmbunătățiri ale suportului platformelor Android, iOS, OS X și Windows
Ce este nou în versiunea 1.5.2:
- 740502: adăugați proprietatea absolută în GstDirectControlBinding
- 740575: Fixarea DTS în GStreamer
- 745366: concat: Redirecționați FLUSH_START / FLUSH_STOP evenimente
- 746949: concat: adăugați proprietatea activă a tamponului
- 750027: concat: Resetați decalajul inițial de pornire la 0 după căutarea de spălare
- 750033: basetransform - permite collarea / separarea tampoanelor
- 750039: Menținerea tampoanelor cu memorie partajată în viață
- 750319: memorie: subclasele nu știu steaguri de hartă în unmap
- 750530: ptp: FreeBSD, DragonFly și alte BSD-uri nu au ifreq.ifw_hwaddr
- 750574: netclientclock: Efectuați ceasul cu un ceas de înfășurare în jurul unui ceas intern
- 750761: selectorul de intrare: gestionați selecția diferită a duratei piesei
- 750782: pipeline: Adăugați proprietăți gst_pipeline_set_latency (), getter și GObject
- 751026: basesink: gestionează corect listele de tampoane pentru proprietatea ultimului exemplu
- 751047: concat: Adăugați proprietatea de ajustare
- 751107: concat: atunci când eliberați tamponul, trimiteți corespunzător EOS.
- 751235: utils: get_compatible_pad nu respectă pe deplin capacele de filtrare
- 751420: baze: trebuie să copiați ultima listă de buffer-uri în profunzime
Ce este nou în versiunea 1.4.5:
- nucleul GStreamer:
- 736969: queue2: blocare mort atunci când buffering
- 738092: basesink: clema a raportat poziția pe direcție
- 740001: sarcină: starea rasei atunci când se întrerupe și se oprește
- Baza de plugin-uri GStreamer:
- 741420: bazine video: ar trebui să actualizeze dimensiunea în configurație după aplicarea alinierii
- 715050: adăugați tipul de tip pentru audio / x-audible
- 739544: tcp: adăugați testul și remediați scurgerea memoriei în elementele tcp
- 739840: tipărit ar trebui să recunoască Apple Core Audio Format (CAF)
- 740556: Videodecoder: nu te plânge când DTS! = PTS pe cadrele cheie
- 740675: playink: continuă redarea, resetați proprietatea mute
- 740730: rtspconnection: nu elimina sursa copilului daca sursa parentala este deja distrusa
- 740853: audiodecoder: Împingeți evenimentele în așteptare înainte de a trimite EOS.
- 740952: alsa: Corectează NetBSD
- 741045: audioratul poate pierde în anumite cazuri precizia timestampului
- 741198: playbin: scurgeri GstPads
- Plugin-uri GStreamer Bine:
- 711437: apev2mux: nu ar trebui să pună tag-uri APEv2 la începutul fișierelor WavPack
- 726194: v4l2src nu se descurcă bine atunci când o carte de captură este uneori intercalată, uneori progresivă la aceeași rezoluție
- 736397: flvdemux: comportamentul de resincronizare per-stream provoacă desincronizarea A / V
- 737603: v4l2bufferpool: setați steagurile intercalate atunci când câmpul este V4L2_FIELD_INTERLACED
- 739476: vpx: nu reușește să se construiască împotriva lui libvpx de la git
- 739722: matroskamux: Registrul de siguranță pentru filet GstMatroskamuxPad
- 739789: v4l2allocator: mesaj de eroare de remediere dacă alocatorul este deja activ
- 739791: v4l2bufferpool: pool unref atunci când v4l2_allocator_new () nu reușește
- 739792: v4l2allocator: fixați prototipul gst_v4l2_allocator_stop
- 739996: Videomixer: Creează o mulțime de cadre, dacă una din surse este live
- 740040: v4l2src: Eșuează în prezența V4L2_BUF_FLAG_ERROR
- 740392: rtspsrc: mikey base64 decodat cheie-mgmt scurgere
- 740407: limitele qtmux captează la 4096x4096
- 740633: v4l2src: RW io-mode este rupt
- 740636: v4l2src: framerate nu este întotdeauna setat pe driver
- 740671: aspectratiocrop: cultura trebuie resetată la modificarea dimensiunii video
- 740905: v4l2: încă include 1 pentru linux / videodev.h
- 741271: rtph264pay: scurgere de tampon în încărcătorul de sarcină H.264 atunci când se utilizează SPS / PPS
- 741381: rtph264pay: Condiția rasei poate provoca un accident atunci când merge de la PAUSED-> READY
- 741407: deinterlație: în query_caps returnează numai formatele acceptate dacă filtrul este intercalat
- 737579: v4l2object: setați spațiul de culori pentru dispozitivele de ieșire
- 739754: v4l2bufferpool: Ar trebui să valideze că toate amintirile pot fi inscripționate înainte de așteptarea înapoi
- Pluginurile GStreamer sunt greșite:
- 722764: rawparse: remediați SEEKING manipularea interogărilor
- 729768: mpegtsbase: Ridicați limita pentru a citi mai mulți octeți inițial pentru a găsi PCR
- 739152: gl / cacao: construiți cu GNUStep eșuează
- 740191: dvbbasesink: segfaults pe 32 biți (rpi)
- 740201: gl / cacao: nu compilează pe OSX < 10.7
- 740451: srtpdec: evenimente scurte rtp / rtcp scurgeri
- 740953: configure.ac: operatorul de comparare al testului unportabil (1)
- 741321: opusparse: fixare partajare antet esp. de ieșire codificată de libopus
- Serverul GStreamer RTSP:
- 739481: rtsp-stream: scanează decodorul srtp atunci când iese din rtpbin
Ce este nou în versiunea 1.4.4:
- Bug-urile fixate în versiunea 1.4.5:
- 737498: multiqueue: nu ia în considerare evenimentul GAP la calcularea nivelului curent
- 737794: multiqueue: blocare în cazul în care depășește coada cu evenimente seriale
- 737999: sistemclock: problema de stare de intrare în mai multe fire
- 738198: multiqueue: nu trezește fluxuri ne-legate pe EOS
Ce este nou în versiunea 1.4.1:
- Seria de lansare 1.4 adaugă noi caracteristici din seria 1.2 și face parte din seria de lansări API și ABI-stable 1.x a cadrului multimedia GStreamer care conține noi caracteristici. Rapoartele de bug-uri 1.4.x conțin doar bug-uri importante, comparativ cu 1.4.0.
Ce este nou în versiunea 1.4 RC2:
- Echipa GStreamer are plăcerea de a anunța cel de-al doilea candidat de lansare a seriei de lansări stabile 1.4. Seria de lansări 1.4 adaugă noi caracteristici pe seria 1.0 și 1.2 și face parte din seria de lansări API și ABI stabilă 1.x a cadrului multimedia GStreamer.
- Acest candidat la lansare va fi urmat, în curând, de versiunea stabilă de 1.4.0, dacă nu vor fi detectate regresii sau probleme mai mari și s-au realizat suficiente teste ale candidatului de lansare. Noul API care a fost adăugat în seria de lansare 1.3 nu este de așteptat să se mai schimbe în acest moment.
Ce este nou în versiunea 1.4 RC1:
- API nou:
- GstMessageType a fost adăugat în GST_MESSAGE_EXTENDED. Toate tipurile înainte de acest lucru pot fi folosite împreună ca tip de steaguri ca mai înainte, dar din acel mesaj, tipurile sunt doar contorizate incremental. Acest lucru era necesar pentru a putea adăuga mai multe tipuri de mesaje. În 2.0 GstMessageType va deveni un enum și nu un tip de steaguri.
- GstDeviceMonitor pentru detectarea dispozitivelor, de ex. pentru a afișa toate dispozitivele disponibile pentru captarea audio sau video. Acesta este înlocuirea pentru GstPropertyProbe de la 0,10.
- Evenimentele acumulează offsetul timpului de funcționare acum când călătoriți prin plăcuțe, așa cum este setat de funcția gst_pad_set_offset (). Acest lucru permite compensarea acestei situații în cazul evenimentului QOS.
- GstBuffer are un nou flag "tag-memory" care este setat automat atunci când memoria este adăugată sau eliminată la un buffer. Acest lucru permite grupurilor de rezervoare să detecteze dacă pot recicla un tampon sau ar trebui să le reseta mai întâi.
- GstToc are un nou API pentru a marca GstTocEntries ca bucle.
- A fost definită o eroare de resursă neautorizată pentru a notifica aplicațiile care au reușit să acceseze resursa din cauza lipsei autorizației și pentru a distinge acest caz de alții. Această modificare este de fapt deja în 1.2.4.
- GstPad are un nou flag "accept-intersectează", care va lăsa implicit ACCEPT_CAPS manipulatorul de interogare să facă o intersecție în loc de verificarea subsetului. Acest lucru este interesant pentru elementele parser care pot gestiona capacele incomplete.
- GstCollectPads are suport pentru spalare și un handler implicit pentru evenimentele SEEK.
- Un nou obiect helper GstFlowAggregator care simplifică manipularea retururilor de flux în elementele cu multiple tampoane sursă. În plus, GstPad stochează întotdeauna ultima întoarcere a fluxului și oferă un API pentru a-l recupera.
- GstSegment are un API nou pentru a compensa timpul de funcționare cu o anumită valoare și acesta este folosit în GstPad pentru a permite compensări pozitive și negative în gst_pad_set_offset () în toate situațiile.
- Suportul pentru h265 / HEVC și VP8 a fost adăugat în biblioteca codec utils și codec parser și a fost integrat în diverse elemente.
- A fost adăugat API pentru ajustarea validării TLS a conexiunii RTSP.
- Biblioteca RTSP și SDP are acum suportul MIKEY (RFC 3830) și nu există API pentru a face distincția între diferitele profiluri RTSP.
- API pentru a accesa informațiile despre timp și statisticile RTP.
- Suportul pentru fluxurile auxiliare a fost adăugat la rtpbin.
- A fost adăugată asistența pentru formatele video în format tiglă, brut.
- GstVideoDecoder și GstAudioDecoder au API pentru a ajuta la agregarea evenimentelor tag-urilor și la îmbinarea consecventă a etichetelor personalizate în ele.
- GstBufferPool are acum suport pentru spălare.
- playbin / playink are suport pentru filtrele audio și video oferite de aplicație.
- GstDiscoverer are un API nou și simplificat pentru a obține detalii despre pluginurile lipsă și despre informațiile care trebuie trimise la programul de instalare a pluginului.
- Biblioteca GL a fost îmbinată de la gst-plugins-gl la gst-plugins-bad, oferind o infrastructură generică pentru manipularea GL în interiorul conductelor GStreamer și un plugin cu unele elemente care le utilizează, în special un chiuveta video. Platformele acceptate în prezent sunt Android, Cocoa (OS X), DispManX (Raspberry Pi), EAGL (iOS), WGL (Windows) și generice X11, platformele Wayland și EGL. Acest lucru înlocuiește eglglessink și, de asemenea, ar trebui să înlocuiască osxvideosink.
- Noua clasă de bază GstAggregator în gst-plugins-bad. Acest lucru ar trebui să înlocuiască GstCollectPads în viitor și să remedieze deficiențele cunoscute de mult în API-ul său. Împreună cu clasa de bază sunt deja furnizate unele elemente, ca un mixer video (compozitor).
- Modificări majore:
- Pluguri și elemente noi:
- elementul v4l2videodec pentru accesarea codecurilor hardware pe platforme care le fac accesibile prin V4L2, de ex. Samsung Exynos. Aceasta vine împreună cu refactorizarea majoră a elementelor existente V4L2 și a infrastructurii corespunzătoare. Elementul v4l2videodec înlocuiește elementul mfcdec.
- Un nou element downloadbuffer care înlocuiește caracteristica de tampon de descărcare a queue2. În comparație cu codul queue2 este mult mai simplu și numai pentru acest caz de utilizare unică. O caracteristică nouă de remarcat este faptul că descărcarea decalajelor în părțile de flux descărcate deja când nu se mai poate descărca nimic altceva. Acest lucru este folosit acum de playbin când descărcarea buffering-ului este activată.
- Elementele rtpstreampay și rtpstreamdepay pentru transmiterea pachetelor RTP pe un flux API (de exemplu, TCP) în conformitate cu RFC 4571.
- elementele rtprtx pentru implementarea standard a retransmisiilor integrate în pluginul rtpmanager.
- Elementul audiomixer care combină mai multe fluxuri audio într-unul singur, păstrând în același timp sincronizarea. Aceasta este planificată să devină înlocuirea elementului adder.
- pluginul OpenNI2 pentru camere 3D, cum ar fi camera Kinect.
- Plugin OpenEXR pentru decodarea imaginilor EXR de înaltă dinamică.
- curlsshsink și curlsftpsink pentru a scrie fișiere prin SSH / SFTP.
- pluginurile videoignal, ivfparse și sndfile portate de la 0,10.
- avfvideosrc, vtdec și alte elemente au fost portate de la 0,10 și sunt disponibile acum pe OS X și iOS.
- Alte modificări:
- gst-libav utilizează acum libav 10.1 și a obținut suport pentru H265 / HEVC.
- Suportul pentru codecurile hardware și tipurile de memorie specială a fost îmbunătățit cu ajutorul unor corecții de bug-uri și adăugări de caracteristici în diferite pluginuri și clase de bază.
- Diverse bugfix-uri și îmbunătățiri la tamponarea în coada 2 și în elementele multiple.
- dvbsrc acceptă mai multe mecanisme de livrare și alte caracteristici acum, inclusiv suport DVB S2 și T2.
- Biblioteca MPEGTS are suport pentru mai multe descriptori.
- Îmbunătățiri majore pentru tsdemux și tsparse, în special pentru timpul și căutarea unor conexiuni.
- Souphttpsrc are acum suport pentru conexiuni de tip "keep-alive", compresie, număr configurabil de retrimiteri și configurare pentru validarea certificatelor SSL.
- hlsdemux a suferit o refactorizare majoră și funcționează mai fiabil acum și suportă mai multe caracteristici HLS, cum ar fi modurile truc. De asemenea, fragmentele sunt împinse în aval în timp ce sunt descărcate acum, în loc să aștepte ca fiecare fragment să se termine.
- dashdemux și mssdemux acum împing fragmente în aval în timp ce sunt descărcate în loc să aștepte ca fiecare fragment să se termine.
- Videoclipul se poate roti automat în funcție de eticheta de orientare.
- openjpeg acceptă API-ul OpenJPEG2.
- waylandsink a fost refactat și ar trebui să fie mai util acum. Acesta include, de asemenea, o mică bibliotecă care, cel mai probabil, va fi eliminată în viitor și va avea ca rezultat extinderi la interfața GstVideoOverlay.
- serverul gst-rtsp acceptă acum SRTP și MIKEY.
- encoderele gst-libav negociază acum orice setări de profil / nivel cu capace în aval.
- O mulțime de remedii pentru avertismentele de acoperire în întregime.
- Îmbunătățiri de performanță legate de negociere.
- 800+ rapoarte de bug-uri fixe și multe alte corecții de erori și alte îmbunătățiri de pretutindeni, care nu au avut un raport de eroare.
- Lucruri de urmărit:
- Elementul de ecuator a fost îndepărtat și înlocuit cu elementul glimagesink.
- Elementul mfcdec a fost eliminat și înlocuit cu v4l2videodec.
- osxvideosink este disponibil numai în OS X 10.6 sau mai nou.
- Pe Android, spațiul de nume al clasei Java generată automat pentru inițializarea GStreamer sa schimbat de la com.gstreamer la org.freedesktop.gstreamer pentru a preveni poluarea spațiului de nume.
- În iOS trebuie să vă actualizați gst_ios_init.h și gst_ios_init.m în proiectele dvs. din cele incluse în binare dacă ați folosit modulul GnuTLS GIO înainte. Mecanismul de încărcare a fost ușor modificat.
Ce este nou în versiunea 1.2.4:
- nucleul GStreamer:
- 724373: Queue2 își trunchiază fișierul temporal atunci când conducta este întreruptă
- 725517: docs: Fixați greșelile și eliminați adnotările necunoscute
- 725809: ghostpad: un accident rar din cauza numărului de referință lipsă pe tamponul țintă
- 727253: parse: fișierul generat de Bison inclus în comenzile de lansare cauzează erori de compilare
- 727883: baseparse: Pierdere de memorie a cadrelor de coadă
- Baza de plugin-uri GStreamer:
- 693263: tipare: video MPEG-2 ES detectat ca H.263
- 683504: playink: blocare atunci când se dezactivează subtitrările și dezactivarea suboptimală a subtitrărilor
- 700770: tipare de tip: fișier mp3 incorect detectat ca videoclip h263
- 723597: Evenimentul tagdemux: Seek în GST_FORMAT_TIME sunt convertite în BYTES la începutul
- 724633: oggdemux: ignoră ultima pagină în modul push
- 724720: conexiune rts: nu este posibilă deconectarea / reconectarea conexiunii citite în modul tunel
- 725313: rtspconnection: callback închis () nu este apelat în mod tunelat
- 725644: tipare de tip: fișierul mp3 este greșit detectat ca H.263
- 726642: rtspconnection: scurgeri de memorie minore în tratarea erorilor
- 727025: adder: modificați logica pentru a verifica dacă eos trebuie trimis.
- Pluginurile GStreamer sunt bune:
- 725104: qtdemux: redarea inversă și eșecul de comutare a fluxului video
- 722185: souphttpsrc: racy " serverul nu acceptă căutarea " Eroare
- 724619: crash la citirea proprietății nume de dispozitiv a impulsului
- 725124: rtspsrc: Fixarea blocajului atunci când crearea sarcinilor nu are succes
- 725712: rtpsession: Crash atunci când RTCP FIR a primit cu SSRC necunoscut
- 725860: v4l2src: Remediați folosind v4l2src cu dispozitivul de captare video Hauppauge HDPVR
- 726777: rtpjpegpay: dimensiunea încărcării utile nu este corect calculată
- 728017: Evenimentul [regresie] eos nu a putut fi trimis de la gstrtpjitterbuffer.
- 728041: rtph264depay: marchează toate tampoanele de ieșire ca unități delta când se emite un format avc
- 724638: aacparse: lipsește rezistența atunci când nu se găsește un cadru audio
- 727329: check: souphttpsrc: nume de tip necunoscut "SoupStatus"
- Pluginurile GStreamer sunt greșite:
- 724013: Nu trasează hardcode / usr / share / sounds / sf2 în fluiddec
- 725137: hlsdemux: nu reușește să calculeze adresa URL a playlistului media dacă există un parametru de interogare
- 725140: hlsdemux: nu reușește să analizeze în mod corect CODECS și REZOLUȚIE
- Pluginuri libere pentru GStreamer:
- 727779: avdec_h264, matroskademux: accident în timpul căutării (regresia 1.2)
Ce este nou în versiunea 1.2.2:
- caracteristici din partea de sus a seriei 1.0 și face parte din seria de lansări API și ABI-stable 1.x a cadrului multimedia GStreamer care conține noi caracteristici.
Ce este nou în versiunea 1.2.0:
- API nou:
- negocierea / partajarea / anunțarea GstContext pentru a împărtăși un context generic între elemente, de ex. un mâner de afișare
- Metoda de conversie a încărcării textului GL pentru permiterea convertirii diferitelor tipuri de tampoane într-o textura OpenGL
- GstCapsFeatures ca extensie la GstCaps pentru a permite negocierea cerințelor specifice de memorie sau meta între elementele
- Steaguri GstMemory pentru memorie contiguă și non-mapabilă
- Evenimentul de pornire în flux are în prezent opțiuni suplimentare, de ex. pentru semnalizarea fluxurilor rare
- Stream-start-ul chiar are un câmp opțional de grup-id acum pentru a semnala toate fluxurile care ar trebui să fie redate împreună
- Biblioteca alocatorilor în gst-plugins-base, momentan numai cu suport generic de memorie dmabuf
- biblioteca insertbin pentru o manipulare mai ușoară a conductelor conectate în mod dinamic (în -bad pentru moment)
- Biblioteca de ajutor EGL (in-bad pentru moment)
- Biblioteca de structuri de date MPEG-TS (in-bad pentru moment)
- Noua GstVideoRegionOfInterestMeta pentru a descrie o regiune de interes pentru cadrele video.
- GstVideoDecoder / Encoder are noul :: flush () vfunc pentru a înlocui vfunc nedefinit :: reset ().
- Interogarea URI permite interogarea URI-ului redirecționat acum.
- Modificări majore:
- Instrument nou: gst-play-1.0 în gst-plugins-base pentru testarea redării de bază pe linia de comandă.
- Pluginuri noi:
- mssdemux pentru Microsoft Smooth Streaming
- dashdemux pentru protocolul de streaming adaptabil DASH
- bluez pentru interacțiunea cu dispozitivele Bluetooth
- openjpeg pentru decodificarea și codarea JPEG2000
- daala pentru decodarea și codarea experimentală Daala
- pluginul vpx are suport experimental VP9 pentru decodare și codare
- plugin webp pentru decodarea WebP (codare care urmează să fie adăugată ulterior)
- Diverse altele: yadif, srtp, sbc, fluidsynth, midparse, mfc, ivtv, accuraterip și audiofxbad
- Pluginuri mutate:
- dtmf, vp8rtp, scaletempo și rtpmux sunt în gst-plugins-bine acum
- Video:
- Modificarea manuală a videoclipurilor intercalate în convertoare, cum ar fi videoclipurile și videoconvertarea (de exemplu, dimensiunea ambelor câmpuri în mod independent)
- Videoconvertul va încerca mai mult să reducă pierderile de calitate atunci când convertirea este necesară
- API-urile experimentale GstSurfaceConverter, GstSurfaceMeta și GstVideoContext din biblioteca libgstbasevideo-1.0 (în mod confuzie-name) din gst-plugins-bad au fost eliminate și înlocuite cu API noi în GStreamer Core și gst-plugins-base ). Deoarece a fost tot ce a mai rămas în această bibliotecă, întreaga bibliotecă experimentală libgstbasevideo-1.0 a fost eliminată din gst-plugins-bad
- Conversia de sincronizare a cromului și de conversie a cromului este mai bine gestionată în videoconversie, iar suportul pentru videoclipul intercalat a fost îmbunătățit.
- Noi modele de scripeți și spițe în videotestrele
- Videomixer poate accepta acum diferite formate video pe sinkpads și convertește la un format comun în timpul amestecării
- Audio:
- audioconvert va încerca mai mult pentru a minimiza pierderile de calitate atunci când convertirea este necesară
- adder permite acum mutarea / dezmembrarea fluxurilor de intrare și, de asemenea, volumul fluxului de intrare
- Elementele pulseaudio pot comuta între dispozitive în timpul redării acum
- aacparse poate converti între ADTS ← -> RAW
- Modificări specifice platformei:
- Capacele, evenimentele etc. sunt acum tipărite în jurnalele de depanare GStreamer cu conținutul lor în loc de adresa pointerului chiar și pe platformele non-glibc (de exemplu, Windows, OSX, Android).
- Elementele rețelei (UDP / TCP) funcționează acum mai bine cu platformele, unde prizele IPv6 nu pot gestiona IPv4 (de exemplu Windows)
- Linux / BSD: v4l2 a avut multe îmbunătățiri și curățări
- Alte modificări:
- gst-libav utilizează acum libav 9
- Legarea statică a pluginurilor este acceptată acum (și în 1.0.7)
- rtspsrc: adăugați suport pentru NetClientClock: când serverul sugerează un GstNetTimeProvider în SDP, configurați un GstNetClientClock care scade la ceasul la distanță și sugerați acest ceas în provided_clock. Simplifică redarea sincronizată a unei resurse dintr-un server RTSP. gst-rtsp-server suportă acum adăugarea acestui lucru la SDP și poate furniza un ceas de rețea
- RTP retransmisie / suport NACK și îmbunătățiri mari ale RTP jitterbuffer
- Suport SRTP și DTLS
- Modifică multe elemente și elemente de bază pentru a utiliza ordinea corectă a evenimentului lipicioasă și, de asemenea, nu pierde niciun eveniment important de lipire în timpul spălării
- 1000 rapoarte de erori fixe și multe alte corecții de erori și alte îmbunătățiri de pretutindeni, care nu au avut un raport de eroare
- Lucruri de urmărit:
- Antetul unic include pentru toate bibliotecile, de ex. #include - acest lucru a fost necesar pentru unele legări.
- Verificarea subsetului capacelor mai stricte (corecte) în anumite cazuri în care acest lucru nu a fost corect înainte. Capacele nu vor mai fi întotdeauna un subset compatibil al altui set de capace, dacă în capacele subsetului lipsesc câteva câmpuri care au capacele superset. Acest lucru ar putea conduce la erori ne-negociate, dacă capacele sunt incomplete acum. Cu toate acestea, aceasta previne, de asemenea, posibila corupție a datelor cauzată de datele de conducte formatate într-un mod incompatibil / neașteptat în unele elemente. Verificați capacele dvs. h264 pentru câmpurile de formatare și aliniere în flux și capacele AAC pentru câmpul format în flux. Această modificare va fi inclusă și în versiunea 1.0.8 stabilă.
- În anumite locuri, verificarea mai strictă a evenimentelor care lipsesc și ordinea corectă a evenimentului lipicioasă (flux-start, capace, segment); acest lucru nu este activat în edițiile stabile în mod prestabilit, însă este posibil să primiți avertismente atunci când utilizați constructori git, versiuni de dezvoltare sau când compilați cu -UG_DISABLE_ASSERT în CFLAGS
- x264enc afișează acum datele în fluxul byte în mod implicit, în cazul în care în aval există vreo capace (de exemplu, appsink fără capace set, fileink, udpsink, tcpserversink etc.)
- Mesajele de postări MPEG TS demuxer conțin PMT, PAT etc. într-un alt format acum. Acest nou format utilizează structurile de date din noua bibliotecă MPEGTS
- API-ul GstContext sa schimbat între 1.1.4 și 1.1.90
Pluginurile
Ce este nou în versiunea 1.1.4:
- API nou:
- negocierea / partajarea / anunțarea GstContext pentru a împărtăși un context generic între elemente, de ex. un mâner de afișare
- Metoda de conversie a încărcării textului GL pentru permiterea convertirii diferitelor tipuri de tampoane într-o textura OpenGL
- GstCapsFeatures ca extensie la GstCaps pentru a permite negocierea cerințelor specifice de memorie sau meta între elementele
- Steaguri GstMemory pentru memorie contiguă și non-mapabilă
- Evenimentul de pornire în flux are în prezent opțiuni suplimentare, de ex. pentru semnalizarea fluxurilor rare
- Stream-start-ul chiar are un câmp opțional de grup-id acum pentru a semnala toate fluxurile care ar trebui să fie redate împreună
- Biblioteca alocatorilor în gst-plugins-base, momentan numai cu suport generic de memorie dmabuf
- biblioteca insertbin pentru o manipulare mai ușoară a conductelor conectate în mod dinamic (în -bad pentru moment)
- Biblioteca de ajutor EGL (in-bad pentru moment)
- Biblioteca de structuri de date MPEG-TS (in-bad pentru moment)
- Noua GstVideoRegionOfInterestMeta pentru a descrie o regiune de interes pentru cadrele video.
- GstVideoDecoder / Encoder are noul :: flush () vfunc pentru a înlocui vfunc nedefinit :: reset ().
- Interogarea URI permite interogarea URI-ului redirecționat acum.
- Modificări majore:
- Instrument nou: gst-play-1.0 în gst-plugins-base pentru testarea redării de bază pe linia de comandă.
- Pluginuri noi:
- mssdemux pentru Microsoft Smooth Streaming
- dashdemux pentru protocolul de streaming adaptabil DASH
- bluez pentru interacțiunea cu dispozitivele Bluetooth
- openjpeg pentru decodificarea și codarea JPEG2000
- daala pentru decodarea și codarea experimentală Daala
- vpx are suport experimental de decodare și codare V9
- plugin webp pentru decodarea WebP (codare care urmează să fie adăugată ulterior)
- Diverse altele: yadif, srtp, sbc, fluidsynth, midparse, mfc, ivtv, accuraterip și audiofxbad
- Pluginuri mutate:
- dtmf, vp8rtp, scaletempo și rtpmux sunt în gst-plugins-bine acum
- Video:
- Modificarea manuală a videoclipurilor intercalate în convertoare, cum ar fi videoclipurile și videoconvertarea (de exemplu, dimensiunea ambelor câmpuri în mod independent)
- Videoconvertul va încerca mai mult să reducă pierderile de calitate atunci când convertirea este necesară
- API-urile experimentale GstSurfaceConverter, GstSurfaceMeta și GstVideoContext din biblioteca libgstbasevideo-1.0 (în mod confuzie-name) din gst-plugins-bad au fost eliminate și înlocuite cu API noi în GStreamer Core și gst-plugins-base ). Deoarece a fost tot ce a mai rămas în această bibliotecă, întreaga bibliotecă experimentală libgstbasevideo-1.0 a fost eliminată din gst-plugins-bad.
- Conversia de sincronizare a cromului și conversia locației este mai bine gestionată în cadrul videoconvertului
- Noi modele de scripeți și spițe în videotestrele
- Audio:
- adder permite acum mutarea / dezmembrarea fluxurilor de intrare și, de asemenea, volumul fluxului de intrare
- Elementele pulseaudio pot comuta între dispozitive în timpul redării acum
- aacparse poate converti între ADTS ← -> RAW
- Modificări specifice platformei:
- Capacele, evenimentele etc. sunt acum tipărite în jurnalele de depanare GStreamer cu conținutul lor în loc de adresa pointerului chiar și pe platformele non-glibc (de exemplu, Windows, OSX, Android).
- Elementele rețelei (UDP / TCP) funcționează acum mai bine cu platformele, unde prizele IPv6 nu pot gestiona IPv4 (de exemplu Windows)
- Windows: d3dvideosink oferă un pool buffer pentru elementele din amonte
- Linux / BSD: v4l2 a avut multe îmbunătățiri și curățări
- Alte modificări:
- gst-libav utilizează acum libav 9
- Legarea statică a pluginurilor este acceptată acum (și în 1.0.7)
- rtspsrc: adăugați suport pentru NetClientClock: când serverul sugerează un GstNetTimeProvider în SDP, configurați un GstNetClientClock care scade la ceasul la distanță și sugerați acest ceas în provided_clock. Simplifică redarea sincronizată a unei resurse dintr-un server RTSP. gst-rtsp-server suportă acum adăugarea acestui lucru la SDP și poate furniza un ceas de rețea
- RTP retransmisie / suport NACK și îmbunătățiri mari ale RTP jitterbuffer
- Suport SRTP și DTLS
- Modifică multe elemente și elemente de bază pentru a utiliza ordinea corectă a evenimentului lipicioasă și, de asemenea, nu pierde niciun eveniment important de lipire în timpul spălării
- 1000 rapoarte de erori fixe și multe alte corecții de erori și alte îmbunătățiri de pretutindeni, care nu au avut un raport de eroare
- Lucruri de urmărit:
- Antetul unic include pentru toate bibliotecile, de ex. #include - acest lucru a fost necesar pentru unele legări.
- Verificarea subsetului capacelor mai stricte (corecte) în anumite cazuri în care acest lucru nu a fost corect înainte. Capacele nu vor mai fi întotdeauna un subset compatibil al altui set de capace, dacă în capacele subsetului lipsesc câteva câmpuri care au capacele superset. Acest lucru ar putea conduce la erori ne-negociate, dacă capacele sunt incomplete acum. Cu toate acestea, aceasta previne, de asemenea, posibila corupție a datelor cauzată de datele de conducte formatate într-un mod incompatibil / neașteptat în unele elemente. Verificați capacele dvs. h264 pentru câmpurile de formatare și aliniere în flux și capacele AAC pentru câmpul format în flux. Această modificare va fi inclusă și în versiunea 1.0.8 stabilă.
- În anumite locuri, verificarea mai strictă a evenimentelor care lipsesc și ordinea corectă a evenimentului lipicioasă (flux-start, capace, segment); acest lucru nu este activat în edițiile stabile în mod prestabilit, însă este posibil să primiți avertismente atunci când utilizați constructori git, versiuni de dezvoltare sau când compilați cu -UG_DISABLE_ASSERT în CFLAGS
- x264enc afișează acum datele în fluxul byte în mod implicit, în cazul în care în aval există vreo capace (de exemplu, appsink fără capace set, fileink, udpsink, tcpserversink etc.)
pluginul
Pluginurile
Comentariile nu a fost găsit