国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

樹莓派Python+ffmpeg+opencv實(shí)現(xiàn)推流 并 解決報錯:BrokenPipeError: [Errno 32] Broken pipe

這篇具有很好參考價值的文章主要介紹了樹莓派Python+ffmpeg+opencv實(shí)現(xiàn)推流 并 解決報錯:BrokenPipeError: [Errno 32] Broken pipe。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。


一、問題描述

??最近在用ffmpeg+Python opencv 的方法實(shí)現(xiàn)采集攝像頭實(shí)時視頻并完成推流。實(shí)現(xiàn)思路是:cv2先獲取攝像頭視頻數(shù)據(jù),然后建立一個subprocess.popen管道去推流,然后將視頻幀處理完后寫入管道中完成圖像處理并推流的工作。在windows下調(diào)試可以正常實(shí)現(xiàn),代碼如下(這個網(wǎng)上很多,我把我調(diào)試成功的代碼也貼出來)。但是我想要在樹莓派上實(shí)現(xiàn),將該部分代碼移植到樹莓派上后就出現(xiàn)報錯:pipe.stdin.write(img.tostring()) BrokenPipeError: [Errno 32] Broken pipe?,F(xiàn)象是:代碼剛跑起來,剛顯示一兩幀畫面就中斷了。

import cv2
import subprocess
 
# 視頻讀取對象
cap = cv2.VideoCapture(0,cv2.CAP_DSHOW)

# 推流地址
rtsp = "rtsp://192.168.1.100:554/live/test1"# 推流的服務(wù)器地址

# 設(shè)置推流的參數(shù)
command = ['ffmpeg',
           '-y',
           '-f', 'rawvideo',
           '-vcodec', 'rawvideo',
           '-pix_fmt', 'bgr24',
           '-s', '640*480',  # 根據(jù)輸入視頻尺寸填寫
           '-r', '30',
           '-i', '-',
           '-c:v', 'h264',
           '-pix_fmt', 'yuv420p',
           '-preset', 'ultrafast',
           '-f', 'rtsp',
           rtsp]

# 創(chuàng)建、管理子進(jìn)程
pipe = subprocess.Popen(command,shell=True, stdin=subprocess.PIPE)
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))

# 循環(huán)讀取
num = 0
while cap.isOpened():
    num = num + 1
    print(num)
    # 讀取一幀
    ret, frame = cap.read()
    if frame is None:
        print('read frame err!')
        continue
 
    # 顯示一幀
    fps = int(cap.get(cv2.CAP_PROP_FPS))
    cv2.imshow("frame", frame)
    print("fps:",fps)
 
    # 按鍵退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
 
    # 讀取尺寸、推流
    img = cv2.resize(frame, size)
 
    pipe.stdin.write(img.tobytes())

# 關(guān)閉窗口
cv2.destroyAllWindows()
 
# 停止讀取
cap.release()

二、問題解決

1.找到問題

??從別人的帖子里發(fā)現(xiàn)可以用pipe.poll()來檢查當(dāng)前popen的工作狀態(tài),如果然后0,表示進(jìn)程正常結(jié)束,返回1表示進(jìn)程sleep掛起,返回2,表示子進(jìn)程不存在,返回-15表示進(jìn)程被kill,返回None,表示進(jìn)程正在在運(yùn)行。我print之后發(fā)現(xiàn),返回了1,所以預(yù)估應(yīng)該是,在樹莓派上和windows上的popen創(chuàng)建方法有差別,在樹莓派這里popen剛開始工作就被掛起了,終于找到解決辦法。
python opencv 推流,樹莓派,python學(xué)習(xí),Linux,python,ffmpeg,opencv,樹莓派

2.解決辦法

??嘗試了一下,將創(chuàng)建popen的shell = True 改為 shell = False就可以了。
將如下代碼,

pipe = subprocess.Popen(command,shell=True, stdin=subprocess.PIPE)

??改為

pipe = subprocess.Popen(command,shell=False, stdin=subprocess.PIPE)

??即可文章來源地址http://www.zghlxwxcb.cn/news/detail-608111.html

到了這里,關(guān)于樹莓派Python+ffmpeg+opencv實(shí)現(xiàn)推流 并 解決報錯:BrokenPipeError: [Errno 32] Broken pipe的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python工具方法 45 基于ffmpeg以面向?qū)ο蠖嗑€程的方式實(shí)現(xiàn)實(shí)時推流

    python工具方法 45 基于ffmpeg以面向?qū)ο蠖嗑€程的方式實(shí)現(xiàn)實(shí)時推流

    參考基于ffmpeg模擬監(jiān)控?cái)z像頭輸出rtsp視頻流并opencv播放 實(shí)現(xiàn)視頻流的推流。 其基本操作就是,安裝視頻流推流服務(wù)器,ffmpeg,準(zhǔn)備好要推流的視頻。 命令如下所示: ffmpeg -re -stream_loop -1 -i 風(fēng)景視頻素材分享.flv -c copy -f rtsp rtsp://127.0.0.1:554/input 其中 風(fēng)景視頻素材分享.flv 為

    2024年02月20日
    瀏覽(16)
  • 利用ffmpeg實(shí)現(xiàn)rtmp推流

    利用ffmpeg實(shí)現(xiàn)rtmp推流

    http://ffmpeg.org/ 官方下載鏈接為:http://ffmpeg.org/ cmd進(jìn)入ffmpeg.exe所在目錄 輸入下面的語句即可列出電腦的設(shè)備 ffmpeg -list_devices true -f dshow -i dummy ffmpeg -list_devices true -f dshow -i dummy 可以看到我電腦里面有USB2.0 PC CAMERA攝像頭和一個亂碼的麥克風(fēng) 如果設(shè)備名稱有中文,會出現(xiàn)亂碼,想

    2024年02月13日
    瀏覽(23)
  • FFmpeg 實(shí)現(xiàn)無間斷推流

    FFmpeg 實(shí)現(xiàn)無間斷推流

    FFmpeg是一個強(qiáng)大的跨平臺多媒體處理工具,可以用來進(jìn)行音視頻編碼、解碼、轉(zhuǎn)碼、過濾和流媒體處理等操作。下面介紹一下如何使用FFmpeg實(shí)現(xiàn)無間斷推流: 1、使用參數(shù)-re實(shí)現(xiàn)實(shí)時推流 在FFmpeg中,參數(shù)\\\"-re\\\"表示以實(shí)時模式推流。使用該參數(shù)時,F(xiàn)Fmpeg會盡可能快地讀取源文件

    2024年02月11日
    瀏覽(39)
  • 樹莓派4b安裝opencv4.6.0并開啟ffmpeg視頻加速(2022.10.27)

    按ctrl + o ,enter保存,ctrl + x 關(guān)閉; 將以下內(nèi)容寫入配置文件(為pip配置阿里和豆瓣源):(保存并退出同上)

    2023年04月16日
    瀏覽(24)
  • 【樹莓派】USB攝像頭+python+opencv
