11.26 明白了以下5點思路,你也能用Python實現直播推流效果(技術活)

今天為大家帶來的內容是:明白了以下5點思路,你也能用Python實現直播推流效果(技術活)

本文內容主要介紹了Python實現直播推流效果,主要是通過opencv讀取視頻對視頻分割為幀,本文通過實例代碼講解的非常詳細,具有一定的參考借鑑價值,需要的朋友可以參考下!

開始之前我們先來看看效果圖:

明白了以下5點思路,你也能用Python實現直播推流效果(技術活)

思路概括:

  1. opencv讀取視頻
  2. 將視頻分割為幀
  3. 對每一幀進行處理(opencv模板匹配)
  4. 在將此幀寫入pipe管道
  5. 利用ffmpeg進行推流直播

中間遇到的問題

在處理本地視頻時,並沒有延時卡頓的情況。但對實時視頻流的時候,出現了卡頓延時的效果。在一頓度娘操作之後,採取了多線程的方法。

opencv讀取視頻

明白了以下5點思路,你也能用Python實現直播推流效果(技術活)

OpenCV模板匹配

模板匹配就是在一幅圖像中尋找一個特定目標的方法之一,這種方法的原理非常簡單,遍歷圖像中每一個可能的位置,比較各處與模板是否相似,當相似度足夠高時,就認為找到了目標。

明白了以下5點思路,你也能用Python實現直播推流效果(技術活)

嗨嘍:正在學習python的小夥伴或者打算學習的,可以私信小編“07”領取資料!

FFmpeg推流

在Ubuntu 14 上安裝 Nginx-RTMP 流媒體服務器(感興趣的可以私信我拿地址)

明白了以下5點思路,你也能用Python實現直播推流效果(技術活)

明白了以下5點思路,你也能用Python實現直播推流效果(技術活)

提示:沒有文字分割的代碼圖是一張圖(代碼塊太長只能分批展示出來)

以上說明:rtmp是要接受視頻的服務器,服務器按照上面所給連接地址即可。

多線程處理

明白了以下5點思路,你也能用Python實現直播推流效果(技術活)

明白了以下5點思路,你也能用Python實現直播推流效果(技術活)

提示:沒有文字分割的代碼圖是一張圖(代碼塊太長只能分批展示出來)

以上做出說明:使用Python3自帶的多線程模塊mutilprocessing模塊,創建一個隊列,線程A從通過rstp協議從視頻流中讀取出每一幀,並放入隊列中,線程B從隊列中將圖片取出,處理後進行顯示。線程A如果發現隊列裡有兩張圖片,即線程B的讀取速度跟不上線程A,那麼線程A主動將隊列裡面的舊圖片刪掉,換新圖片。

總結

以上所述內容就是給大家介紹的Python實現直播推流效果,希望對大家有所幫助,如果大家有任何疑問請給我留言。

最後多說一句,小編是一名python開發工程師,這裡有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、數據分析、數據可視化、機器學習等。想要這些資料的可以關注小編,並在後臺私信小編:“07”即可領取。


分享到:


相關文章: