91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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

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

3天內不再提示

如何移植視頻流服務器

xCb1_yikoulinux ? 來源:一口Linux ? 作者:土豆居士 ? 2022-07-26 12:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

彭老師在錄制的《物聯網綜合項目實戰》課程中,在web頁面中加入了實時監控攝像頭的功能,特地整理了一篇如何移植視頻流服務器的文章,供大家學習。

953a35f6-0c95-11ed-ba43-dac502259ad0.png

一、嵌入式視頻圖像開源庫

嵌入式系統中,常用的視頻圖像處理開源系統有:luvcview、cheese、motion、mjpg-streamer或者ffmpeg,其中:

?luvcview: 基于V4L2、SDL的程序,支持拍照錄像,參數調節,代碼精簡實用,適合學習V4L2編程

?cheese:基于V4L2、GTK的程序,支持拍照錄像,特殊視頻效果

?motion:移動偵測拍照程序

?mjpg-streamer:網絡攝像機程序

二、mjpg-streamer簡介

MJPG-streamer是一個優秀的開源project,它可以通過HTTP的方式訪問linux上面的兼容攝像頭,從而做到遠程視頻傳輸的效果。

MJPG-streamer從webcam攝像頭采集圖像,把他們以流的形式通過基于ip的網絡傳輸到瀏覽器如Firehox,Cambozola,VLC播放器,Windows的移動設備或者其他擁有瀏覽器的移動設備。

它可以利用某些webcams的硬件壓縮功能來降低服務器CPU的開銷。

它為嵌入式設備和一些常規服務器提供了一個輕量且更少CPU消耗的方案,因為它無需為視頻幀壓縮浪費大量的計算效率。

三、測試攝像頭

9554a58a-0c95-11ed-ba43-dac502259ad0.png

1)按上圖的方式將羅技攝像頭連接入虛擬機

2)下載安裝cheese 檢測攝像頭是否能夠正常工作

$sudoapt-getupdate
$sudoapt-getinstallcheese

ubuntu 16.04已經自帶該程序

3)測試

攝像頭連接后會生成以下設備文件

root@ubuntu:/home/peng/work#ls/dev/video0-l
crw-rw----+1rootvideo81,0Mar2507:18/dev/video0

運行

root@ubuntu:/home/peng/work#cheese
9587d248-0c95-11ed-ba43-dac502259ad0.png

四、移植

安裝準備:

1. 安裝前準備

sudoapt-getinstalllibsdl1.2-devsubversion
sudoapt-getinstalllibjpeg62-dev
sudoapt-getinstallimagemagick

2. 下載mjpeg-streamer

gitclonehttps://github.com/shrkey/mjpg-streamer

如果沒有安裝git,執行以下命令

sudoapt-getinstallgit

3. 編譯安裝

cdmjpg-streamer/mjpg-streamer
95bb38fe-0c95-11ed-ba43-dac502259ad0.png
root@ubuntu:/home/peng/work/camera/mjpg-streamer#tree-L1./
./
├──doc
├──mjpeg-client#分別有linux和windows的客戶端
├──mjpg-streamer#目錄下提供了的執行程序和各個輸入輸出設備組件
├──mjpg-streamer-experimental
├──mjpg-streamer.tar.gz
├──README.md
├──udp_client
└──uvc-streamer#目錄下提供了uvc-streamer的可執行目錄

6directories,2files

ps:重新編譯前,需要執行

make
sudomakeinstall
root@ubuntu:/home/peng/work/camera/mjpg-streamer/mjpg-streamer#makeinstall
install--mode=755mjpg_streamer/usr/local/bin
install--mode=644input_uvc.sooutput_file.sooutput_udp.sooutput_http.soinput_testpicture.soinput_file.so/usr/local/lib/
install--mode=755-d/usr/local/www
install--mode=644-Dwww/*/usr/local/www

95dd6bd6-0c95-11ed-ba43-dac502259ad0.png

編譯生成的庫文件功能

(1)input_testpicture.so。這是一個圖像測試插件,它將預設好的圖像編譯成一個頭文件,可以在沒有攝像頭的情況下傳輸圖像,從而方便調試程序。

(2)input_uvc.so。此文件調用USB攝像頭驅動程序V4L2,從攝像頭讀取視頻數據。

(3)input_control.so。這個文件實現對攝像頭轉動的控制接口。

(4)output_http.so。這是一個功能齊全的網站服務器,它不僅可以從單一文件夾中處理文件,還可以執行一定的命令,它可以從輸入插件中處理一幅圖像,也可以將輸入插件的視頻文件根據現有M-JPEG標準以HTTP視頻數據服務流形式輸出。

(5)output_file.so。這個插件的功能是將輸入插件的JPEG圖像存儲到特定的文件夾下,它可以用來抓取圖像。

4 修改腳本

修改腳本文件

/home/peng/work/camera/mjpg-streamer/mjpg-streamer/start.sh
./mjpg_streamer-i"./input_uvc.so-y"-o"./output_http.so-w./www"-o"./output_file.so-f/www/pice-d15000"
9600b03c-0c95-11ed-ba43-dac502259ad0.png
"./input_uvc.so-y":指定攝像頭是YUV,默認是JPEG,一口君使用的羅技攝像頭是YUV
"./output_http.so-w./www":指定web服務器根目錄./www,我們可以通過瀏覽器測試攝像頭
"./output_file.so-f/www/pice-d15000":指定拍照保存照片目錄/www/pice,并且每15s保存一次照片

也可以指定分辨率:

./mjpg_streamer-i"input_uvc.so-d/dev/video0-n-y-r640x480-f30"-o"./output_http.so-w./www"-o"./output_file.so-f/www/pice-d15000"

市面上有的攝像頭支持格式有YUV,MJPEG,H264 ;mjpg-stream支持MJPEG和YUV兩種格式

5 測試

運行

./start.sh

(1)網頁測試

961174bc-0c95-11ed-ba43-dac502259ad0.png(2)網頁視頻流測試

96333ff2-0c95-11ed-ba43-dac502259ad0.png

(3) 拍照功能實現

瀏覽器上地址欄輸入如下內容:

http://127.0.0.1:8080/?action=snapshot

或者

http://127.0.0.1:8080/?action=stream

snapshot 表示每次抓拍一張圖形顯示在網頁上,stream 表示視頻流也就是連續的圖像

6. 補充

一口君還使用了一款z-star攝像頭,該款攝像頭不要添加-y選項9665eed4-0c95-11ed-ba43-dac502259ad0.png

./mjpg_streamer-i"./input_uvc.so-d/dev/video0"-o"./output_http.so-w./www"-o"./output_file.so-f/www/pice-d150000"

有時候攝像頭生成的設備文件不是/dev/video0

9692533e-0c95-11ed-ba43-dac502259ad0.png我們需要對應參數:

-d/dev/video1

五、代碼流程

96ad463a-0c95-11ed-ba43-dac502259ad0.png

六、支持單拍、連拍

由于 mjpg_stream 中 output-file.so 能實現連續拍照的功能,不能實現單拍或 連拍幾張的功能所以需要對 output_file 原碼進行修改。修改文件目錄:

peng@ubuntu:~/work/camera/mjpg-streamer/mjpg-streamer/plugins/output_file/output_file.c
  1. 在 196 行 函數 voidworker_thread(voidarg) 體中加入以下代碼:
charbuf[10];//用于存放從管道讀取的命令
intflags=0;//拍照標志,1:表示11張照片,2:表示1張照片
intfd_com=0;//打開管道的文件描述符

intstop_num=0;//拍照計數

if(access("/tmp/webcom",F_OK)0)//創建有名管道用于接收拍照命令
{
if(mkfifo("/tmp/webcom",0666)0)
{
printf("photofifocreatefailed
");
}
}

fd_com=open("/tmp/webcom",O_RDONLY,0666);
if(fd_com0)
{
perror("openthefilewebcomerror");
}
  1. 在229行 while( ok >= 0 && !pglobal->stop){ 后加入
if(flags==0)
{
while(1)
{
read(fd_com,buf,sizeof(buf));
if(strncmp(buf,"danger",6)==0)//拍11張照片
{
flags=1;
bzero(buf,sizeof(buf));
break;
}

if(strncmp(buf,"one",3)==0)//拍1張照片
{
flags=2;
bzero(buf,sizeof(buf));
break;
}
}
}
  1. 在355行
355/*ifspecified,waitnow*/
356if(delay>0){
357usleep(1000*delay);
358}

后加入

stop_num++;
if(flags==1)//判斷拍照的數量
{
if(stop_num>9)
{
stop_num=0;
flags=0;
}
}
elseif(flags==2)
{
stop_num=0;
flags=0;
}

審核編輯:湯梓紅


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5150

    文章

    19659

    瀏覽量

    317390
  • 服務器
    +關注

    關注

    13

    文章

    9791

    瀏覽量

    87929
  • 移植
    +關注

    關注

    1

    文章

    398

    瀏覽量

    28690

原文標題:手把手教你ubuntu下移植MJPG-streamer