六、報錯:python Non-ASCII character '\xe5' in file

    【樹莓派】USB攝像頭+python+opencv 六、報錯:python Non-ASCII character '\xe5' in file

    插入usb攝像頭,在命令行模式下輸入? ? ? ? lsusb? ? ? ?? 如果看到列舉出來的信息有camera的話就說明識別成功,可以使用。 1、拍照測試 安裝 fswebcam 輸入以下命令,開啟攝像頭 2、錄像測試 安裝 luvcview 輸入以下命令,開啟攝像頭 如果發(fā)現(xiàn)安裝的是python3的話就需要把pyth

    2024年02月05日
    瀏覽(18)
  • 利用ffmpeg實(shí)現(xiàn)rtmp推流直播

    利用ffmpeg實(shí)現(xiàn)rtmp推流直播

    我們這次利用ffmpeg實(shí)現(xiàn)rtmp推流(最終推流地址統(tǒng)一為rtmp://127.0.0.1:1935/live/123) 1.首先下載ffmpeg和ffplay 官方下載鏈接為:FFmpeg 下載后開始配置環(huán)境變量: 系統(tǒng)屬性-環(huán)境變量-path-添加ffmpeg/bin的路徑; 打開命令窗口,輸入ffmpeg,檢測是否配置成功 ?以上代表正常安裝配置(這一步很簡單

    2023年04月08日
    瀏覽(23)
  • 【rtsp推流】rtsp服務(wù)器+ffmpeg+Python+VLC

    【rtsp推流】rtsp服務(wù)器+ffmpeg+Python+VLC

    本地?cái)z像頭實(shí)時監(jiān)控/mp4視頻文件 通過rtsp服務(wù)器轉(zhuǎn)為rtsp地址 通過VLC將rtsp地址傳入Python Python檢測并標(biāo)記好檢測框(人臉識別/是否佩戴口罩) 通過ffmpeg推流,拋出一個新的rtsp地址 VLC即可訪問新的rtsp地址 Python接收rtsp地址 1. 系統(tǒng) 2. 查看本機(jī)設(shè)備規(guī)格和WIndows規(guī)格 1. 下載 ① 官

    2024年02月16日
    瀏覽(25)
  • windows環(huán)境下實(shí)現(xiàn)ffmpeg本地視頻進(jìn)行rtsp推流

    windows環(huán)境下實(shí)現(xiàn)ffmpeg本地視頻進(jìn)行rtsp推流

    摘要:有時候服務(wù)端(如linux)或者邊緣端(jetson盒子)需要接受攝像頭的視頻流輸入,而攝像頭的輸入視頻流一般為rtsp,測試時需要搭建攝像頭環(huán)境,很不方便,因此需要對本地視頻進(jìn)行rtsp推流,模擬攝像頭的rtsp輸入。 本地使用windows10, 64位 rtsp下載地址:https://github.com

    2024年04月13日
    瀏覽(23)
  • 使用 ffmpeg-python+命名管道進(jìn)行圖片轉(zhuǎn)視頻或推流

    命名管道(Named Pipe),也被稱為FIFO,是一種在UNIX、Linux和類Unix系統(tǒng)中用于實(shí)現(xiàn)進(jìn)程間通信(IPC)的機(jī)制。在Python中,我們可以使用 os 模塊來創(chuàng)建和操作命名管道。 命名管道實(shí)際上是個特殊的文件,需要先創(chuàng)建 讀寫前后需要打開關(guān)閉 ffmpeg從命名管道輸入源的方法與普通文件

    2024年04月16日
    瀏覽(22)
  • Python進(jìn)行ffmpeg推流和拉流rtsp、rtmp + AI模型推理

    Python進(jìn)行ffmpeg推流和拉流rtsp、rtmp + AI模型推理

    流媒體協(xié)議,英文學(xué)名Streaming Protocol,用一句人話來解釋:流媒體協(xié)議是一種用于通過 Web 傳遞多媒體的協(xié)議。 傳統(tǒng)視頻流協(xié)議:RTMP和RTSP ,其中 RTMP 是基于 TCP 開發(fā)的,那么 RTSP 使用到了 UDP 。 底層協(xié)議:TCP 視頻編解碼器: H.264 音頻編解碼器:AAC 延遲:3 - 30 秒 RTMP 的最大

    2024年02月06日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包