⑴ 通過網路攝像頭實時採集視頻,採用OpenCV識別運動物體,實現有運動物體經過時存儲,沒有時則不存儲.
網路攝像頭沒有 usb攝像頭那麼簡單。
usb攝像頭 直接cvcapture搞定了
網路攝像頭的話 直接用cvcapture 會出現獲取的圖像不正確,主要是無法正確獲取關鍵幀 這個我試過 需要研究網路攝像頭廠商給的api 自己抓流 轉iplimage 後續都一樣
⑵ 一對一直播系統源碼都有哪些功能開發
、多終端同步功能
直播初的誕生是在PC端,但是隨著現代智能手機的普及和移動網路的進步,手機端成為了直播觀看的大平台,直播系統如今也可以實現PC端、Android端與iOS端三端互通,均可開播觀看,這也是直播系統發展客戶的基本功能;
2、多渠道注冊/登錄
登錄
隨著微信、微博的火熱,直播系統的登陸已經不僅僅限於手機驗證碼、QQ注冊登錄,微博微信也成為新的主流的登錄方式,甚至通過Twitter、Facebook也可注冊登錄;
3、多渠道充值/提現
目前支付寶、微信支付基本占據了現在中國移動支付的整個市場,一套優秀的直播系統源碼必定離不開這兩種支付方式的介面,其次,能否接入四方支付介面也是考驗直播系統源碼的一個重要因素;
4、聊天互動及彈幕功能
一對一直播系統之所以如此火爆,正是因為粉絲可以發送彈幕或私信給主播,拉近了主播與粉絲之間的距離。實時彈幕是主播與粉絲交流的主要方式,實際上就是IM聊天中的聊天室功能,不需要查看歷史消息只有在線用戶可以實時看到聊天信息。由於網路狀況復雜且不穩定,還要根據用戶位置選擇較近的對應運營商的單線機房,來保證彈幕的實時性;
5、多渠道分享
多渠道分享類似於多渠道注冊/登陸,通過主流的社交平台將直播間分享出去,與好友分享,增加樂趣。同時,分享也是直播間增長人氣,引爆流量的主要方式;
6、直播畫面高清流暢
直播畫面是影響觀眾觀感的條件,直播畫面追求高清流暢。目前主流的直播系統開發商的直播源碼一般支持720P的視頻流,客戶也可以根據自身要求提高相應的碼率,提高平台粉絲的觀看體驗,吸引粉絲;
7、送禮打賞功能
送禮打賞基本上是每個直播平台一定存在的功能,是主播與平台主要的經濟來源。送禮打賞也是增加主播與粉絲互動的一個重要方式,增加主播與粉絲的親密度;
開播/送禮打賞
8、美顏功能
美顏是直播系統中很重要的一個功能,也是主播吸引粉絲的一個很重要手段。美顏實際上是通過演算法識別圖像中的皮膚部分,對皮膚部分進行色值調整;
9、錄播回看
支持直播視頻的存儲、回放,讓粉絲不會錯過喜愛的主播;
10、自動鑒黃、快速停播
為了健康的直播環境,使用技術手段直播鑒黃是直播系統的必須環節。市場上目前提供的鑒黃方案有兩種:一種是截圖鑒黃,通常由業務系統接入鑒黃服務,如切斷視頻流、禁播等;另一種是與CDN結合,一對一直接對視頻流進行分析,實時性比較好,但成本較高一些。當然以上這些功能是直播平台應具備的基礎功能,基於強大的一對一直播系統源碼,只有實現了這些基礎功能,才會給用戶帶來直播互動體驗。
⑶ 有什麼軟體,編程,APP,可以把視頻中的物品識別出來並把物品名字讀出來
這個目前只有AI識別能做到,但是這個需要經過很多大數據的學習才能做到。
⑷ 通過什麼可以識別視頻中的實物
通過視頻識別程序。目前視頻識別程序的靈敏度還比較低,識別的准確程度還不高,只能輔助用,主要還是靠人工,未來隨著技術的提高,會有所改善。
⑸ c#實現p2p的流媒體視頻系統,求方法(用tcp)或者源碼
P2P是peer-to-peer的縮寫,peer在英語里有"(地位、能力等)同等者"、"同事"和"夥伴"等,P2P也就理解為"夥伴對夥伴"的意思,或稱為對等聯網。就是我們說的P2P流媒體技術!
P2P就是人可以直接連接到其他用戶的計算機、交換文件,而不是像過去那樣連接到伺服器去瀏覽與從網路看,P2P也不是新概念,P2P是互聯網整體架構的基礎。人們認為其在加強網路上人的交流、文件交換、分布計算等方面大有前途。
即時訊息ICQ、AOL Instant Messenger、Yahoo Pager、微軟的MSN Messenger以及國內的OICQ是最流行的P2P應用。它們允許用戶互相溝通和交換信息、交換文件。用戶之間的信息交流不是直接的,需要有位於中心的伺服器來協調。
不過,現在人們多指p2p流媒體電視直播軟體方面的應用,如PPLive 、PPStream
⑹ 易語言從視頻中識別並截取方形物體圖片的原碼
二程序集變數 圖片, 位元組集圖片=快照()如果想把圖片寫到某個文件夾里 寫到文件(這里寫要寫到的絕對路徑例如:「F:\圖片.bmp」,圖片) 如果想把圖片體積改小 換到JPG (, , 假, 漆5, 真, 0
⑺ 想開發個直播平台該怎麼做
您好,想開發直播平台,您有多種方式可以選擇
1、 定製開發
2、 自主開發
3、 成品源碼二次開發
這三種方法,分別適用於三種人,您可以自己對號入座
1、 定製開發,如果預算和工期足夠,找合適的團隊進行定製開發是比較好的選擇,系統穩定,平台特色明顯,但缺點是開發成本高、開發周期長、對接細節問題多,10w起,工期半年起。
2、 使用SDK自行開發,也能夠縮短開發周期,節省開發成本,但很多直播SDK在後期會有所限制,需自行對其評估。
3、 通過成品直播app源碼進行二次開發,快速上線運營,也能滿足用戶的開發需求,性價比較高,初期費用基本上只有系統源碼本身的費用,一套完整源碼價格大概8W左右,如果有額外開發的話單獨按照開發工期計算費用。
這三種開發方式,適用於三種人,您可自行評估,選擇您的開發方式。如果有與開發直播平台相關的問題可以繼續追問我
⑻ 怎麼查尋網頁上視頻的源代碼
一、工具:電腦
二、操作步驟:
【1】把視頻或者內容用瀏覽器打開,各種瀏覽器都可以。
⑼ opencv實現的AVI視頻中運動物體識別與追蹤的程序
以前有OPENCV的官網,可以下載到源代碼的,我這邊貼一個基於vc2005的源代碼吧。
#include <stdio.h>
#include<iostream>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
using namespace std;
int main( int argc, char** argv )
{
//聲明IplImage指針
IplImage* pFrame = NULL;
IplImage* pFrImg = NULL;
IplImage* pBkImg = NULL;
CvMat* pFrameMat = NULL;
CvMat* pFrMat = NULL;
CvMat* pBkMat = NULL;
CvCapture* pCapture = NULL;
int nFrmNum = 0;
//創建窗口
cvNamedWindow("background",1);
cvNamedWindow("video", 1);
cvNamedWindow("foreground",1);
//排列窗口
cvMoveWindow("background", 30, 500);
cvMoveWindow("video", 350, 0);
cvMoveWindow("foreground", 690, 500);
//打開視頻文件
if(argc == 2)
if( !(pCapture = cvCaptureFromFile(argv[1])))
{
fprintf(stderr, "文件打開錯誤", argv[1]);
return -2;
}
//逐幀讀取視頻
while(pFrame = cvQueryFrame( pCapture ))
{
nFrmNum++;
//如果是第一幀,則申請內存,並初始化
if(nFrmNum == 1)
{
pBkImg = cvCreateImage(cvSize(pFrame->width, pFrame->height), IPL_DEPTH_8U,1);
pFrImg = cvCreateImage(cvSize(pFrame->width, pFrame->height), IPL_DEPTH_8U,1);
pBkMat = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);
pFrMat = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);
pFrameMat = cvCreateMat(pFrame->height, pFrame->width, CV_32FC1);
//轉化成單通道圖
cvCvtColor(pFrame, pBkImg, CV_BGR2GRAY);
cvCvtColor(pFrame, pFrImg, CV_BGR2GRAY);
cvConvert(pFrImg, pFrameMat);
cvConvert(pFrImg, pFrMat);
cvConvert(pFrImg, pBkMat);
}
else
{
cvCvtColor(pFrame, pFrImg, CV_BGR2GRAY);
cvConvert(pFrImg, pFrameMat);
//平滑圖像(高斯濾波)
cvSmooth(pFrameMat, pFrameMat, CV_GAUSSIAN, 3, 0, 0);
//當前幀減去背景
cvAbsDiff(pFrameMat, pBkMat, pFrMat);
//前景圖二值化
cvThreshold(pFrMat, pFrImg, 60, 255.0, CV_THRESH_BINARY);
//形態學濾波(去噪音)
cvErode(pFrImg, pFrImg, 0, 1);
cvDilate(pFrImg, pFrImg, 0, 1);
//把圖像轉正
pBkImg->origin=1;
pFrImg->origin=1;
//對pFrImg上的已經識別出的運動物體,在pFrame上畫跟蹤框
int x,y;
for (y=pFrImg->height - 1;y>=250;y--)
{
uchar* ptr = (uchar*)(pFrImg->imageData+pFrImg->widthStep*y); //將imageData指針指向第y行頭部
for (x=0;x<pFrImg->width;x++)
{
if(ptr[x]!=0)//判斷地y行第x個元素是否有圖像,如果有圖像,則畫跟蹤框
{
CvPoint pt1_Rect;
CvPoint pt2_Rect;
pt1_Rect.x=x-30;
pt1_Rect.y=y;
pt2_Rect.x=x+30;
pt2_Rect.y=y-300;
int thickness=3;
int line_type=8;
CvScalar color=CV_RGB(255,0,0);
cvRectangle( pFrame, pt1_Rect, pt2_Rect,color ,thickness, line_type, 0 );
y=-1;
break;
}
}
}
//顯示圖像
cvShowImage("video", pFrame);
cvShowImage("background", pBkImg);
cvShowImage("foreground", pFrImg);
//如果有按鍵事件,則跳出循環
//為cvShowImage函數提供時間完成顯示
//等待時間可以根據CPU速度調整
if( cvWaitKey(27) >= 0 )
break;
}
}
//銷毀窗口
cvDestroyWindow("video");
cvDestroyWindow("background");
cvDestroyWindow("foreground");
//釋放圖像和矩陣
cvReleaseImage(&pFrImg);
cvReleaseImage(&pBkImg);
cvReleaseMat(&pFrameMat);
cvReleaseMat(&pFrMat);
cvReleaseMat(&pBkMat);
cvReleaseCapture(&pCapture);
return 0;
}