GStreamer è una libreria open source, un complesso software che funge da framework multimediale per numerosi sistemi operativi GNU / Linux, nonché Android, OpenBSD, Mac OS X, Microsoft Windows, e sistemi operativi Symbian.
Caratteristiche a colpo d'occhio
Le funzionalità principali includono una libreria di base completa, un'architettura di plugin intelligente, una copertura estesa delle tecnologie multimediali e numerosi strumenti di sviluppo, così puoi facilmente aggiungere il supporto per GStreamer nelle tue applicazioni.
È il principale backend multimediale per una vasta gamma di progetti open source, che vanno in onda da applicazioni di riproduzione audio e video, come Totem (Video) dall'ambiente desktop GNOME e complessi editor di video e audio.
Inoltre, il software offre prestazioni molto elevate e bassa latenza, grazie alla sua tecnologia di trasmissione dati estremamente leggera e alla sincronizzazione inter-stream (audio / video) globale tramite clocking.
Comprende più pacchetti di codec
Il progetto è composto da diversi pacchetti, noti anche come pacchetti di codice, che possono essere facilmente installati su qualsiasi distribuzione GNU / Linux dai loro repository software predefiniti tutti in una volta o separatamente. Sono i seguenti: GStreamer Plugin Base, GStreamer Plugin Buono, GStreamer Plugin Bad e GStreamer Plugin Ugly.
GStreamer è una libreria di base compatta che consente costruzioni di pipline casuali grazie alla sua struttura basata su grafici, basata sulla libreria di modelli di oggetti di GLib 2.0, che può essere utilizzata per la progettazione e l'ereditarietà orientata agli oggetti.
Utilizza la tecnologia QoS (Quality of Service)
Per garantire la migliore qualità audio e video con un carico elevato della CPU, il progetto utilizza la tecnologia QoS (Quality of Service). Inoltre, fornisce una costruzione trasparente e banale di pipeline multi-thread.
Grazie alla sua API semplice, stabile e pulita (Application Programming Interface), gli sviluppatori possono facilmente integrarlo nelle loro applicazioni, così come creare plugin che estenderanno le sue funzionalità predefinite. Fornisce anche un sistema di debug completo.
Linea di fondo
In conclusione, GStreamer è un framework multimediale molto potente e molto apprezzato per l'ecosistema open source, fornendo agli utenti GNU / Linux una vasta gamma di codec audio e video per la riproduzione e l'elaborazione dei contenuti multimediali.
< forte> Novità di in questa versione:
- Versione bugfix.
Novità nella versione 1.14.1:
- Versione bugfix.
Novità nella versione:
- Questa versione contiene solo correzioni di bug e dovrebbe essere sicuro di aggiornare da 1.8.0.
Novità nella versione 1.8.2:
- Questa versione contiene solo correzioni di errori e dovrebbe essere sicura per aggiornare da 1.8.0.
Novità in nella versione 1.8.0:
- Decodifica video a zero copie con accelerazione hardware su Android
- Nuova sorgente di acquisizione video per Android che utilizza l'API android.hardware.Camera
- Supporto per la riproduzione inversa di Windows Media (ASF / WMV / WMA)
- Il nuovo sistema di traccia fornisce il supporto per strumenti di debug più sofisticati
- Nuova comoda API di riproduzione di alto livello di GstPlayer
- Supporto iniziale per la nuova API Vulkan, vedi il post del blog di Matthew Waters per ulteriori dettagli
- Supporto codec audio Opus migliorato: supporto per più di due canali; Demuxer / muxer MPEG-TS ora può gestire Opus; codifica / decodifica / trasmissione del campione accurata con Ogg, Matroska, ISOBMFF (Quicktime / MP4) e MPEG-TS come contenitore; nuove funzioni di utilità codec per la gestione di intestazioni e tappi Opus nella libreria pbutils. Anche gli elementi encoder / decodificatore Opus sono stati spostati su gst-plugins-base (da -bad) e l'opus depotloader / payloader RTP su -good.
- Il modulo VAAPI di GStreamer ora è stato rilasciato e gestito come parte del progetto GStreamer
- Supporto proxy asset nei servizi di modifica di GStreamer
Novità in nella versione 1.6.3:
- Corregge la regressione nella libreria GL che ha reso glimagesink unsable su Android
- Intero aritmetico di overflow nell'elemento queue2 che potrebbe interrompere il buffering o causare arresti anomali a causa di un dereferenziamento del puntatore NULL
- Correzione del crash nel tipo di carattere AAC / ADTS causato dalla lettura di più memoria di quella disponibile
- Smetti di ignorare gli errori dell'encoder negli encoder VP8 / VP9
- Deprecate GstVideoEncoder GST_VIDEO_ENCODER_FLOW_DROPPED. È ridondante e non è mai stato effettivamente implementato
- Assicurati di memorizzare le informazioni video corrette in GstVideoBufferPool
- Correzione di maiuscole in rtspsrc quando si esegue SRTP su TCP interlacciato ( )
- Correzione del crash nel parser di pcap su pacchetti di dimensioni 0
- Cancella il flag EOS in appsrc per consentire il riutilizzo dopo EOS e lo svuotamento
- Ignora i flussi di flushing in streamsynchronizer durante gli switch di streaming per risolvere i problemi causati da questo in gst-editing-services
- Ignora i tag e altri metadati nei file WAV dopo il & quot; data & quot; pezzo nella modalità PUSH per impedire che vengano interpretati come audio
- Utilizza correttamente la colorimetria in v4l2 solo per i formati di colore YUV
- Imposta i bit riservati in MPEG TS muxer su 1s
- Correggere il calcolo delle lunghezze dei frame SBC
- Corretto l'output del depayloader RTP JPEG2000 per avere un frame per buffer e crash nel decodificatore OpenJPEG su frame incompleti
- Aggiorna l'istantanea ffmpeg in gst-libav a 2.8.5
- La perdita di memoria si risolve in scaletempo, il depayloader RTP video non elaborato e nel playink relativo ai filtri audio / video
- Correzioni per la gestione degli errori nel plug-in audio OSX
- Varie correzioni e aggiunte di annotazioni di introspezione di gobject
- Correzioni di avvertimenti del compilatore per l'ultimo compilatore clang
Novità nella versione 1.6.1:
- I crash negli encoder gst-libav sono stati corretti
- Altri stream di test DASH-IF funzionano ora
- I live DASH, HLS e MS SmoothStreaming funzionano in modo più affidabile e altre soluzioni per i protocolli di streaming adattativi
- La riproduzione inversa funziona con scaletempo per mantenere l'intonazione audio
- Lo stream-time corretto viene segnalato per la percentuale applicata negativa
- La convalida del pacchetto SRTP durante la decodifica non rifiuta più i pacchetti validi
- Correzioni per l'audioaggregator e l'aggregatore per iniziare a produrre l'output al momento giusto e ad es. non emettendo molto silenzio all'inizio
- l'istantanea ffmpeg interna di gst-libav è stata aggiornata a 2.8.1
- cerbero ha il supporto per Mac OS X 10.11 (El Capitan)
- Sono state risolte varie perdite di memoria, tra cui maggiori perdite in playbin, playink e decodebin
- Varie correzioni alle annotazioni GObject-Introspection per i collegamenti
- e molti, molti altri
Novità in nella versione 1.6.0:
- Supporto video 3D stereoscopico e multivista li>
- API modalità trucco per fotogramma chiave solo riproduzione veloce avanti / indietro veloce ecc.
- Migliorato il DTS (decoding timestamp) vs. PTS (presentation timestamp) per gestire l'account DTS negativo
- Nuova API GstVideoConverter per una conversione più ottimizzata e più corretta dei frame video raw tra tutti i formati supportati, con riscalatura
- v4l2src ora supporta la rinegoziazione
- v4l2transform ora può eseguire il ridimensionamento
- L'elemento V4L2 ora segnala correttamente Colorimetria
- Registrazione più semplice di MP4, Matroska, Ogg, MPEG-TS: nuovi miglioramenti splitmuxsink e multifilesink
- Supporto di segnalazione di protezione dei contenuti API e Common Encryption (CENC) per DASH / MP4
- Molti miglioramenti dello streaming adattivo (DASH, HLS e MSS)
- Nuovi clock client di rete PTP e NTP e stabilità del tracciamento dell'orologio remoto migliore
- Sovrapposizione di sottotitoli di testo di alta qualità con risoluzione dello schermo con glimagesink o gtkglsink
- Supporto RECORD per il server RTSP di GStreamer
- Ritrasmissione (RTX) supporto in server RTSP e client
- Il supporto RTSP alla ricerca in client e server è stato corretto
- Miglioramenti della programmazione RTCP e supporto RTCP di dimensioni ridotte
- MP4 / MOV muxer ha acquisito un nuovo & quot; robusto & quot; modalità operativa che tenta di mantenere il file di output sempre in uno stato valido
- Il supporto per il missaggio live in aggregator, audiomixer e compositore è stato migliorato molto
- compositore ora supporta anche il ridimensionamento immediato degli stream di input
- Nuovo elemento audiointerleave con sincronizzazione degli input corretta e supporto per l'input live
- Blackmagic Design DeckLink è stato riscritto da zero; Supporto 2k / 4k; rilevamento della modalità
- Supporto dei metadati KLV in RTP e MPEG-TS
- codificatore video H.265 (x265), decodificatori (libav, libde265) e payloader e depayloader RTP
- Nuovo plug-in DTLS e supporto SRTP / DTLS
- Supporto OpenGL3, più contesti e propagazione del contesto, video 3D, separazione trasferimento / conversione, sottotitoli blending
- Nuovo sink video QML basato su OpenGL, sink video Gtk GL, coreAnimation CAOpenGLLayerSink sink video
- gst-libav passa a ffmpeg come libav-provider, ottiene il supporto per video 3D / multivista, modalità trucco e codec CAVS
- API GstHarness per i test delle unità
- gst-editing-services ha un'interfaccia completamente nuova per ges-launch-1.0, un migliore supporto per la miscelazione e l'integrazione in gst-validate
- gnonlin è stato deprecato a favore di nle (Non Linear Engine) in gst-editing-services
- gst-validate ha un nuovo sistema di plugin, un'ampia suite di test predefinita, supporto per le esecuzioni di test simultanee e il supporto di valgrind
- cerbero build tool per pacchetti binari SDK ottiene un nuovo comando 'bundle-source'
- Vari miglioramenti al supporto della piattaforma Android, iOS, OS X e Windows
Novità nella versione 1.5.2:
- 740502: aggiungi la proprietà assoluta a GstDirectControlBinding
- 740575: correzione DTS in GStreamer
- 745366: concat: eventi FLUSH_START / FLUSH_STOP in avanti
- 746949: concat: aggiungi la proprietà pad attiva
- 750027: concat: ripristina l'offset di inizio interno su 0 dopo la ricerca di flush
- 750033: basetransform - consente la fascicolazione / separazione dei buffer
- 750039: conservazione dei buffer con memoria condivisa
- 750319: memoria: le sottoclassi non conoscono i flag di mappa in unmap
- 750530: ptp: FreeBSD, DragonFly e altri BSD non hanno ifreq.ifw_hwaddr
- 750574: netclientclock: crea l'orologio con un orologio del wrapper attorno a un orologio interno
- 750761: inputelector: gestisce la selezione della traccia di durata diversa
- 750782: pipeline: aggiungi gst_pipeline_set_latency (), getter e proprietà GObject
- 751026: basesink: gestisce correttamente gli elenchi di buffer per la proprietà last-sample
- 751047: concat: aggiungi la proprietà adjust-base
- 751107: concat: quando si rilascia il pad, inviare EOS appropriatamente.
- 751235: utils: get_compatible_pad non rispetta completamente i filtri
- 751420: basesink: è necessario copiare in profondità l'ultimo elenco di buffer in drain
Novità in nella versione 1.4.5:
- Core di GStreamer:
- 736969: queue2: dead lock quando si esegue il buffering
- 738092: basesink: posizione segnalata sul morsetto in base alla direzione
- 740001: task: race condition quando si interrompe e si arresta li>
- Base dei plugin di GStreamer:
- 741420: pool video: dovrebbe aggiornare le dimensioni nella configurazione dopo aver applicato l'allineamento
- 715050: aggiungi il mirino per audio / x-udibile
- 739544: tcp: aggiungi test e correggi perdite di memoria negli elementi tcp
- 739840: typefind dovrebbe riconoscere Apple Core Audio Format (CAF)
- 740556: videodecoder: non lamentarti quando DTS! = PTS sui fotogrammi chiave
- 740675: riproduzione: continua la riproduzione, ripristina la proprietà mute
- 740730: rtspconnection: non rimuovere l'origine figlio se l'origine genitore è già distrutta li>
- 740853: audiodecoder: invia eventi in sospeso prima di inviare EOS.
- 740952: alsa: correzioni NetBSD
- 741045: l'audiorate può perdere la precisione del timestamp in alcuni casi
- 741198: playbin: perdite di GstPad
- Plugin di GStreamer Buono:
- 711437: apev2mux: non inserire i tag APEv2 all'inizio dei file WavPack
- 726194: v4l2src non funziona bene quando una scheda di acquisizione è a volte interlacciata, a volte progressiva con la stessa risoluzione
- 736397: flvdemux: il comportamento di risincronizzazione Per-stream causa deserti A / V
- 737603: v4l2bufferpool: imposta i flag di interlacciamento del buffer quando il campo è V4L2_FIELD_INTERLACED
- 739476: vpx: non riesce a costruire contro libvpx da git
- 739722: matroskamux: registro sicuro dei thread GstMatroskamuxPad
- 739789: v4l2allocator: correggi il messaggio di errore se l'allocatore è già attivo
- 739791: v4l2bufferpool: unref pool quando v4l2_allocator_new () fallisce
- 739792: v4l2allocator: correggi il prototipo gst_v4l2_allocator_stop
- 739996: videomixer: rilascia molti frame, se una delle fonti è live
- 740040: v4l2src: errore in presenza di V4L2_BUF_FLAG_ERROR
- 740392: rtspsrc: chiave decodificata di mikey base64-mgmt leak
- 740407: qtmux limita l'acquisizione a 4096x4096
- 740633: v4l2src: RW io-mode è rotto
- 740636: v4l2src: framerate non è sempre impostato sul driver
- 740671: aspectratiocrop: il ritaglio deve essere ripristinato quando le dimensioni del video cambiano
- 740905: v4l2: ha ancora 1 incluso in linux / videodev.h
- 741271: rtph264pay: perdita di buffer nel payloader H.264 quando si utilizza SPS / PPS
- 741381: rtph264pay: le condizioni di competizione possono causare arresti anomali quando si passa da PAUSED- & gt; READY
- 741407: deinterlace: in query_caps restituiscono solo i formati supportati se il filtro è interlacciato
- 737579: v4l2object: imposta lo spazio colore per i dispositivi di output
- 739754: v4l2bufferpool: deve convalidare che tutti i ricordi sono scrivibili prima di fare la coda
- Plugin di GStreamer non validi:
- 722764: rawparse: correggi la gestione della query di SEEKING
- 729768: mpegtsbase: aumenta il limite per leggere più byte inizialmente per trovare PCR
- 739152: gl / cocoa: build con GNUStep fallisce
- 740191: dvbbasesink: segfaults su 32-bit (rpi)
- 740201: gl / cocoa: non si compila su OSX & lt; 10.7 più
- 740451: srtpdec: leak eventi rtp / rtcp sink
- 740953: configure.ac: operatore di confronto test (1) non trasportabile
- 741321: opusparse: fix intestazione parsing esp. di output codificato di libopus
- Server RTSP GStreamer:
- 739481: rtsp-stream: perde il decodificatore srtp quando lascia rtpbin
Novità in nella versione 1.4.4:
- Bug corretti nella versione 1.4.5:
- 737498: multiqueue: non tiene conto dell'evento GAP durante il calcolo del livello corrente
- 737794: multiqueue: deadlock se la coda supera gli eventi serializzati
- 737999: systemclock: problema di stato della voce multi-thread
- 738198: multiqueue: non attiva gli stream non collegati su EOS
Novità nella versione 1.4.1:
- La serie di versioni 1.4 sta aggiungendo nuove funzionalità in cima della serie 1.2 e fa parte dell'API e della serie di release 1.x ABI-stable del framework multimediale GStreamer che contiene nuove funzionalità. Le versioni 1.4.x di bugfix contengono solo correzioni importanti rispetto alla versione 1.4.0.
Novità in nella versione 1.4 RC2:
- Il team di GStreamer è lieto di annunciare la seconda release candidate della serie 1.4 di rilascio stabile. La serie di rilascio 1.4 aggiunge nuove funzionalità alle serie 1.0 e 1.2 e fa parte dell'API e della serie di release 1.x ABI-stable del framework multimediale GStreamer.
- Si spera che questa release candidate possa essere seguita a breve dalla versione 1.4.0 stabile se non vengono rilevate regressioni più grandi o problemi più grandi e si è verificato un numero sufficiente di test per il rilascio del candidato. La nuova API aggiunta durante la serie di versioni 1.3 non dovrebbe cambiare più a questo punto.
Novità nella versione 1.4 RC1:
- Nuova API:
- GstMessageType ha aggiunto GST_MESSAGE_EXTENDED. Tutti i tipi precedenti possono essere utilizzati insieme come un tipo di flag come in precedenza, ma da quel messaggio in poi i tipi vengono contati solo in modo incrementale. Questo era necessario per poter aggiungere più tipi di messaggi. In 2.0 GstMessageType diventerà semplicemente un enumerato e non più un tipo di flag.
- GstDeviceMonitor per il rilevamento del dispositivo, ad es. per elencare tutti i dispositivi di acquisizione audio o video disponibili. Questa è la sostituzione di GstPropertyProbe da 0.10.
- Gli eventi accumulano l'offset del tempo di esecuzione ora quando viaggiano attraverso i pad, come impostato dalla funzione gst_pad_set_offset (). Ciò consente di compensare ciò nell'evento QOS, ad esempio.
- GstBuffer ha un nuovo flag & quot; tag-memory & quot; viene impostato automaticamente quando la memoria viene aggiunta o rimossa in un buffer. Ciò consente ai pool di buffer di rilevare se possono riciclare un buffer o devono prima ripristinarlo.
- GstToc ha una nuova API per contrassegnare GstTocEntries come loop.
- È stato definito un errore di risorsa non autorizzato per notificare alle applicazioni che l'accesso alla risorsa è fallito a causa della mancanza dell'autorizzazione e per distinguere questo caso dagli altri. Questo cambiamento è in realtà già in 1.2.4.
- GstPad ha un nuovo flag & quot; accept-intersect & quot ;, che consentirà al gestore di query ACCEPT_CAPS predefinito di effettuare un'intersezione anziché un controllo di sottoinsieme. Questo è interessante per gli elementi parser in grado di gestire i tappi incompleti.
- GstCollectPads ora supporta il flushing e un gestore predefinito per gli eventi SEEK.
- Nuovo oggetto helper GstFlowAggregator che semplifica la gestione dei ritorni di flusso in elementi con più pad sorgente. Inoltre, GstPad memorizza sempre l'ultimo ritorno del flusso e fornisce un'API per recuperarlo.
- GstSegment ha una nuova API per bilanciare il tempo di esecuzione di un valore specifico e questo viene utilizzato in GstPad per consentire gli offset positivi e negativi in gst_pad_set_offset () in tutte le situazioni.
- Il supporto per h265 / HEVC e VP8 è stato aggiunto alla libreria di codec utils e codec parser ed è stato integrato in vari elementi.
- È stata aggiunta l'API per la regolazione della convalida TLS della connessione RTSP.
- La libreria RTSP e SDP ha ora il supporto MIKEY (RFC 3830) e l'API è in grado di distinguere tra i diversi profili RTSP.
- API per accedere a informazioni e statistiche sull'ora RTP.
- Il supporto per i flussi ausiliari è stato aggiunto a rtpbin.
- È stato aggiunto il supporto per i formati video grezzi e affiancati.
- GstVideoDecoder e GstAudioDecoder dispongono di API che consentono di aggregare eventi di tag e unire in modo coerente tag personalizzati in essi.
- GstBufferPool ora supporta il flushing.
- playbin / playsink ha il supporto per i filtri audio e video forniti dall'applicazione.
- GstDiscoverer ha un'API nuova e semplificata per ottenere dettagli sui plugin e le informazioni mancanti da trasferire al programma di installazione del plugin.
- La libreria GL è stata unita da gst-plugins-gl a gst-plugins-bad, fornendo un'infrastruttura generica per la gestione di GL all'interno di pipeline GStreamer e un plug-in con alcuni elementi che utilizzano questi, in particolare un sink video. Le piattaforme supportate attualmente sono Android, Cocoa (OS X), DispManX (Raspberry Pi), EAGL (iOS), WGL (Windows) e X11 generico, piattaforme Wayland ed EGL. Questo sostituisce eglglessink e dovrebbe anche sostituire osxvideosink.
- Nuova classe base GstAggregator in gst-plugins-bad. Questo dovrebbe sostituire GstCollectPads in futuro e correggere le carenze note nella sua API. Insieme alla classe base sono già forniti alcuni elementi, come un videomixer (compositore).
- Principali modifiche:
- Nuovi plug-in ed elementi:
- elemento v4l2videodec per accedere ai codec hardware su piattaforme che li rendono accessibili tramite V4L2, ad es. Samsung Exynos. Ciò si accompagna a un importante refactoring degli elementi V4L2 esistenti e dell'infrastruttura corrispondente. L'elemento v4l2videodec sostituisce l'elemento mfcdec.
- Nuovo elemento downloadbuffer che sostituisce la funzionalità di buffering del download di queue2. Rispetto al codice di queue2 è molto più semplice e solo per questo caso monouso. Una nuova caratteristica degna di nota è che sta scaricando le lacune nelle parti del flusso già scaricate quando non è necessario scaricare nient'altro. Questo è ora usato da playbin quando il buffering del download è abilitato.
- rtpstreampay e rtpstreamdepay elementi per la trasmissione di pacchetti RTP su un'API di flusso (ad esempio TCP) in base a RFC 4571.
- Elementi rtprtx per l'implementazione conforme standard di ritrasmissioni, integrata nel plug-in di rtpmanager.
- elemento audiomixer che unisce più stream audio in uno solo mantenendo la sincronizzazione. Questo è pianificato per diventare la sostituzione dell'elemento adder.
- Plugin OpenNI2 per telecamere 3D come la fotocamera Kinect.
- Plugin OpenEXR per la decodifica di immagini EXR ad alta gamma dinamica.
- curlsshsink e curlsftpsink per scrivere file via SSH / SFTP.
- plug-in video, ivfparse e sndfile portati da 0.10.
- avfvideosrc, vtdec e altri elementi sono stati portati da 0.10 e sono ora disponibili su OS X e iOS.
- Altre modifiche:
- gst-libav ora usa libav 10.1 e ha ottenuto il supporto per H265 / HEVC.
- Il supporto per i codec hardware e i tipi di memoria speciali è stato migliorato con correzioni di errori e aggiunte di funzionalità in vari plug-in e classi base.
- Varie correzioni di bug e miglioramenti al buffering in queue2 e elementi multiqueue.
- dvbsrc supporta ora più meccanismi di consegna e altre funzionalità, incluso il supporto DVB S2 e T2.
- La libreria MPEGTS supporta molti più descrittori.
- Importanti miglioramenti a tsdemux e tsparse, in particolare al tempo e alla ricerca correlati.
- souphttpsrc ora supporta le connessioni keep-alive, la compressione, il numero configurabile di tentativi e la configurazione per la convalida dei certificati SSL.
- hlsdemux ha subito importanti refactoring e ora è più affidabile e supporta più funzionalità HLS come le modalità trick. Inoltre, i frammenti vengono spostati a valle mentre vengono scaricati ora invece di attendere il completamento di ciascun frammento.
- dashdemux e mssdemux ora stanno anche spingendo i frammenti a valle mentre sono scaricati invece di aspettare che ogni frammento finisca.
- videoflip può capovolgere automaticamente in base al tag di orientamento.
- openjpeg supporta l'API OpenJPEG2.
- waylandsink è stato refactored e dovrebbe essere più utile ora. Include anche una piccola libreria che molto probabilmente verrà rimossa in futuro e genererà estensioni all'interfaccia GstVideoOverlay.
- gst-rtsp-server supporta ora SRTP e MIKEY.
- gli encoder gst-libav stanno ora negoziando qualsiasi profilo / impostazioni di livello con downstream tramite caps.
- Un sacco di correzioni per avvisi di coverity dappertutto.
- Miglioramenti delle prestazioni relativi alla negoziazione.
- Oltre 800 segnalazioni di bug risolti e molte altre correzioni di bug e altri miglioramenti in tutto il mondo che non avevano segnalazioni di bug.
- Cose a cui prestare attenzione:
- L'elemento eglglessink è stato rimosso e sostituito dall'elemento glimagesink.
- L'elemento mfcdec è stato rimosso e sostituito da v4l2videodec.
- osxvideosink è disponibile solo in OS X 10.6 o successivi.
- Su Android lo spazio dei nomi della classe Java generata automaticamente per l'inizializzazione di GStreamer è cambiato da com.gstreamer a org.freedesktop.gstreamer per prevenire l'inquinamento dello spazio dei nomi.
- Su iOS devi aggiornare gst_ios_init.h e gst_ios_init.m nei tuoi progetti da quello incluso nei binari se in precedenza hai utilizzato il modulo GIO di GnuTLS. Il meccanismo di caricamento è leggermente cambiato.
Novità in nella versione 1.2.4:
- Core di GStreamer:
- 724373: Queue2 tronca il file temporaneo quando la pipeline viene messa in pausa
- 725517: documenti: correggere errori di battitura e rimuovere annotazioni sconosciute
- 725809: ghostpad: raro arresto anomalo a causa della mancanza del conteggio dei riferimenti sul pad di destinazione
- 727253: parse: il file generato da Bison incluso nei tarball di rilascio causa errori di compilazione
- 727883: baseparse: perdita di memoria dei telegrammi di coda
- Base dei plugin di GStreamer:
- 693263: typefinding: video ES MPEG-2 rilevato come H.263
- 683504: playink: deadlock quando si disattivano i sottotitoli e la disabilitazione non ottimale dei sottotitoli
- 700770: digitazione del tipo: file mp3 rilevato erroneamente come video h263
- 723597: tagdemux: l'evento di ricerca in GST_FORMAT_TIME viene convertito in BYTES all'inizio
- 724633: oggdemux: ignora l'ultima pagina in modalità push
- 724720: rtspconnection: impossibile disconnettere / riconnettere la connessione in lettura in modalità tunnel
- 725313: rtspconnection: closed () callback non viene mai chiamato in modalità tunnel
- 725644: typefinding: il file mp3 viene erroneamente identificato come H.263
- 726642: rtspconnection: piccola perdita di memoria nella gestione degli errori
- 727025: addetto: rielaborare la logica per verificare se eos deve essere inviato.
- Plugin di GStreamer Buono:
- 725104: qtdemux: riproduzione inversa e errore di commutazione del flusso video
- 722185: souphttpsrc: racy & quot; il server non supporta la ricerca & quot; Errore
- 724619: arresto anomalo durante la lettura della proprietà del nome del dispositivo di pulsesink
- 725124: rtspsrc: fix deadlock quando la creazione dell'attività non ha esito positivo
- 725712: rtssession: crash in caso di ricezione di RTCP FIR con SSRC sconosciuto
- 725860: v4l2src: correzione utilizzando v4l2src con il dispositivo di acquisizione video Hauppauge HDPVR
- 726777: rtpjpegpay: dimensioni del payload non calcolate correttamente
- 728017: non è stato possibile inviare l'evento [regression] eos da gstrtpjitterbuffer.
- 728041: rtph264depay: contrassegna tutti i buffer di output come unità delta quando si stampa il formato avc
- 724638: aacparse: mancanza di resilienza quando non viene trovata alcuna cornice audio
- 727329: verifica: souphttpsrc: nome di tipo sconosciuto "SoupStatus"
- Plugin di GStreamer non validi:
- 724013: Non eseguire il percorso hardcode / usr / share / sounds / sf2 in fluiddec
- 725137: hlsdemux: non riesce a calcolare l'URL della playlist multimediale se esiste un parametro di query
- 725140: hlsdemux: non riesce ad analizzare correttamente CODECS e RESOLUTION
- Plugin libav di GStreamer:
- 727779: avdec_h264, matroskademux: arresto anomalo durante la ricerca (1.2 regressione)
Novità nella versione 1.2.2:
- La serie di rilasci 1.2 aggiunge nuovi funzioni in cima alla serie 1.0 e fa parte dell'API e della serie di release 1.x ABI-stable del framework multimediale GStreamer che contiene nuove funzionalità.
Novità in nella versione 1.2.0:
- Nuova API:
- Negoziazione / condivisione / annuncio GstContext per condividere un contesto generico tra elementi, ad es. una maniglia di visualizzazione
- Meta di conversione caricamento trama GL per consentire la conversione di diversi tipi di buffer in una trama OpenGL
- GstCapsFeatures come estensione a GstCaps per consentire la negoziazione di memoria specifica o meta requisiti tra gli elementi
- GstMemory indica la memoria contigua e non mappabile
- L'evento di avvio del flusso ha ora contrassegni facoltativi, ad es. per segnalare flussi sparsi
- Lo stream-start ha anche un campo ID di gruppo opzionale ora per segnalare tutti i flussi che devono essere riprodotti insieme
- Libreria di allocatori in gst-plugins-base, attualmente solo con supporto di memoria dmabuf generico
- libreria insertbin per una gestione più semplice delle pipeline collegate dinamicamente (in -bad per ora)
- Libreria helper EGL (in -bad per ora)
- Libreria della struttura dati MPEG-TS (in -bad per ora)
- Nuovo GstVideoRegionOfInterestMeta per descrivere una regione di interesse sui fotogrammi video.
- GstVideoDecoder / Encoder ha un nuovo :: flush () vfunc per sostituire il vfunc mal definito :: reset ().
- La query URI consente di eseguire query sull'URI reindirizzato ora.
- Principali modifiche:
- Nuovo strumento: gst-play-1.0 in gst-plugins-base per test di riproduzione di base sulla riga di comando.
- Nuovi plug-in:
- mssdemux per Microsoft Smooth Streaming
- dashdemux per il protocollo di streaming adattativo DASH
- bluez per l'interazione con i dispositivi Bluetooth
- openjpeg per la decodifica e codifica JPEG2000
- daala per la decodifica e codifica Daala sperimentale
- il plugin vpx ha un decodificatore sperimentale VP9 e supporto per la codifica
- plugin webp per la decodifica WebP (codifica da aggiungere in seguito)
- Vari altri: yadif, srtp, sbc, fluidsynth, midiparse, mfc, ivtv, accuraterip e audiofxbad
- Plugin spostati:
- dtmf, vp8rtp, scaletempo e rtpmux sono in gst-plugins-bene adesso
- Video
- Correggere la gestione del video interlacciato in convertitori come videoscala e videoconvert (ad esempio, ridimensionare entrambi i campi in modo indipendente)
- videoconvert cercherà più duramente di minimizzare le perdite di qualità quando è necessaria la conversione
- Le API GstSurfaceConverter, GstSurfaceMeta e GstVideoContext sperimentali della libreria libgstbasevideo-1.0 (in confusione) di gst-plugins-bad sono state rimosse e sostituite da nuove API in GStreamer Core e gst-plugins-base (vedi sopra ). Poiché questo era tutto ciò che era rimasto in questa libreria, l'intera libreria sperimentale libgstbasevideo-1.0 è stata rimossa da gst-plugins-bad
- Il sottocampionamento del chroma e la conversione del chroma siting sono gestiti meglio in videoconvert e il supporto per i video interlacciati è stato migliorato.
- Nuovi modelli a girandola e raggio in videotestsrc
- videomixer può ora accettare diversi formati video sui suoi sinkpad e convertirli in un formato comune durante il missaggio
- Audio:
- audioconvert cercherà di ridurre al minimo le perdite di qualità quando è necessaria la conversione
- adder ora consente di attivare / disattivare l'audio dei suoi flussi di input e anche il volume del flusso per input
- gli elementi pulseaudio possono passare da un dispositivo all'altro durante la riproduzione ora
- aacparse può convertire tra ADTS ← -> RAW
- Modifiche specifiche della piattaforma:
- Caps, eventi, ecc. vengono ora stampati nei log di debug di GStreamer con il loro contenuto anziché solo l'indirizzo del puntatore anche su piattaforme non-glibc (ad esempio Windows, OSX, Android).
- Gli elementi di rete (UDP / TCP) ora funzionano meglio con le piattaforme, dove i socket IPv6 non possono gestire IPv4 (ad esempio Windows)
- Linux / BSD: v4l2 ha avuto molti miglioramenti e ripuliture
- Altre modifiche:
- gst-libav ora usa libav 9
- Il collegamento statico dei plugin è ora supportato (anche in 1.0.7)
- rtspsrc: aggiungi il supporto per NetClientClock: quando il server suggerisce un GstNetTimeProvider nell'SDP, configura un GstNetClientClock che assorbe il clock remoto e suggerisce questo clock in provide_clock. Semplifica la riproduzione sincronizzata di una risorsa da un server RTSP. gst-rtsp-server ora supporta l'aggiunta di questo all'SDP e può fornire un orologio di rete
- Ritrasmissione RTP / supporto NACK e grandi miglioramenti del jitterbuffer RTP
- Supporto SRTP e DTLS
- Passa a molti elementi e core per utilizzare l'ordine dell'evento appiccicoso corretto e inoltre non perde alcun evento importante durante lo svuotamento
- & gt; 1000 segnalazioni di bug risolti e molte altre correzioni di bug e altri miglioramenti in tutto il mondo che non avevano segnalazioni di bug
- Cose a cui prestare attenzione:
- L'intestazione singola include per tutte le librerie, ad es. #include - questo era necessario per alcuni collegamenti.
- Controllo del sottoinsieme dei tappi più severo (corretto) in alcuni casi in cui ciò non era corretto in precedenza. I maiuscoletti non saranno sempre un sottoinsieme compatibile di un altro set di maiuscole se i limiti del sottoinsieme mancano di alcuni campi che i cappucci del superset hanno. Ciò potrebbe portare a errori non negoziati se i limiti sono incompleti ora. Tuttavia, impedisce anche il possibile danneggiamento dei dati causato dal piping di dati formattati in modo incompatibile / inatteso in alcuni elementi. Controlla i tuoi cappucci h264 per i campi di formattazione e allineamento dello stream e i tappi AAC per il campo del formato stream. Questa modifica sarà inclusa anche nella prossima release 1.0.8 stabile.
- Verifica più rigorosa degli eventi mancanti e ordine degli eventi appiccicosi corretto (stream-start, caps, segment) in alcuni punti; questo non è abilitato nelle versioni stabili di default, ma potresti ricevere degli avvertimenti quando usi git build, release di sviluppo o quando compili con -UG_DISABLE_ASSERT in CFLAGS
- x264enc ora restituisce i dati nel flusso di byte per impostazione predefinita se downstream ha QUALSIASI limite (ad esempio appink senza set di protezioni, filesink, udpsink, tcpserversink ecc.)
- I messaggi di demuxer MPEG TS post contengono il PMT, PAT, ecc. in un formato diverso ora. Questo nuovo formato utilizza le strutture dati dalla nuova libreria MPEGTS
- L'API GstContext è cambiata tra 1.1.4 e 1.1.90
I plugin
Novità in nella versione 1.1.4:
- Nuova API:
- Negoziazione / condivisione / annuncio GstContext per condividere un contesto generico tra elementi, ad es. una maniglia di visualizzazione
- Meta di conversione caricamento trama GL per consentire la conversione di diversi tipi di buffer in una trama OpenGL
- GstCapsFeatures come estensione a GstCaps per consentire la negoziazione di memoria specifica o meta requisiti tra gli elementi
- GstMemory indica la memoria contigua e non mappabile
- L'evento di avvio del flusso ha ora contrassegni facoltativi, ad es. per segnalare flussi sparsi
- Lo stream-start ha anche un campo ID di gruppo opzionale ora per segnalare tutti i flussi che devono essere riprodotti insieme
- Libreria di allocatori in gst-plugins-base, attualmente solo con supporto di memoria dmabuf generico
- libreria insertbin per una gestione più semplice delle pipeline collegate dinamicamente (in -bad per ora)
- Libreria helper EGL (in -bad per ora)
- Libreria della struttura dati MPEG-TS (in -bad per ora)
- Nuovo GstVideoRegionOfInterestMeta per descrivere una regione di interesse sui fotogrammi video.
- GstVideoDecoder / Encoder ha un nuovo :: flush () vfunc per sostituire il vfunc mal definito :: reset ().
- La query URI consente di eseguire query sull'URI reindirizzato ora.
- Principali modifiche:
- Nuovo strumento: gst-play-1.0 in gst-plugins-base per test di riproduzione di base sulla riga di comando.
- Nuovi plug-in:
- mssdemux per Microsoft Smooth Streaming
- dashdemux per il protocollo di streaming adattativo DASH
- bluez per l'interazione con i dispositivi Bluetooth
- openjpeg per la decodifica e codifica JPEG2000
- daala per la decodifica e codifica Daala sperimentale
- il plugin vpx ha il supporto sperimentale per la decodifica e codifica V9
- plugin webp per la decodifica WebP (codifica da aggiungere in seguito)
- Vari altri: yadif, srtp, sbc, fluidsynth, midiparse, mfc, ivtv, accuraterip e audiofxbad
- Plugin spostati:
- dtmf, vp8rtp, scaletempo e rtpmux sono in gst-plugins-bene adesso
- Video
- Correggere la gestione del video interlacciato in convertitori come videoscala e videoconvert (ad esempio, ridimensionare entrambi i campi in modo indipendente)
- videoconvert cercherà più duramente di minimizzare le perdite di qualità quando è necessaria la conversione
- Le API GstSurfaceConverter, GstSurfaceMeta e GstVideoContext sperimentali della libreria libgstbasevideo-1.0 (in confusione) di gst-plugins-bad sono state rimosse e sostituite da nuove API in GStreamer Core e gst-plugins-base (vedi sopra ). Poiché questo era tutto ciò che era rimasto in questa libreria, l'intera libreria sperimentale libgstbasevideo-1.0 è stata rimossa da gst-plugins-bad.
- Il sottocampionamento del croma e la conversione di ubicazione vengono gestiti meglio in videoconvert
- Nuovi modelli a girandola e raggio in videotestsrc
- Audio:
- adder ora consente di attivare / disattivare l'audio dei suoi flussi di input e anche il volume del flusso per input
- gli elementi pulseaudio possono passare da un dispositivo all'altro durante la riproduzione ora
- aacparse può convertire tra ADTS ← -> RAW
- Modifiche specifiche della piattaforma:
- Caps, eventi, ecc. vengono ora stampati nei log di debug di GStreamer con il loro contenuto anziché solo l'indirizzo del puntatore anche su piattaforme non-glibc (ad esempio Windows, OSX, Android).
- Gli elementi di rete (UDP / TCP) ora funzionano meglio con le piattaforme, dove i socket IPv6 non possono gestire IPv4 (ad esempio Windows)
- Windows: d3dvideosink fornisce un bufferpool agli elementi upstream
- Linux / BSD: v4l2 ha avuto molti miglioramenti e ripuliture
- Altre modifiche:
- gst-libav ora usa libav 9
- Il collegamento statico dei plugin è ora supportato (anche in 1.0.7)
- rtspsrc: aggiungi il supporto per NetClientClock: quando il server suggerisce un GstNetTimeProvider nell'SDP, configura un GstNetClientClock che assorbe il clock remoto e suggerisce questo clock in provide_clock. Semplifica la riproduzione sincronizzata di una risorsa da un server RTSP. gst-rtsp-server ora supporta l'aggiunta di questo all'SDP e può fornire un orologio di rete
- Ritrasmissione RTP / supporto NACK e grandi miglioramenti del jitterbuffer RTP
- Supporto SRTP e DTLS
- Passa a molti elementi e core per utilizzare l'ordine dell'evento appiccicoso corretto e inoltre non perde alcun evento importante durante lo svuotamento
- & gt; 1000 segnalazioni di bug risolti e molte altre correzioni di bug e altri miglioramenti in tutto il mondo che non avevano segnalazioni di bug
- Cose a cui prestare attenzione:
- L'intestazione singola include per tutte le librerie, ad es. #include - questo era necessario per alcuni collegamenti.
- Controllo del sottoinsieme dei tappi più severo (corretto) in alcuni casi in cui ciò non era corretto in precedenza. I maiuscoletti non saranno sempre un sottoinsieme compatibile di un altro set di maiuscole se i limiti del sottoinsieme mancano di alcuni campi che i cappucci del superset hanno. Ciò potrebbe portare a errori non negoziati se i limiti sono incompleti ora. Tuttavia, impedisce anche il possibile danneggiamento dei dati causato dal piping di dati formattati in modo incompatibile / inatteso in alcuni elementi. Controlla i tuoi cappucci h264 per i campi di formattazione e allineamento dello stream e i tappi AAC per il campo del formato stream. Questa modifica sarà inclusa anche nella prossima release 1.0.8 stabile.
- Verifica più rigorosa degli eventi mancanti e ordine degli eventi appiccicosi corretto (stream-start, caps, segment) in alcuni punti; questo non è abilitato nelle versioni stabili di default, ma potresti ricevere degli avvertimenti quando usi git build, release di sviluppo o quando compili con -UG_DISABLE_ASSERT in CFLAGS
- x264enc ora restituisce i dati nel flusso di byte per impostazione predefinita se downstream ha QUALSIASI limite (ad esempio appink senza set di protezioni, filesink, udpsink, tcpserversink ecc.)
I plugin
I commenti non trovato