文章出處:【微信號:yikoulinux,微信公眾號:一口Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于H264的嵌入式視頻服務器的設計

    基于H264的嵌入式視頻服務器的設計摘要! 本文介紹了基于的嵌入式視頻服務器的設計重點闡述了嵌入式操作系統" 視頻
    發表于 06-25 10:50

    網絡視頻服務器的概念及其構成

    服務器在普通網絡環境中應用成為可能。3.H264  聯合視頻工作組(JVT,Joint Video Team)在H26L的基礎上提出了H.264編碼技術,它通過增加運算的復雜性降低了碼的同時提高
    發表于 08-22 14:34

    樹莓派做一個網絡攝像頭上傳實時視頻到云服務器,云服務器推流到客戶端可以實現嗎

    訪問云服務器,或者是云服務器,總之客戶端可以隨時隨地通過終端設備簡單的查看實時視頻,請教一下做過這個項目的大佬,有沒有可以實現的方案?
    發表于 08-16 01:23

    如何移植web服務器

    作為一個電子專業的碼龍,在嵌入式設備上實現web數據展示和控制,確實曾對自己提出了一個不大不小的挑戰。雖然web已存在這么多年,但是在嵌入式設備上實現,并清楚講明如何移植web服務器,如何設計前端
    發表于 11-08 06:41

    rk3288視頻服務器MJPG_Streamer移植簡析

    1、firefly-rk3288視頻服務器MJPG_Streamer移植MJPG_Streamer 是一個開源的輕量級的視頻傳輸服務器應用項
    發表于 04-08 16:33

    基于H 264的嵌入式視頻服務器的設計

    基于H 264的嵌入式視頻服務器的設計 摘要! 本文介紹了基于#$%& 的嵌入式視頻服務器的設計"重點闡述了" 嵌入式操作系統" 視頻
    發表于 08-25 13:02 ?33次下載

    基于視頻服務器視頻監控系統的設計

          介紹了一種基于視頻服務器視頻監控系統的設計,著重介紹了視頻服務器、系統的總體
    發表于 09-03 10:10 ?18次下載

    嵌入式Web服務器Boa的移植及其應用

    嵌入式Web服務器Boa的移植及其應用:鑒于目前監控系統對實時性和多連接處理能力的要求,介紹一款單任務的嵌入式Web服務器Boa.對將Boa移植到運行uClinux操作系統的ARM微處
    發表于 09-20 18:00 ?56次下載

    Linkpower網絡視頻服務器系列

    網絡視頻服務器概述 Linkpower網絡視頻服務器可以無縫地將您現有的模擬CCTV系統集成到基于IP的數字解決方中,網絡視頻
    發表于 07-05 12:08 ?16次下載

    數字電視視頻服務器的設計

    討論了一種分布式視頻服務器的設計與實現。重點從磁盤和文件調度與節目調度策略兩個方面討論提高數字電視視頻服務器整體性能的技術。
    發表于 11-19 15:24 ?22次下載

    電影視頻服務器架設完全教程

    電影視頻服務器架設完全教程 首先是硬件方面   視頻服務器硬件選擇需要注意以下幾點:
    發表于 01-27 13:31 ?2994次閱讀

    視頻監控服務器購買須知

    網絡視頻服務器實際質量、性能差異性比較大。顧客在購買網絡視頻服務器之前可以從以下幾個產品性能指標進行權衡。
    發表于 12-21 16:42 ?3115次閱讀

    Boa服務器移植說明分析

    Boa服務器移植,內含說明文檔,原理分析和源碼
    發表于 01-18 14:13 ?0次下載

    在線視頻服務器租用如何配置?

    視頻服務器中的媒體資源則是以實時數據的形式傳輸的,不穩定的網絡對服務器的傳輸速度影響非常大,負荷非常高。再加之各種新鮮的視頻資源不間斷上傳
    發表于 05-06 11:46 ?1233次閱讀

    如何選擇視頻服務器的配置尺寸?

    服務器用于構建視頻網站的配置要求非常高。它需要高性能的硬件配置和網絡帶寬來支持實時視頻處理和傳輸。它不僅需要高性能的CPU處理,而且對內
    的頭像 發表于 12-14 11:28 ?900次閱讀
    主站蜘蛛池模板: 天天干夜夜爽天天操夜夜爽视频 | 男人操女人视频免费 | 天天爽天天 | 美女视频黄的免费视频网页 | 日韩午夜精品 | 亚洲天堂手机在线 | asian极品呦女爱爱 | 主人扒开腿揉捏花蒂调教cfh | 亚洲成人在线播放 | 99久久国产免费 - 99久久国产免费 | 欧美成人精品久久精品 | a免费网站 | 成人看的一级毛片 | a级午夜毛片免费一区二区 a看片 | 国产一级特黄aa大片免费 | 视频在线观看免费网址 | 性高清| 亚洲精品久久久久午夜福 | 精品一区二区三区在线视频 | 视色4se视频在线观看 | 国产亚洲精品仙踪林在线播放 | 免费国产高清精品一区在线 | 国产成人a一区二区 | 操操操操网| 日本一区二区三区不卡在线视频 | 亚洲精品美女久久久久网站 | 国产香蕉久久精品综合网 | 亚洲国产精品久久婷婷 | 亚洲精品91大神在线观看 | 天天操天天干天天爽 | 日本三级s级在线播放 | 四虎国产精品永久地址51 | 日本黄色片www | 婷婷色在线 | 性爽爽| 窝窝午夜看片成人精品 | www深夜视频在线观看高清 | 国产手机视频在线 | 99精品在免费线视频 | 美女视频很黄很暴黄是免费的 | 国产精品嫩草影院在线播放 |