摘要 在很多情況下,我們需要對GStreamer創建的Pipeline進行調試,來了解其運行機制以解決所遇到的問題。為此,GStreamer提供了相應的調試機制,方便我們快速定位問題。 查看調試日志 使用GST_DEBUG環境變量查看日志 GStreamer框架以及其插件提供 ...
摘要 我們把直接從網絡播放一個媒體文件的方式稱為在線播放 Online Streaming ,我們已經在以往的例子中體驗了GStreamer的在線播放功能,當我們指定播放URI為 http: 時,GStreamer內部會自動通過網絡獲取媒體數據。在今天的示例中,我們將進一步了解如何處理由網絡問題導致的視頻緩沖及時鍾丟失的問題。 在線播放 在我們進行在線播放時,我們會將收到的媒體數據立即進行解碼並送 ...
2019-10-30 10:14 0 810 推薦指數:
摘要 在很多情況下,我們需要對GStreamer創建的Pipeline進行調試,來了解其運行機制以解決所遇到的問題。為此,GStreamer提供了相應的調試機制,方便我們快速定位問題。 查看調試日志 使用GST_DEBUG環境變量查看日志 GStreamer框架以及其插件提供 ...
摘要 GStreamer框架會自動處理多線程的邏輯,但在某些情況下,我們仍然需要根據實際的情況自己將部分Pipeline在單獨的線程中執行,本文將介紹如何處理這種情況。 GStreamer多線程 GStreamer框架是一個支持多線程的框架,線程會根據Pipeline的需要自動創建 ...
摘要 在面對一個新的軟件庫時,第一步通常實現一個“hello world”程序,來了解庫的用法。對於GStreamer,我們可以實現一個極簡的播放器,來了解GStreamer的使用。 環境配置 為了快速掌握Gstreamer相關的知識,我們優先選擇Ubuntu作為我們的開發環境 ...
摘要 在 Gstreamer基礎教程01 - Hello World中,我們介紹了如何快速的通過一個字符串創建一個簡單的pipeline。為了能夠更好的控制pipline中的element,我們需要單獨創建element,然后再構造pipeline,下面將介紹GStreamer的一些基本概念 ...
摘要 在我們前面的文章中,我們的Pipline都是使用GStreamer自帶的插件去產生/消費數據。在實際的情況中,我們的數據源可能沒有相應的gstreamer插件,但我們又需要將數據發送到GStreamer Pipeline中。GStreamer為我們提供了Appsrc以及Appsink插件 ...
摘要 通常我們的播放引擎需要和GUI進行集成,在使用GStreamer時,GStreamre會負責媒體的播放及控制,GUI會負責處理用戶的交互操作以及創建顯示的窗口。本例中我們將結合QT介紹如何指定GStreamer將視頻輸出到指定窗口,以及如何利用GStreamer上報的信息去更新GUI ...
摘要 在常見的媒體播放器中,通常可以看到快進,快退,慢放等功能,這部分功能被稱為“特技模式(Trick Mode)”,這些模式有個共同點:都通過修改播放的速率來達到相應的目的。 本文將介紹如何通過GStreamer去實現快進,快退,慢放以及單幀播放。 GStreamer Seek ...
摘要 在以前的文章中,我們了解到了2種播放文件的方式:一種是在知道了文件的類型及編碼方式后,手動創建所需Element並構造Pipeline;另一種是直接使用playbin,由playbin內部動態 ...