在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【米爾MYD-YT507開發(fā)板試用體驗】使用mjpeg_streamer建立攝像頭圖傳

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-26 15:18 ? 次閱讀

本文來源電子發(fā)燒友社區(qū),作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2294644_1_1.html


在之前的研究中,已經(jīng)實現(xiàn)了米爾MYD-YT507開發(fā)板接入??低?/u>USB攝像頭,并進行攝像頭數(shù)據(jù)的獲取,具體可查看:USB攝像頭使用從入門到放棄

在此基礎(chǔ)上,進一步實現(xiàn)了米爾MYD-YT507開發(fā)提供MJPEG推流,矽速M2 Dock讀取該MJPEG推流,并顯示到屏幕上,其邏輯如下:
M2Dock推流數(shù)據(jù)獲取邏輯.png

最終的效果,可以查看:M2 Dock獲取MJPEG推流數(shù)據(jù)

這篇文章,分享的就是 米爾MYD-YT507開發(fā)板 實現(xiàn)MJPEG推流的部分。

最開始,我嘗試了使用nginx + nginx-rtmp-module模塊,來實現(xiàn)rtmp視頻推流。

具體操作如下:

  1. 安裝nginx,及nginx-rtmp-module模塊:
# Ubuntu18.04操作系統(tǒng)
# 安裝pcre

sudo apt install libpcre3 libpcre3-dev
sudo apt install openssl libssl-dev
sudo apt install zlib1g-dev

# 安裝nginx
wget http://nginx.org/download/nginx-1.22.0.tar.gz
git git clone https://github.com/arut/nginx-rtmp-module
tar -zxvf nginx-1.22.0.tar.gz
cd nginx-1.22.0
./configure --prefix=/usr/local/nginx  --add-module=../nginx-rtmp-module  --with-http_ssl_module
make -j4
sudo make install
  1. 使用ffmpeg獲取攝像頭數(shù)據(jù)并推流:

    ffmpeg -input_format mjpeg -s:v 640x480 -framerate 30 -i /dev/video0 -f flv "rtmp://127.0.0.1:1935/live/test"
    
  2. 使用支持視頻流的播放器,播放流地址(注意IP修改為開發(fā)板實際的IP):rtmp://192.168.1.207:1935/live/test
    ...

在矽速M2 Dock上,使用的開發(fā)環(huán)境是MaixPy。
Python中,對于MJPEG數(shù)據(jù),可以很方便的獲取。
于是又了解了Ubuntu系統(tǒng)下MJPEG推流的資料,使用mjpeg_streamer就能很方便的實現(xiàn)。

具體操作如下:

sudo apt install cmake libjpeg9-dev

git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
make all
sudo make install

mjpg_streamer -i "input_uvc.so -d /dev/video0 -n -r 320x240 -f 10" -o "output_http.so -w ./"

執(zhí)行 mjpg_streamer 后,就會啟動對應的服務(wù):
image.png

然后,通過瀏覽器訪問 http://192.168.2.207:8080/?action=stream 即可:
image.png

提供的MJPEG服務(wù),可以用瀏覽器直接播放,也可以在Python程序中調(diào)用并呈現(xiàn)。
可供測試的代碼如下:

import numpy as np
import platform

if platform.uname().node == "sipeed":
    from io import BytesIO
    from PIL import Image
    from maix import camera, mjpg, utils, display, image
else:
    import cv2

READ_TYPE = "socket"    # url socket

MJPEG_HOST = "192.168.2.207"
MJPEG_PORT = 8080
MJPEG_QUERY = "/?action=stream"


