亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

FFmpeg 將視頻從幀 OpenCV python 流式傳輸到 rtmp

FFmpeg 將視頻從幀 OpenCV python 流式傳輸到 rtmp

慕碼人8056858 2023-02-22 15:27:39
在 indistural 項目的背景下,我開發了一個實時應用程序來檢測帶有 AI 算法的人。在本地,我獲取并顯示帶有 OPENCV 操作幀的視頻。目標是實現從Opencv幀到rtmp服務器的流視頻FFmpeg 似乎是一個很好的視角。但是,通常流從 .mp4 或幾個 .jpg 開始在 rtmp 服務器上發布流視頻。謝謝。
查看完整描述

1 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

首先,ffmpeg 具有將流推送到 rtmp 服務器的功能。您可以嘗試為 ffmpeg cammand 創建一個子進程,并通過 PIPE 傳遞您的幀。


這是您可以嘗試的簡單示例代碼


import subprocess

import cv2

rtmp_url = "rtmp://127.0.0.1:1935/stream/pupils_trace"


# In my mac webcamera is 0, also you can set a video file name instead, for example "/home/user/demo.mp4"

path = 0

cap = cv2.VideoCapture(path)


# gather video info to ffmpeg

fps = int(cap.get(cv2.CAP_PROP_FPS))

width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))

height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))


# command and params for ffmpeg

command = ['ffmpeg',

           '-y',

           '-f', 'rawvideo',

           '-vcodec', 'rawvideo',

           '-pix_fmt', 'bgr24',

           '-s', "{}x{}".format(width, height),

           '-r', str(fps),

           '-i', '-',

           '-c:v', 'libx264',

           '-pix_fmt', 'yuv420p',

           '-preset', 'ultrafast',

           '-f', 'flv',

           rtmp_url]


# using subprocess and pipe to fetch frame data

p = subprocess.Popen(command, stdin=subprocess.PIPE)



while cap.isOpened():

    ret, frame = cap.read()

    if not ret:

        print("frame read failed")

        break


    # YOUR CODE FOR PROCESSING FRAME HERE


    # write to pipe

    p.stdin.write(frame.tobytes())


查看完整回答
反對 回復 2023-02-22
  • 1 回答
  • 0 關注
  • 466 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號