GStreamer 是一個開源庫,是一個複雜的軟件,可作為眾多GNU / Linux操作系統的多媒體框架,以及Android,OpenBSD,Mac OS X,Microsoft Windows,和Symbian操作系統。
功能一目了然
主要功能包括全面的核心庫,智能插件架構,多媒體技術的擴展,以及廣泛的開發工具,因此您可以輕鬆地在應用程序中添加對GStreamer的支持。
它是各種開源項目的主要多媒體後端,廣泛來自音頻和視頻播放應用,例如GNOME桌面環境中的圖騰(視頻),以及復雜的視頻和音頻編輯器。
此外,該軟件具有極高的性能和低延遲,這得益於其極其輕量級的數據傳遞技術,以及通過時鐘進行全局流間(音頻/視頻)同步。
包含多個編解碼器包
該項目由幾個不同的包組成,也稱為代碼包,可以一次性或單獨地從其默認軟件存儲庫輕鬆安裝到任何GNU / Linux發行版上。它們如下:GStreamer Plugins Base,GStreamer Plugins Good,GStreamer Plugins Bad,和GStreamer Plugins Ugly。
GStreamer是一個緊湊的核心庫,它基於基於圖形的結構,允許隨機的pipleline結構,基於GLib 2.0對像模型庫,可用於面向對象的設計和繼承。
使用QoS(服務質量)技術
為了在高CPU負載下保證最佳的音頻和視頻質量,該項目使用QoS(服務質量)技術。此外,它提供了多線程管道的透明和簡單的構造。
由於其簡單,穩定和乾淨的API(應用程序編程接口),開發人員可以輕鬆地將其集成到他們的應用程序中,以及創建將擴展其默認功能的插件。它還為他們提供了一個功能齊全的調試系統。
底線
總之,GStreamer是一個非常強大且備受推崇的開源生態系統多媒體框架,為GNU / Linux用戶提供了廣泛的音頻和視頻編解碼器,用於媒體播放和處理。
< strong>本新聞稿中的新功能:
- 修正錯誤。
版本1.14.1中的新功能:
- 修正錯誤。
版本中的新功能:
- 此版本僅包含錯誤修正,從以下版本更新應該是安全的1.8.0。
1.8.2版中的新功能:
- 此版本僅包含錯誤修正,應該是安全的從1.8.0更新。
1.8.0版中的新功能:
- Android上的硬件加速零拷貝視頻解碼
- 使用android.hardware.Camera API的Android新視頻捕獲源
- Windows Media反向播放支持(ASF / WMV / WMA)
- 新的跟踪系統為更複雜的調試工具提供支持
- 新的高級GstPlayer播放便利API
- 對新Vulkan API的初步支持,請參閱Matthew Waters的博客文章了解更多詳情
- 改進的Opus音頻編解碼器支持:支持兩個以上的頻道; MPEG-TS demuxer / muxer現在可以處理Opus;採用Ogg,Matroska,ISOBMFF(Quicktime / MP4)和MPEG-TS作為容器的樣本精確編碼/解碼/傳輸;新的編解碼器實用程序函數,用於在pbutils庫中處理Opus標頭和大寫字母。 Opus編碼器/解碼器元素也被移動到gst-plugins-base(來自-bad),以及opus RTP depayloader / payloader -good。
- GStreamer VAAPI模塊現已作為GStreamer項目的一部分發布和維護
- GStreamer編輯服務中的資產代理支持
版本1.6.3中的新功能:
- 修復GL庫中的回歸,使得Android上的glimagesink無法使用
- queue2元素中的整數算術溢出,可能會因NULL指針取消引用而導致緩衝或導致崩潰
- 通過讀取比可用內存更多的內存來修復AAC / ADTS類型取景器中的崩潰
- 停止忽略VP8 / VP9編碼器中的編碼器錯誤
- 棄用GstVideoEncoder GST_VIDEO_ENCODER_FLOW_DROPPED。它是減少的,從未實際實施
- 確保在GstVideoBufferPool中存儲正確的視頻信息
- 在交錯TCP上執行SRTP時修復rtspsrc中的上限
- 修復0大小數據包上的pcap解析器崩潰
- 在appsrc中清除EOS標誌以允許在EOS和刷新後重複使用
- 在流切換期間忽略流同步器中的刷新流以修復gst-editing-services中由此引起的問題
- 在“數據”之後忽略WAV文件中的標籤和其他元數據。 PUSH模式下的塊以防止它們被解釋為音頻
- 僅針對YUV顏色格式在v4l2中正確使用色度法
- 將MPEG TS muxer中的保留位設置為1s
- 修復SBC幀長度的計算
- 修復RTP JPEG2000 depayloader的輸出,使每個緩衝區有一幀,並在不完整幀上的OpenJPEG解碼器崩潰
- 將gst-libav中的ffmpeg快照更新為2.8.5
- 內存洩漏修復了scaletempo,原始視頻RTP depayloader以及與音頻/視頻過濾器相關的playink
- 修復OSX音頻插件中的錯誤處理
- 各種gobject-introspection註釋修復和添加
- 針對最新clang編譯器的編譯器警告修復
版本1.6.1中的新功能:
- 修復了gst-libav編碼器中的崩潰
- 更多DASH-IF測試流正在運行
- Live DASH,HLS和MS SmoothStreaming流為自適應流媒體協議提供更可靠的工作和其他修復
- 反向播放與scaletempo配合使用以保持音頻音高
- 報告負的applied_rate 的正確流時間
- 解碼期間的SRTP數據包驗證不再拒絕有效數據包
- 修復了audioaggregator和aggregator以在合適的時間開始生成輸出,例如在開頭沒有輸出很多沉默
- gst-libav的內部ffmpeg快照已更新為2.8.1
- cerbero支持Mac OS X 10.11(El Capitan)
- 修復了各種內存洩漏,包括playbin,playsink和decodebin中的主要洩漏
- 各種GObject-Introspection註釋修復了綁定
- 還有很多很多
版本1.6.0中的新功能:
- 立體3D和多視圖視頻支持
- 特技模式API,僅用於關鍵幀快進/快退播放等。
- 改進DTS(解碼時間戳)與PTS(演示時間戳)處理以解決負面DTS
- 新的GstVideoConverter API,可在所有支持的格式之間進行更優化和更正確的原始視頻幀轉換,並重新縮放
- v4l2src現在支持重新協商
- v4l2transform現在可以進行縮放
- V4L2元素現在正確報告Colorimetry
- 更簡單的MP4,Matroska,Ogg,MPEG-TS分塊錄製:新的splitmuxsink和multifilesink改進
- 內容保護信令API和通用加密(CENC)支持DASH / MP4
- 許多自適應流媒體(DASH,HLS和MSS)改進
- 新的PTP和NTP網絡客戶端時鐘以及更好的遠程時鐘跟踪穩定性
- 使用glimagesink或gtkglsink 以高分辨率顯示高質量文字字幕
- RECORD支持GStreamer RTSP服務器
- RTSP服務器和客戶端中的重傳(RTX)支持
- RTSP在客戶端和服務器上尋求支持已得到修復
- RTCP調度改進和縮小RTCP支持
- MP4 / MOV muxer獲得了新的“強大”功能。嘗試始終將輸出文件保持在有效狀態的操作模式
- 聚合器,audiomixer和compositor中的實時混音支持得到了很大改善
- compositor現在還支持動態重新調整輸入流
- 具有適當輸入同步和實時輸入支持的新audiointerleave元素
- Blackmagic Design DeckLink捕獲和回放卡支持從頭開始重寫; 2k / 4k支持;模式感應
- RTP和MPEG-TS中的KLV元數據支持
- H.265視頻編碼器(x265),解碼器(libav,libde265)和RTP payloader和depayloaders
- 新DTLS插件和SRTP / DTLS支持
- OpenGL3支持,多個上下文和上下文傳播,3D視頻,傳輸/轉換分離,字幕混合
- 新的基於OpenGL的QML視頻接收器,Gtk GL視頻接收器,CoreAnimation CAOpenGLLayerSink視頻接收器
- gst-libav切換到ffmpeg作為libav-provider,獲得對3D /多視圖視頻,特技模式和CAVS編解碼器的支持
- 用於單元測試的GstHarness API
- gst-editing-services獲得了全新的ges-launch-1.0界面,改進了混音支持並集成到gst-validate中
- gnonlin在gst-editing-services中被推薦使用nle(非線性引擎)
- gst-validate有一個新的插件系統,一個廣泛的默認測試套件,支持並發測試運行和valgrind支持
- 用於SDK二進制包的cerbero構建工具獲得了新的“bundle-source”命令
- 對Android,iOS,OS X和Windows平台支持的各種改進
版本1.5.2中的新功能:
- 740502:向GstDirectControlBinding添加絕對屬性
- 740575:在GStreamer中修復DTS
- 745366:concat:轉發FLUSH_START / FLUSH_STOP事件
- 746949:concat:添加active-pad屬性
- 750027:concat:刷新搜索後將內部起始偏移重置為0
- 750033:basetransform - 允許整理/分離緩衝區
- 750039:保持共享內存的緩衝區
- 750319:memory:子類不知道unmap中的映射標誌
- 750530:ptp:FreeBSD,DragonFly和其他BSD沒有ifreq.ifw_hwaddr
- 750574:netclientclock:使時鐘成為內部時鐘周圍的包裝時鐘
- 750761:inputselector:處理不同的持續時間曲目選擇
- 750782:管道:添加gst_pipeline_set_latency(),getter和GObject屬性
- 751026:basesink:正確處理最後樣本屬性的緩衝區列表
- 751047:concat:添加adjust-base屬性
- 751107:concat:釋放墊時,適當發送EOS。
- 751235:utils:get_compatible_pad不完全尊重過濾器上限
- 751420:basesink:需要深度複製drain 中的最後一個緩衝區列表
版本1.4.5中的新功能:
- GStreamer核心:
- 736969:queue2:緩衝時死鎖
- 738092:basesink:根據方向箝位報告的位置
- 740001:任務:暫停和停止時的競爭條件
- GStreamer插件基地:
- 741420:視頻池:應用對齊後應在配置中更新大小
- 715050:為audio / x-audible添加typefinder
- 739544:tcp:在tcp元素中添加測試並修復內存洩漏
- 739840:typefind應識別Apple Core Audio Format(CAF)
- 740556:videodecoder:DTS時不要抱怨!=關鍵幀上的PTS
- 740675:playsink:繼續播放,重置靜音屬性
- 740730:rtspconnection:如果父源已被銷毀,請不要刪除子源
- 740853:audiodecoder:在發送EOS之前推送待處理事件。
- 740952:alsa:NetBSD修復
- 741045:在某些情況下,audiorate可能會丟失時間戳精度
- 741198:playbin:洩漏GstPads
- GStreamer插件好:
- 711437:apev2mux:不應該在WavPack文件的開頭放置APEv2標籤
- 726194:當捕獲卡有時是隔行掃描時,v4l2src無法很好地處理,有時候會以相同的分辨率進行處理
- 736397:flvdemux:逐流重新同步行為導致A / V-desyncs
- 737603:v4l2bufferpool:當字段為V4L2_FIELD_INTERLACED時設置緩衝區交錯標誌
- 739476:vpx:無法從git 構建libvpx
- 739722:matroskamux:線程安全寄存器GstMatroskamuxPad
- 739789:v4l2allocator:如果分配器已處於活動狀態,則修復錯誤消息
- 739791:當v4l2_allocator_new()失敗時,v4l2bufferpool:unref pool
- 739792:v4l2allocator:修復gst_v4l2_allocator_stop原型
- 739996:videomixer:如果其中一個來源存在,則丟棄很多幀
- 740040:v4l2src:出現V4L2_BUF_FLAG_ERROR時失敗
- 740392:rtspsrc:mikey base64 decode key-mgmt leak
- 740407:qtmux將捕獲限制為4096x4096
- 740633:v4l2src:RW io-mode已損壞
- 740636:v4l2src:並非總是在驅動程序上設置幀速率
- 740671:aspectratiocrop:視頻大小更改時需要重置裁剪
- 740905:v4l2:仍然有1個包含到linux / videodev.h
- 741271:rtph264pay:使用SPS / PPS時H.264 payloader中的緩衝區洩漏
- 741381:rtph264pay:從PAUSED開始競賽條件可能會導致崩潰 - > READY
- 741407:deinterlace:在query_caps中,如果過濾器是隔行掃描的,則僅返回支持的格式
- 737579:v4l2object:為輸出設備設置顏色空間
- 739754:v4l2bufferpool:在排隊之前應驗證所有記憶是否可寫
- GStreamer插件壞:
- 722764:rawparse:修復SEEKING查詢處理
- 729768:mpegtsbase:提升限制以最初讀取更多字節以查找PCR
- 739152:gl / cocoa:使用GNUStep構建失敗
- 740191:dvbbasesink:32位(rpi)上的段錯誤
- 740201:gl / cocoa:不在OSX上編譯&lt; 10.7再一次
- 740451:srtpdec:leaks rtp / rtcp sink events
- 740953:configure.ac:unportable test(1)比較運算符
- 741321:opusparse:修復頭解析esp。 libopus的編碼輸出
- GStreamer RTSP服務器:
- 739481:rtsp-stream:離開rtpbin時洩漏srtp解碼器
版本1.4.4中的新功能:
- 版本1.4.5中修復的錯誤:
- 737498:multiqueue:計算當前級別時不考慮GAP事件
- 737794:multiqueue:如果隊列超出序列化事件則死鎖
- 737999:systemclock:多線程進入狀態問題
- 738198:multiqueue:不在EOS上喚醒未鏈接的流
版本1.4.1中的新功能:
- 1.4版本系列正在添加新功能1.2系列的一部分,是包含新功能的GStreamer多媒體框架的API和ABI-stable 1.x版本系列的一部分。與1.4.0相比,1.4.x錯誤修復版本僅包含重要的錯誤修正。
版本1.4 RC2中的新功能:
- GStreamer團隊很高興地宣布穩定版1.4系列的第二個候選版本。 1.4版本系列在1.0和1.2系列之上添加了新功能,是GStreamer多媒體框架的API和ABI-stable 1.x版本系列的一部分。
- 如果沒有檢測到更大的回歸或更大的問題,並且發布了候選版本的足夠測試,那麼此版本候選版本很快將會出現穩定的1.4.0版本。 1.3版本系列期間添加的新API目前不會再發生變化。
版本1.4 RC1中的新功能:
- 新API:
- GstMessageType已添加GST_MESSAGE_EXTENDED。之前的所有類型都可以像以前一樣用作標記類型,但從該消息開始,類型只是遞增計數。這是必要的,以便能夠添加更多的消息類型。在2.0中,GstMessageType將變為枚舉,而不再是標誌類型。
- 用於設備探測的GstDeviceMonitor,例如列出所有可用的音頻或視頻捕獲設備。這是從0.10替換GstPropertyProbe。
- 事件在通過焊盤行進時累積運行時偏移量,由gst_pad_set_offset()函數設置。例如,這允許在QOS事件中對此進行補償。
- GstBuffer有一個新標誌“tag-memory”在將內存添加或刪除到緩衝區時自動設置。這允許緩衝池檢測它們是否可以回收緩衝區或者需要先重置它。
- GstToc有新的API將GstTocEntries標記為循環。
- 已定義未授權的資源錯誤,以通知應用程序由於缺少授權而訪問資源失敗並將此情況與其他情況區分開來。此更改實際上已在1.2.4中。
- GstPad有一個新標誌“accept-intersect”,它將使默認的ACCEPT_CAPS查詢處理程序執行交集而不是子集檢查。這對於可以處理不完整上限的解析器元素很有意思。
- GstCollectPads現在支持刷新和SEEK事件的默認處理程序。
- 新的GstFlowAggregator輔助對象,簡化了具有多個源焊盤的元素中流返回的處理。此外,GstPad現在總是存儲最後一個流返回並提供一個API來檢索它。
- GstSegment有新的API來將運行時間偏移一個特定值,這在GstPad中用於在所有情況下允許gst_pad_set_offset()中的正負偏移。
- 對codec utils和codec解析器庫中添加了對h265 / HEVC和VP8的支持,並將其集成到各種元素中。
- 已添加用於調整RTSP連接的TLS驗證的API。
- RTSP和SDP庫現在支持MIKEY(RFC 3830),並且有API可以區分不同的RTSP配置文件。
- 用於訪問RTP時間信息和統計信息的API。
- 對rtpbin添加了對輔助流的支持。
- 添加了對平鋪原始視頻格式的支持。
- GstVideoDecoder和GstAudioDecoder有API來幫助聚合標記事件並將自定義標記合併到它們中。
- GstBufferPool現在支持刷新。
- playbin / playsink支持應用程序提供的音頻和視頻過濾器。
- GstDiscoverer有新的和簡化的API,可以獲取有關傳遞給插件安裝程序的缺失插件和信息的詳細信息。
- GL庫從gst-plugins-gl合併到gst-plugins-bad,提供了一個通用的基礎設施,用於處理GStreamer管道中的GL,以及一個包含一些元素的插件,尤其是視頻接收器。支持的平台目前是Android,Cocoa(OS X),DispManX(Raspberry Pi),EAGL(iOS),WGL(Windows)和通用X11,Wayland和EGL平台。這取代了eglglessink,也應該取代osxvideosink。
- gst-plugins-bad中的新GstAggregator基類。這應該在未來取代GstCollectPads並修復其API中的長期存在的缺點。與基類一起提供了一些元素,如視頻混合器(合成器)。
- 主要變化:
- 新的插件和元素:
- v4l2videodec元素,用於訪問可通過V4L2訪問的平台上的硬件編解碼器,例如:三星Exynos。這與現有V4L2元素和相應基礎設施的重大重構相結合。 v4l2videodec元素替換了mfcdec元素。
- 新的downloadbuffer元素,取代了queue2的下載緩衝功能。與queue2的代碼相比,它更簡單,僅適用於這個單一用例。一個值得注意的新功能是,當沒有其他任何內容要下載時,它正在下載已下載的流部分中的空白。啟用下載緩衝時,playbin現在使用它。
- rtpstreampay和rtpstreamdepay元素,用於根據RFC 4571在流API(例如TCP)上傳輸RTP數據包。
- rtprtx元素,用於標準兼容的重傳實現,集成到rtpmanager插件中。
- audiomixer元素,它將多個音頻流混合在一起,同時保持同步。計劃將其替換為加法元素。
- 用於3D相機的OpenNI2插件,如Kinect相機。
- 用於解碼高動態範圍EXR圖像的OpenEXR插件。
- curlsshsink和curlsftpsink通過SSH / SFTP寫文件。
- 從0.10移植的videosignal,ivfparse和sndfile插件。
- avfvideosrc,vtdec和其他元素從0.10開始移植,現在可在OS X和iOS上使用。
- 其他變化:
- gst-libav現在使用libav 10.1,並獲得對H265 / HEVC的支持。
- 通過各種插件和基類中的錯誤修正和功能添加,改進了對硬件編解碼器和特殊內存類型的支持。
- 在queue2和multiqueue元素中緩衝的各種錯誤修正和改進。
- dvbsrc現在支持更多傳送機制和其他功能,包括DVB S2和T2支持。
- MPEGTS庫支持更多描述符。
- 對tsdemux和tsparse的重大改進,特別是時間和尋求相關。
- souphttpsrc現在支持保持活動連接,壓縮,可配置的重試次數以及SSL證書驗證的配置。
- hlsdemux經歷了重大的重構,現在工作更可靠,並支持更多HLS功能,如技巧模式。此外,片段會在下載時向下游推送,而不是等待每個片段完成。
- dashdemux和mssdemux現在也在下載時將片段推送到下游,而不是等待每個片段完成。
- videoflip可以根據方向標籤自動翻轉。
- openjpeg支持OpenJPEG2 API。
- waylandsink被重構,現在應該更有用。它還包括一個小型庫,很可能在將來被刪除,並將導致GstVideoOverlay界面的擴展。
- gst-rtsp-server現在支持SRTP和MIKEY。
- gst-libav編碼器正在與下游通過上限協商任何配置文件/級別設置。
- 在整個地方都有很多關於覆蓋警告的修復。
- 談判相關的績效改進。
- 800多個已修復的錯誤報告,以及其他許多錯誤修復和其他無錯誤報告的改進。
- 需要注意的事項:
- 刪除了eglglessink元素,並用glimagesink元素替換。
- 刪除了mfcdec元素,並替換為v4l2videodec。
- osxvideosink僅適用於OS X 10.6或更高版本。
- 在Android上,用於初始化GStreamer的自動生成的Java類的命名空間已從com.gstreamer更改為org.freedesktop.gstreamer以防止名稱空間污染。
- 在iOS上,如果您之前使用過GnuTLS GIO模塊,則必須從二進製文件中包含的項目更新項目中的gst_ios_init.h和gst_ios_init.m。裝載機制略有變化。
版本1.2.4中的新功能:
- GStreamer核心:
- 724373:當管道暫停時,Queue2會截斷其臨時文件
- 725517:docs:修復拼寫錯誤並刪除未知註釋
- 725809:ghostpad:由於目標板上缺少引用計數而導致罕見崩潰
- 727253:解析:發布tar包中包含的Bison生成的文件導致編譯錯誤
- 727883:baseparse:隊列幀的內存洩漏
- GStreamer插件基地:
- 693263:typefinding:MPEG-2視頻ES檢測為H.263
- 683504:播放鏈接:禁用字幕時死鎖和次優字幕禁用
- 700770:typefinding:mp3文件被誤檢測為h263 video
- 723597:tagdemux:GST_FORMAT_TIME中的Seek事件轉換為BYTES到早期
- 724633:oggdemux:忽略推送模式中的最後一頁
- 724720:rtspconnection:無法以隧道模式斷開/重新連接讀取連接
- 725313:rtspconnection:從不以隧道模式調用closed()回調
- 725644:typefinding:mp3文件被誤檢測為H.263
- 726642:rtspconnection:錯誤處理中的次要內存洩漏
- 727025:adder:重做邏輯以檢查是否必鬚髮送eos。
- GStreamer插件好:
- 725104:qtdemux:反向播放和視頻流切換失敗
- 722185:souphttpsrc:racy“服務器不支持尋求“錯誤
- 724619:讀取pulsesink的設備名稱屬性時崩潰
- 725124:rtspsrc:修復任務創建失敗時的死鎖
- 725712:rtpsession:RTCP FIR收到未知SSRC時崩潰
- 725860:v4l2src:使用v4l2src修復Hauppauge HDPVR視頻捕獲設備
- 726777:rtpjpegpay:有效負載大小未正確計算
- 728017:[回歸] eos事件無法從gstrtpjitterbuffer發出。
- 728041:rtph264depay:輸出avc格式時將所有輸出緩衝區標記為delta單位
- 724638:aacparse:未找到音頻幀時缺少彈性
- 727329:check:souphttpsrc:未知類型名稱'SoupStatus'
- GStreamer插件壞:
- 724013:不要在fluiddec中硬編碼/ usr / share / sounds / sf2路徑
- 725137:hlsdemux:如果有查詢參數,則無法計算媒體播放列表網址
- 725140:hlsdemux:無法正確解析CODECS和RESOLUTION
- GStreamer libav插件:
- 727779:avdec_h264,matroskademux:尋求崩潰(1.2回歸) 版本1.2.2中的
新功能:
- 1.2版本系列正在添加新版本1.0系列之上的功能,是包含新功能的GStreamer多媒體框架的API和ABI-stable 1.x版本系列的一部分。
版本1.2.0中的新功能:
- 新API:
- GstContext協商/共享/宣布用於在元素之間共享通用上下文,例如顯示句柄
- GL紋理上傳轉換元,用於允許將不同的緩衝區類型轉換為OpenGL紋理
- GstCapsFeatures作為GstCaps的擴展,允許在元素之間協商特定的內存或元需求
- 連續和不可映射內存的GstMemory標誌
- stream-start事件現在具有可選標誌,例如用於信令稀疏流
- stream-start甚至現在有一個可選的group-id字段來表示應該一起播放的所有流
- gst-plugins-base中的分配器庫,目前僅支持通用dmabuf內存
- insertbin庫,更易於處理動態鏈接的管道(現在是-bad)
- EGL幫助程序庫(現在是-bad)
- MPEG-TS數據結構庫(現在是-bad)
- 新GstVideoRegionOfInterestMeta描述視頻幀上感興趣的區域。
- GstVideoDecoder / Encoder有new :: flush()vfunc來替換錯誤定義的:: reset()vfunc。
- URI查詢允許立即查詢重定向的URI。
- 主要變化:
- 新工具:gst-plugins-base中的gst-play-1.0,用於在命令行上進行基本回放測試。
- 新插件:
- mssdemux for Microsoft Smooth Streaming
- 用於DASH自適應流媒體協議的dashdemux
- bluez與藍牙設備互動
- 用於JPEG2000解碼和編碼的openjpeg
- daala用於實驗性Daala解碼和編碼
- vpx插件具有實驗性VP9解碼和編碼支持
- 用於WebP解碼的webp插件(稍後要添加的編碼)
- 其他各種:yadif,srtp,sbc,fluidynth,midiparse,mfc,ivtv,accuraterip和audiofxbad
- 移動插件:
- dtmf,vp8rtp,scaletempo和rtpmux插件都在gst-plugins中 - 現在好了
- 視頻:
- 修復視頻處理和視頻轉換等轉換器中隔行掃描視頻的處理(例如,單獨縮放兩個字段)
- videoconvert將在需要轉換時盡量減少質量損失
- 來自gst-plugins-bad中(令人困惑的)libgstbasevideo-1.0庫的實驗性GstSurfaceConverter,GstSurfaceMeta和GstVideoContext API現已被刪除,並被GStreamer Core和gst-plugins-base中的新API取代(見上文) )。由於這就是此庫中的所有內容,因此已從gst-plugins-bad 中刪除了整個實驗性libgstbasevideo-1.0庫。
- 在視頻轉換中更好地處理色度子採樣和色度選址轉換,並且改善了對隔行掃描視頻的支持。
- videotestsrc中的新風車和輪輻圖案
- videomixer現在可以在其水槽上接受不同的視頻格式,並在混合過程中轉換為通用格式
- 音頻:
- audioconvert將在需要轉換時盡量減少質量損失
- adder現在允許對其輸入流進行靜音/取消靜音,也可以按輸入流量 進行靜音/取消靜音
- pulseaudio元素可以在回放期間在設備之間切換
- aacparse可以在ADTS← - > RAW 之間進行轉換
- 平台特定更改:
- 現在,即使在非glibc平台(例如Windows,OSX,Android)上,大寫,事件等也會在GStreamer調試日誌中打印,而不僅僅是指針地址。
- 網絡元素(UDP / TCP)現在可以更好地處理IPv6套接字無法處理IPv4的平台(例如Windows)
- Linux / BSD:v4l2有許多改進和清理
- 其他變化:
- gst-libav現在使用libav 9
- 現在支持插件的靜態鏈接(也在1.0.7中)
- rtspsrc:添加對NetClientClock的支持:當服務器在SDP中建議GstNetTimeProvider時,設置一個從屬於遠程時鐘的GstNetClientClock並在provide_clock中建議這個時鐘。簡化來自RTSP服務器的資源的同步回放。 gst-rtsp-server現在支持將其添加到SDP並可以提供網絡時鐘
- RTP重傳/ NACK支持和大RTP抖動緩衝改進
- SRTP和DTLS支持
- 對許多元素和核心進行更改以使用正確的粘性事件順序,並且在刷新期間也不會丟失任何重要的粘性事件
- &gt; 1000個已修復的錯誤報告,以及其他許多錯誤修復和其他無錯誤報告的改進
- 需要注意的事項:
- 單個標題包括所有庫,例如#include - 這是一些綁定所必需的。
- 在以前不正確的情況下,更嚴格(正確)限制子集檢查。如果子集上限缺少超集上限所具有的某些字段,則上限現在始終無法成為另一組上限的兼容子集。如果上限現在不完整,這可能會導致未協商的錯誤。但是,它還可以防止由於以不兼容/意外方式格式化的管道數據導致某些元素導致的數據損壞。檢查h264上限以獲取流格式和對齊字段以及流格式字段的AAC上限。此更改也將包含在下一個穩定的1.0.8版本中。
- 在某些地方更嚴格地檢查缺失事件並更正粘性事件順序(stream-start,caps,segment);默認情況下,在穩定版本中未啟用此功能,但在使用git版本,開發版本或在CFLAGS中使用-UG_DISABLE_ASSERT進行編譯時,您可能會收到警告
- x264enc現在默認輸出字節流中的數據,如果下游有任何上限(例如沒有設置上限的appsink,filesink,udpsink,tcpserversink等)。
- MPEG TS分路器發布的消息現在包含不同格式的PMT,PAT等。這種新格式使用新MPEGTS庫中的數據結構
- GstContext API已在1.1.4和1.1.90 之間更改
1.1.4版中的新功能:
- 新API:
- GstContext協商/共享/宣布用於在元素之間共享通用上下文,例如顯示句柄
- GL紋理上傳轉換元,用於允許將不同的緩衝區類型轉換為OpenGL紋理
- GstCapsFeatures作為GstCaps的擴展,允許在元素之間協商特定的內存或元需求
- 連續和不可映射內存的GstMemory標誌
- stream-start事件現在具有可選標誌,例如用於信令稀疏流
- stream-start甚至現在有一個可選的group-id字段來表示應該一起播放的所有流
- gst-plugins-base中的分配器庫,目前僅支持通用dmabuf內存
- insertbin庫,更易於處理動態鏈接的管道(現在是-bad)
- EGL幫助程序庫(現在是-bad)
- MPEG-TS數據結構庫(現在是-bad)
- 新GstVideoRegionOfInterestMeta描述視頻幀上感興趣的區域。
- GstVideoDecoder / Encoder有new :: flush()vfunc來替換錯誤定義的:: reset()vfunc。
- URI查詢允許立即查詢重定向的URI。
- 主要變化:
- 新工具:gst-plugins-base中的gst-play-1.0,用於在命令行上進行基本回放測試。
- 新插件:
- mssdemux for Microsoft Smooth Streaming
- 用於DASH自適應流媒體協議的dashdemux
- bluez與藍牙設備互動
- 用於JPEG2000解碼和編碼的openjpeg
- daala用於實驗性Daala解碼和編碼
- vpx插件具有實驗性V9解碼和編碼支持
- 用於WebP解碼的webp插件(稍後要添加的編碼)
- 其他各種:yadif,srtp,sbc,fluidynth,midiparse,mfc,ivtv,accuraterip和audiofxbad
- 移動插件:
- dtmf,vp8rtp,scaletempo和rtpmux插件都在gst-plugins中 - 現在好了
- 視頻:
- 修復視頻處理和視頻轉換等轉換器中隔行掃描視頻的處理(例如,單獨縮放兩個字段)
- videoconvert將在需要轉換時盡量減少質量損失
- 來自gst-plugins-bad中(令人困惑的)libgstbasevideo-1.0庫的實驗性GstSurfaceConverter,GstSurfaceMeta和GstVideoContext API現已被刪除,並被GStreamer Core和gst-plugins-base中的新API取代(見上文) )。由於這就是該庫中的全部內容,因此已從gst-plugins-bad中刪除了整個實驗性libgstbasevideo-1.0庫。
- 在視頻會話中更好地處理色度子採樣和選址轉換
- videotestsrc中的新風車和輪輻圖案
- 音頻:
- adder現在允許對其輸入流進行靜音/取消靜音,也可以按輸入流量 進行靜音/取消靜音
- pulseaudio元素可以在回放期間在設備之間切換
- aacparse可以在ADTS← - > RAW 之間進行轉換
- 平台特定更改:
- 現在,即使在非glibc平台(例如Windows,OSX,Android)上,大寫,事件等也會在GStreamer調試日誌中打印,而不僅僅是指針地址。
- 網絡元素(UDP / TCP)現在可以更好地處理IPv6套接字無法處理IPv4的平台(例如Windows)
- Windows:d3dvideosink為上游元素提供緩衝池
- Linux / BSD:v4l2有許多改進和清理
- 其他變化:
- gst-libav現在使用libav 9
- 現在支持插件的靜態鏈接(也在1.0.7中)
- rtspsrc:添加對NetClientClock的支持:當服務器在SDP中建議GstNetTimeProvider時,設置一個從屬於遠程時鐘的GstNetClientClock並在provide_clock中建議這個時鐘。簡化來自RTSP服務器的資源的同步回放。 gst-rtsp-server現在支持將其添加到SDP並可以提供網絡時鐘
- RTP重傳/ NACK支持和大RTP抖動緩衝改進
- SRTP和DTLS支持
- 對許多元素和核心進行更改以使用正確的粘性事件順序,並且在刷新期間也不會丟失任何重要的粘性事件
- &gt; 1000個已修復的錯誤報告,以及其他許多錯誤修復和其他無錯誤報告的改進
- 需要注意的事項:
- 單個標題包括所有庫,例如#include - 這是一些綁定所必需的。
- 在以前不正確的情況下,更嚴格(正確)限制子集檢查。如果子集上限缺少超集上限所具有的某些字段,則上限現在始終無法成為另一組上限的兼容子集。如果上限現在不完整,這可能會導致未協商的錯誤。但是,它還可以防止由於以不兼容/意外方式格式化的管道數據導致某些元素導致的數據損壞。檢查h264上限以獲取流格式和對齊字段以及流格式字段的AAC上限。此更改也將包含在下一個穩定的1.0.8版本中。
- 在某些地方更嚴格地檢查缺失事件並更正粘性事件順序(stream-start,caps,segment);默認情況下,在穩定版本中未啟用此功能,但在使用git版本,開發版本或在CFLAGS中使用-UG_DISABLE_ASSERT進行編譯時,您可能會收到警告
- x264enc現在默認輸出字節流中的數據,如果下游有任何上限(例如沒有設置上限的appsink,filesink,udpsink,tcpserversink等)。
評論沒有發現