def img_data_show(jpg):
    global img_bytes
    global tmp_file
    global is_sipeed
    global BytesIO
    global Image
    global np
    global image
    global display

    if is_sipeed:
        if True:
            bytes_stream = BytesIO(jpg)
            pimg = Image.open(bytes_stream)
            img = image.load(pimg)
            display.show(img)
        else:
            with open(tmp_file, "wb") as binary_file:
                binary_file.write(jpg)
                img = image.open(tmp_file)
                display.show(img)
    else:
        img = cv2.imdecode(np.frombuffer(
            jpg, dtype=np.uint8), cv2.IMREAD_COLOR)
        cv2.imshow('i', img)
        if cv2.waitKey(1) == 27:
            exit(0)


def img_data_match(chunk):
    global img_bytes
    global tmp_file
    global is_sipeed
    global BytesIO
    global Image
    global np
    global image
    global display
    global img_data_show

    img_bytes += chunk
    a = img_bytes.find(b'xffxd8')
    b = img_bytes.find(b'xffxd9')
    if a != -1 and b != -1:
        jpg = img_bytes[a:b+2]
        img_bytes = img_bytes[b+2:]
        img_data_show(jpg)     


img_bytes = b''
tmp_file = "/tmp/test.jpg"
is_sipeed = platform.uname().node == "sipeed"

print("Connect to %s:%d with %s on %s" % (MJPEG_HOST, MJPEG_PORT, READ_TYPE, platform.uname().node))

if READ_TYPE == "url":
    import requests

    MJPEG_URL = "http://%s:%s%s" % (MJPEG_HOST, MJPEG_PORT, MJPEG_QUERY)

    r = requests.get(MJPEG_URL, stream=True)
    if(r.status_code == 200):
        print("connect success!")
        for chunk in r.iter_content(chunk_size=1024):
            img_data_match(chunk)
    else:
        print("Received unexpected status code {}".format(r.status_code))
elif READ_TYPE == "socket":
    import socket

    client = socket.socket()  # 創(chuàng)建socket套接字
    ret = client.connect((MJPEG_HOST, MJPEG_PORT))  # 狀態(tài)位,判定是否連接成功
    request_url = "GET %s HTTP/1.1rnHost:%srnConnection:Closernrn" % (
        MJPEG_QUERY, MJPEG_HOST)

    if(ret == -1):  # 連接失敗,退出程序
        print("connet error!")
        exit(-1)
    else:  # 連接成功
        print("connect success!")

    client.send(request_url.encode())  # 發(fā)送socket請求,開始接收數(shù)據(jù)
    chunk = client.recv(1024)  # 第一個recv返回信息,跟圖片無關(guān)
    chunk = client.recv(1024)  # 這個信息開始跟圖片有關(guān)系,放到接收變量里
    while chunk:  # 判斷是否還有信息
        img_data_match(chunk)
        chunk = client.recv(1024)  # 繼續(xù)接收

電腦上,將上述代碼保存為mjpeg_display_demo.py,并修改代碼中MJPEG_HOST為實際的開發(fā)板ip地址,然后使用python mjpeg_display_demo.py運行,就能查看顯示了。

