Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
時的工作中常會遇到一些系統集成的需求,需要在軟件平臺集成視頻監控系統。而軟件開發者往往不懂安防弱電系統,不知道如何在自己的軟件界面中集成一些監控的實時畫面。而監控廠家提供的SDK比較復雜,很難在短時間完成集成的任務。最終導致軟件平臺的一些功能無法實現,影響項目的質量。
本文提供的方法主要基于VLC播放器的ActiveX插件,通過這個插件,在網頁中調用攝像機的RTSP流,實現圖像的實時預覽,音頻的監聽等等功能。文章以海康的IP網絡攝像機為例給出具體的調用方法,供大家學習參照。
登錄VLC官網 https://www.videolan.org/,選擇windows(32位)版本下載。
下載VLC軟件
運行安裝文件
選擇軟件安裝位置
一定記得要勾選網頁瀏覽器插件
完成安裝
可選用記事本(notepad)或專業的編輯器,輸入如下代碼,保存為html網頁文件。
<html>
<body>
<title>TESTVDEIO-1-TEST</title>
<head>
<table>
<tbody>
<caption>視頻監控演示</caption>
<tr>
<td>
<object type='application/x-vlc-plugin' pluginspage="http://www.videolan.org/" id='vlc' events='false' width="720" height="410">
<param name='mrl' value='rtsp://admin:q66668888@172.16.200.88:554/h264/ch1/main/av_stream' />
<param name='volume' value='50' />
<param name='autoplay' value='true' />
<param name='loop' value='false' />
<param name='fullscreen' value='false' />
<param name='controls' value='false' />
</td>
<td>
<object type='application/x-vlc-plugin' pluginspage="http://www.videolan.org/" id='vlc' events='false' width="720" height="410">
<param name='mrl' value='rtsp://admin:q66668888@172.16.200.89:554/h264/ch1/main/av_stream' />
<param name='volume' value='50' />
<param name='autoplay' value='true' />
<param name='loop' value='false' />
<param name='fullscreen' value='false' />
<param name='controls' value='false' />
</td>
</tr>
<tr>
<td>
<object type='application/x-vlc-plugin' pluginspage="http://www.videolan.org/" id='vlc' events='false' width="720" height="410">
<param name='mrl' value='rtsp://admin:q66668888@172.16.200.89:554/h264/ch1/main/av_stream' />
<param name='volume' value='50' />
<param name='autoplay' value='true' />
<param name='loop' value='false' />
<param name='fullscreen' value='false' />
<param name='controls' value='false' />
</td>
<td>
<object type='application/x-vlc-plugin' pluginspage="http://www.videolan.org/" id='vlc' events='false' width="720" height="410">
<param name='mrl' value='rtsp://admin:q66668888@172.16.200.88:554/h264/ch1/main/av_stream' />
<param name='volume' value='50' />
<param name='autoplay' value='true' />
<param name='loop' value='false' />
<param name='fullscreen' value='false' />
<param name='controls' value='false' />
</td>
</tr>
</tbody>
</table>
</object>
</body>
</html>
代碼編輯截圖
具體請參看海康專業文檔
先用Google Chrome瀏覽器測試,提示插件不支持。
Chrome瀏覽器提示插件不受支持
用微軟IE測試,需要安裝插件。
IE瀏覽器提示要安裝ActiveX插件
確認安裝插件
瀏覽器只顯示了第一個畫面。
IE瀏覽器顯示不完整
用編輯器測試,2種內核都能正常顯示。
編輯器里測試效果
改用360瀏覽器,呈現2X2的畫面,實現最終的顯示效果。
360瀏覽器顯示的最終效果圖
本文參考了一些專業文章,就不一 一列出了,在這一并謝過!
由于本人水平有限,有不對的地方敬請指正。文章旨在拋磚引玉,通過討論,相互學習,共同進步。
我是WoNew弱電蝸牛,一名從業多年的弱電工程師,在頭條傳播弱電專業知識和行業信息,分享工作中的經驗和心得。
喜歡我的文章或視頻,歡迎點贊和轉發。有疑問或建議,也歡迎留言,我會盡力解答。
PNotify是一個原生JavaScript通知和確認/提示庫。PNotify可以根據Web Notifications規范提供桌面通知,并返回瀏覽器內通知。PNotify是目前筆者正在項目中使用的一個通知提示組件,功能非常豐富,可以讓你的Web項目通知和提示更加的優雅!
https://github.com/sciactive/pnotify
npm install --save pnotify # Material style: npm install --save material-design-icons # Animate module: npm install --save animate.css # NonBlock module: npm install --save nonblockjs
PNotify模塊目錄如下:
要想看真實效果的朋友可以直接看官方提供的demo,非常的豐富示例,絕對讓你有使用它的沖動,咱們通過截圖來看一下:
具體的效果只有使用了之后才會體會到,絕對值得使用!
import PNotify from 'pnotify/dist/es/PNotify'; import PNotifyButtons from 'pnotify/dist/es/PNotifyButtons'; PNotify.alert('Notice me, senpai!');
import PNotify from 'pnotify/dist/es/PNotify'; import PNotifyButtons from 'pnotify/dist/es/PNotifyButtons'; //... export class WhateverComponent { constructor() { PNotifyButtons; // Initiate the module. Important! PNotify.alert('Notice me, senpai!'); } }
<script type="text/javascript" src="node_modules/pnotify/dist/iife/PNotify.js"></script> <script type="text/javascript" src="node_modules/pnotify/dist/iife/PNotifyButtons.js"></script> <script type="text/javascript"> PNotify.alert('Notice me, senpai!'); </script>
import PNotify from 'node_modules/pnotify/dist/es/PNotify.js'; import PNotifyButtons from 'node_modules/pnotify/dist/es/PNotifyButtons.js'; PNotify.alert('Notice me, senpai!');
<link href="node_modules/pnotify/dist/PNotifyBrightTheme.css" rel="stylesheet" type="text/css" />
Material 樣式模塊:
import PNotifyStyleMaterial from 'pnotify/dist/es/PNotifyStyleMaterial.js'; // or var PNotifyStyleMaterial = require('pnotify/dist/umd/PNotifyStyleMaterial.js'); // Set default styling. PNotify.defaults.styling = 'material'; // This icon setting requires the Material Icons font. (See below.) PNotify.defaults.icons = 'material';
# The official Google package: npm install --save material-design-icons # OR, An unofficial package that only includes the font: npm install --save material-design-icon-fonts
要將Bootstrap設置為默認樣式,請在導入PNotify后從下面包含相應的設置:
PNotify.defaults.styling = 'bootstrap3'; // Bootstrap version 3 PNotify.defaults.icons = 'bootstrap3'; // glyphicons // or PNotify.defaults.styling = 'bootstrap4'; // Bootstrap version 4
要將Font Awesome設置為默認圖標,請在導入PNotify后從下面包含相應的設置:
PNotify.defaults.icons = 'fontawesome4'; // Font Awesome 4 // or PNotify.defaults.icons = 'fontawesome5'; // Font Awesome 5
// 手動設置類型 PNotify.alert({ text: "I'm an alert.", type: 'notice' }); // 自動設置類型。 PNotify.notice({ text: "I'm a notice." }); PNotify.info({ text: "I'm an info message." }); PNotify.success({ text: "I'm a success message." }); PNotify.error({ text: "I'm an error message." });
以上只是簡單的介紹,如果你想讓你的瀏覽器推送通知不是很簡陋,筆者認為是時候使用這樣一個插件來助你解決這個問題了:
PNotify是筆者用過的最優雅的提示通知組件,推薦給需要的人!
Pxmu.js是一個專門為移動設備Web打造的消息提示框插件,無需任何依賴額外依賴,即可運行。由于全局使用flex布局,因此具備良好的兼容性,PC端也可以無縫運行。專注于打造提示組件,所以其能力要相對于其它的框架內組件稍強一些,具備精美的樣式以及可以自定義動畫、字體、顏色等!
https://github.com/shiyueGG/pxmu
Pxmu有常用的 toast、diaglog、success 、loading、copy 等。下面就簡單說明下使用方式
<script type="text/javascript" src="pxmu.min.js"></script>
使用方法:
pxmu.toast({})
pxmu.toast('內容')
參數可選:
{
msg: '操作成功', //內容 不能為空
time: 2500, //停留時間 默認2500毫秒
bg: 'rgba(0, 0, 0, 0.86)', //背景顏色 默認黑色
color: '#fff', //文字顏色 默認白色
location: 'bottom',//居中center 頂部top 底部bottom默認
}
使用方法:
pxmu.diaglog({})//結果返回promise
pxmu.diaglog('內容')
由于參數過多這里不便于展示,如圖片不清晰可以查看官方文檔:
使用方法:
pxmu.loading({})
pxmu.loading('正在加載。。。')
參數可選:
{
msg: '正在加載', //loading信息 為空時不顯示文本
time: 2500, //停留時間
bg: 'rgba(0, 0, 0, 0.65)', //背景色
color: '#fff', //文字顏色
animation: 'fade', //動畫名 詳見動畫文檔
close: true, // 自動關閉 為false時可在業務完成后調用 pxmu.closeload();手動關閉
inscroll: false, //模態 不可點擊和滾動
inscrollbg : 'rgba(0, 0, 0, 0.45)',//自定義遮罩層顏色 為空不顯示遮罩層
}
可手動關閉:
pxmu.closeload(100);//延時100毫秒關閉 默認0
使用方法:
pxmu.success({})
pxmu.success('加載完成')
參數可選:
{
msg: '加載完成', //loading信息 為空時不顯示文本
time: 2500, //停留時間
bg: 'rgba(0, 0, 0, 0.65)', //背景色
color: '#fff', //文字顏色
animation: 'fade', //動畫名 詳見動畫文檔
close: true, // 自動關閉 為false時可在業務完成后調用 pxmu.closeload();手動關閉
inscroll: false, //模態 不可點擊和滾動
inscrollbg : 'rgba(0, 0, 0, 0.45)',//自定義遮罩層顏色 為空不顯示遮罩層
}
也可手動關閉:
pxmu.closeload(100);//延時100毫秒關閉 默認0
Fail對標Success
pxmu.fail({});
pxmu.fail('加載超時');
參數可選:
{
msg: '加載超時', //loading信息 為空時不顯示文本
time: 2500, //停留時間
bg: 'rgba(0, 0, 0, 0.65)', //背景色
color: '#fff', //文字顏色
animation: 'fade', //動畫名 詳見動畫文檔
close: true, // 自動關閉 為false時可在業務完成后調用 pxmu.closeload();手動關閉
inscroll: false, //模態 不可點擊和滾動
inscrollbg : 'rgba(0, 0, 0, 0.45)',//自定義遮罩層顏色 為空不顯示遮罩層
}
手動關閉:
pxmu.closeload(100);//延時100毫秒關閉 默認0
快速復制一段文本,或復制指定dom下的文本內容
使用方法:
pxmu.copy({})
<div data-pxmu-copy-text="復制的內容">點我復制</div>
pxmu.copy({
el: '#test' //復制id為test下的內容,
});
//或者
pxmu.copy({
el: '.test' //復制class為test下的內容,
});
快速回到頁面頂部(帶動畫)
使用方法:
pxmu.totop()
// 全局重疊設置
pxmu.overlap({
loading : true,//是否不重疊彈出層 默認true不重疊。為false時會重疊消息層
toast : true,//是否不重疊彈出層 默認true不重疊。為false時會重疊消息層
});
pxmu是開發中常用的一個小插件,在某些項目中非常實用,特別是針對一些小頁面小應用的場景,當然在大型應用中也可以使用。總體來說使用感受不錯,樣式也非常符合現代頁面的審美,兼容性強,自定義能力強,同時還具備動畫設計,是非常不錯的一個小插件,推薦給部分需要的人!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。