如果上述代碼運行在矽速M2 Dock中,那么對應的效果就是顯示到屏幕上了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 米爾科技
    +關(guān)注

    關(guān)注

    5

    文章

    227

    瀏覽量

    21514
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    有獎丨米爾 瑞芯微RK3506開發(fā)板免費試用

    米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3506應用處理器的MYD-YR3506開發(fā)板免費試用名額來啦~~米爾提供了3塊價值299元的
    的頭像 發(fā)表于 06-19 08:04 ?83次閱讀
    有獎丨<b class='flag-5'>米爾</b> 瑞芯微RK3506<b class='flag-5'>開發(fā)板</b>免費<b class='flag-5'>試用</b>

    基于米爾全志T536開發(fā)板的多協(xié)議物聯(lián)網(wǎng)關(guān)的方案測試

    本文將介紹基于米爾電子MYD-LT536開發(fā)板米爾基于全志T536開發(fā)板)的多協(xié)議物聯(lián)網(wǎng)關(guān)方案的開發(fā)
    的頭像 發(fā)表于 06-19 08:03 ?191次閱讀
    基于<b class='flag-5'>米爾</b>全志T536<b class='flag-5'>開發(fā)板</b>的多協(xié)議物聯(lián)網(wǎng)關(guān)的方案測試

    有獎丨米爾 瑞芯微RK3562開發(fā)板免費試用新增名額!

    米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3562應用處理器的MYD-YR3562開發(fā)板免費試用名額增加
    的頭像 發(fā)表于 06-13 08:04 ?132次閱讀
    有獎丨<b class='flag-5'>米爾</b> 瑞芯微RK3562<b class='flag-5'>開發(fā)板</b>免費<b class='flag-5'>試用</b>新增名額!

    有獎丨米爾 NXP i.MX91開發(fā)板免費試用來啦

    米爾與NXP合作發(fā)布的新品基于NXPi.MX91應用處理器的MYD-LMX91開發(fā)板免費試用名額來啦~~米爾提供了3套價值588元的
    的頭像 發(fā)表于 06-05 08:02 ?367次閱讀
    有獎丨<b class='flag-5'>米爾</b> NXP i.MX91<b class='flag-5'>開發(fā)板</b>免費<b class='flag-5'>試用</b>來啦

    如何用OpenCV的相機捕捉視頻進行人臉檢測--基于米爾NXP i.MX93開發(fā)板

    本文將介紹基于米爾電子MYD-LMX93開發(fā)板米爾基于NXPi.MX93開發(fā)板)的基于OpenCV的人臉檢測方案測試。OpenCV提供了一
    的頭像 發(fā)表于 04-15 11:51 ?285次閱讀
    如何用OpenCV的相機捕捉視頻進行人臉檢測--基于<b class='flag-5'>米爾</b>NXP i.MX93<b class='flag-5'>開發(fā)板</b>

    【幸狐Omni3576邊緣計算套件試用體驗】測試USB 攝像頭

    (一)啟動攝像頭 直接輸入 mjpg_streamer 即可啟動服務(wù),默認的是video0,Omni3576開發(fā)板的USB攝像頭是video45。在啟動服務(wù)命令中通過“-d /dev
    發(fā)表于 04-09 23:50

    免費丨米爾 STM32MP257開發(fā)板有獎試用

    米爾與ST合作發(fā)布的新品基于STM32MP257應用處理器的MYD-LD25X開發(fā)板免費試用活動來啦~~米爾提供了2塊價值488元的
    的頭像 發(fā)表于 03-20 08:05 ?397次閱讀
    免費丨<b class='flag-5'>米爾</b> STM32MP257<b class='flag-5'>開發(fā)板</b>有獎<b class='flag-5'>試用</b>

    有獎丨米爾 瑞芯微YR3562開發(fā)板免費試用

    米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3562應用處理器的MYD-YR3562開發(fā)板免費試用活動來啦~~米爾提供了3塊價值599元的
    的頭像 發(fā)表于 03-20 08:05 ?469次閱讀
    有獎丨<b class='flag-5'>米爾</b> 瑞芯微YR3562<b class='flag-5'>開發(fā)板</b>免費<b class='flag-5'>試用</b>

    米爾瑞芯微RK3576實測輕松搞定三屏八攝像頭

    推出的MYD-LR3576開發(fā)板開發(fā)了一個三屏異顯,8路攝像頭輸入的DEMO, 實測下來,RK3576輕松搞定了該任務(wù)。 MYD-LR357
    發(fā)表于 01-17 11:33

    RK3576有多強?實測三屏八攝像頭輕松搞定

    MYD-LR3576開發(fā)板開發(fā)了一個三屏異顯,8路攝像頭輸入的DEMO,實測下來,RK3576輕松搞定了該任務(wù)。MYD-LR3576
    的頭像 發(fā)表于 01-16 08:06 ?576次閱讀
    RK3576有多強?實測三屏八<b class='flag-5'>攝像頭</b>輕松搞定

    有獎丨米爾 全志T536開發(fā)板免費試用

    米爾與全志合作發(fā)布的新品基于全志T536應用處理器的MYD-LT536-GK開發(fā)板免費試用活動來啦~~米爾提供了3塊價值750元的
    的頭像 發(fā)表于 12-26 08:05 ?797次閱讀
    有獎丨<b class='flag-5'>米爾</b> 全志T536<b class='flag-5'>開發(fā)板</b>免費<b class='flag-5'>試用</b>

    如何用OpenCV進行手勢識別--基于米爾全志T527開發(fā)板

    本文將介紹基于米爾電子MYD-LT527開發(fā)板米爾基于全志T527開發(fā)板)的OpenCV手勢識別方案測試。摘自優(yōu)秀創(chuàng)作者-小火苗
    的頭像 發(fā)表于 12-13 08:04 ?1275次閱讀
    如何用OpenCV進行手勢識別--基于<b class='flag-5'>米爾</b>全志T527<b class='flag-5'>開發(fā)板</b>

    追加名額丨米爾瑞芯微RK3576開發(fā)板有獎試用

    米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應用處理器的MYD-LR3576開發(fā)板免費試用活動加碼啦~~米爾追加了2塊價值849元的
    的頭像 發(fā)表于 11-22 01:00 ?578次閱讀
    追加名額丨<b class='flag-5'>米爾</b>瑞芯微RK3576<b class='flag-5'>開發(fā)板</b>有獎<b class='flag-5'>試用</b>

    有獎丨米爾 瑞芯微RK3576開發(fā)板免費試用

    米爾與瑞芯微合作發(fā)布的新品基于瑞芯微RK3576應用處理器的MYD-LR3576開發(fā)板免費試用活動來啦~~米爾提供了7塊價值849元的
    的頭像 發(fā)表于 11-12 01:00 ?722次閱讀
    有獎丨<b class='flag-5'>米爾</b> 瑞芯微RK3576<b class='flag-5'>開發(fā)板</b>免費<b class='flag-5'>試用</b>

    基于OPENCV的相機捕捉視頻進行人臉檢測--米爾NXP i.MX93開發(fā)板

    本文將介紹基于米爾電子MYD-LMX93開發(fā)板米爾基于NXPi.MX93開發(fā)板)的基于OpenCV的人臉檢測方案測試。OpenCV提供了一
    的頭像 發(fā)表于 11-07 09:03 ?1435次閱讀
    基于OPENCV的相機捕捉視頻進行人臉檢測--<b class='flag-5'>米爾</b>NXP i.MX93<b class='flag-5'>開發(fā)板</b>
    主站蜘蛛池模板: 狠狠干天天爽 | 男人视频网站 | 亚洲综合资源 | 欧美黄色录像 | 操干| 三级免费观看 | 天天摸日日摸 | 国产午夜免费视频片夜色 | 午夜精品久久久久久99热 | 在线视免费频观看韩国aaa | 日韩美毛片 | 欧美三级免费看 | 日本一卡二卡≡卡四卡精品 | 亚洲综合色色图 | 亚洲色图25p | 夜夜做夜夜爽 | 一级视频在线免费观看 | 色综合一区 | 熊出没之环球大冒险旧版免费观看 | 六九视频在线观看 | 日韩免费精品视频 | 亚洲午夜一区 | 在线毛片网站 | 97人人模人人揉人人捏 | 欧美日韩a| 国产―笫一页―浮力影院xyz | 国产美女叼嘿视频免费看 | 亚洲 欧美 另类 吹潮 | yellow中文字幕久久网 | 亚洲高清日韩精品第一区 | 成人黄色激情网 | 国产图片区 | 在线观看亚洲成人 | 天天综合色天天桴色 | 手机免费看大片 | 开心综合网 | 国产精品美女一区二区三区 | 四虎国产精品4hu永久 | 成人三级视频 | 欧美一级特黄乱妇高清视频 | 色欲麻豆国产福利精品 |