1. 程式人生 > >VLC播放RTSP視訊流(360瀏覽器可用)

VLC播放RTSP視訊流(360瀏覽器可用)

<!--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
<html xmlns="http://www.w3.org/1999/xhtml" >  -->
<!DOCTYPE >
<head>   
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
<link rel="stylesheet" href="css/demo.css" />
<link rel="stylesheet" href="css/easyui.css" />
<link rel="stylesheet" href="css/icon.css" />
<script src="js/jquery.min.js"></script>
<script src="js/jquery.easyui.min.js"></script>
<script>   
var itemId = 0;  
var url = "";
var totalTime = "";
var playTime;
var ss=0;
var sMin=0;
var sH=0;
var millisec=0;
var tottime = 0;
var iTime;
function registerVLCEvent(event, handler) {
    var vlc = getVLC("vlc");
    if (vlc) {
        if (vlc.attachEvent) {
            // Microsoft
            vlc.attachEvent (event, handler);
        } else if (vlc.addEventListener) {
            // Mozilla: DOM level 2
            vlc.addEventListener (event, handler, false);
        }
    }
}
function unregisterVLCEvent(event, handler) {
    var vlc = getVLC("vlc");
    if (vlc) {
        if (vlc.detachEvent) {
            // Microsoft
            vlc.detachEvent (event, handler);
        } else if (vlc.removeEventListener) {
            // Mozilla: DOM level 2
            vlc.removeEventListener (event, handler, false);
        }
    }
}
function getVLC(name)   
{   
        if (window.document[name])      
        {   
                return window.document[name];   
        }   
        if (navigator.appName.indexOf("Microsoft Internet")==-1)   
        {   
                if (document.embeds && document.embeds[name])   
                        return document.embeds[name];      
        }   
        else   
        {   
                return document.getElementById(name);   
        }   
}   
function showTime(){
	 var vlc = getVLC("vlc"); 

	 setTimeout(setTime,1000);
	 function setTime(){
	 	console.log(vlc.input.length);	
	 millisec = vlc.input.length;
	 var h = Math.floor(millisec/1000/60/60);
	 var min = Math.floor(millisec/1000/60);
	 var s = Math.floor(millisec/1000)-min*60;
	 if(h<=0)
	 {
	 	h = "00";
	 }else if(h>0&&h<10){
	 	h = "0"+h;
	 }
	  if(min<=0)
	 {
	 	min = "00";
	 }else if(min>0&&min<10){
	 	min = "0"+min;
	 }
	  if(s<=0)
	 {
	 	s = "00";
	 }else if(s>0&&s<10){
	 	s = "0"+s;
	 }
	 totalTime = h+":"+min+":"+s;
	 console.log(totalTime);
	 $("#totaltime").empty();
	 $("#totaltime").append("總時長: "+totalTime);	 	
		}
	 iTime=setInterval(playTime,1000);
	 function playTime(){
	 
	 	if(ss<60){
	 		ss++;
	 		if(ss<10){
	 			ss="0"+ss;
	 		}	 		
	 	}else{
	 		sMin++;
	 		ss=0;
	 		if(sMin<10){
	 			sMin= "0"+sMin;
	 		}
	 		if(sMin>=60){
	 			sMin = 0;
	 			sH++;
	 			if(sH<10){
	 				sH = "0"+sH;
	 			}
	 			if(sH>=24){
	 				sH=0;
	 			}
	 		}
	 	}
	 playTime = sH+":"+sMin+":"+ss;
	 tottime = parseInt(sH)*60*60+ parseInt(sMin)*60+parseInt(ss);
	  if(tottime>=Math.floor(millisec/1000))
	 {
//	 	alert("===");
	 	clearInterval(iTime);
	 }
	 $("#palyTime").empty();
	 $("#palyTime").append(playTime);		
	 console.log(tottime );	
	 }
	
	}
function doGo(mrl)   
{   	
//		alert(mrl);
		ss=0;
        sMin=0;
        sH=0;
		$("#palyTime").empty();
	 	$("#palyTime").append("--:--:--");
        var vlc = getVLC("vlc");   
        itemId=vlc.playlist.add(mrl); 
        vlc.playlist.playItem(itemId);   
        document.getElementById("btn_stop").disabled = false;   
}   
  
function updateVolume(deltaVol)   
{   
        var vlc = getVLC("vlc");   
        vlc.audio.volume += deltaVol;   
}   
function doPlay()   
{   
//		alert(itemId);
		var vlc = getVLC("vlc"); 
		vlc.playlist.play();
//		unregisterVLCEvent("MediaPlayerPlaying",handle_MediaPlayerPlaying);
//		showTime();
        document.getElementById("btn_stop").disabled = false;   
        document.getElementById("btn_play").disabled = true;   
}   
function handle_MediaPlayerPaused(){
//  alert("Paused");
    clearInterval(iTime);
} 
function handle_MediaPlayerPlaying(){

//  alert("Playing");
    showTime();
}
function doStop()   
{   
        clearInterval(iTime);
        ss=0;
        sMin=0;
        sH=0;
         $("#palyTime").empty();
	 $("#palyTime").append("--:--:--");	
        getVLC("vlc").playlist.stop();
        document.getElementById("btn_stop").disabled = true;   
        document.getElementById("btn_play").disabled = false;   
}   
function getTime(){
	var st=document.getElementById("startTime");
	var et=document.getElementById("endTime");
	var stValue = $("#starttime").datetimebox("getValue");
	var etValue = $("#endtime").datetimebox("getValue");

//	alert(stValue);
//	alert(etValue);
	var stYear = stValue.substr(6,4);
	var stMonth = stValue.substr(0,2);
	var stDay = stValue.substr(3,2);
	var stH = stValue.substr(11,2);
	var stMin = stValue.substr(14,2);
	var stS =stValue.substr(17,2);
	var stTime = stYear+"_"+stMonth+"_"+stDay+"_"+stH+"_"+stMin+"_"+stS;
//	alert(stTime);
	var etYear = etValue.substr(6,4);
	var etMonth = etValue.substr(0,2);
	var etDay = etValue.substr(3,2);
	var etH = etValue.substr(11,2);
	var etMin = etValue.substr(14,2);
	var etS =etValue.substr(17,2);
	var etTime = etYear+"_"+etMonth+"_"+etDay+"_"+etH+"_"+etMin+"_"+etS;
//	alert(etTime);	
	url = "rtsp://666666:
[email protected]
:554/cam/playback?channel=1&subtype=0"+"&starttime="+stTime+"&endtime="+etTime; alert(url); doGo(url); } window.onload=function(){ // Register a bunch of callbacks. registerVLCEvent("MediaPlayerPaused", handle_MediaPlayerPaused); registerVLCEvent("MediaPlayerPlaying",handle_MediaPlayerPlaying); } </script> </head> <body> <div style="margin: 50px"> <!--<a title="rtsp://666666:
[email protected]
:554/cam/playback?channel=1&subtype=0" href="#" onclick="tip();return false;">貴州視訊rtsp流</a>--> <h2 align="center">貴州監控視訊</h2> <span style="margin: 20px;" /> <a title="rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp" href="#" onclick="doGo(this.title);return false;">測試視訊rtsp流</a> <span style="margin: 20px;" /> <a title="http://127.0.0.1:8020/VLC01/1.flv" href="#" onclick="doGo(this.title);return false;">本地flv視訊流</a> <span style="margin: 20px;" /> <a title="rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov" href="#" onclick="doGo(this.title);return false;">時長rtsp視訊流</a> <span style="margin: 20px;" /> <a title="http://192.168.35.121:13160/hdfsdownload/video/movie/20160623/fffca7b2k100026885.ts" href="#" onclick="doGo(this.title);return false;">http協議ts視訊流</a> <span style="margin: 20px;" /> </div> <div align="center"> <OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" id="vlc" codebase="http://download.videolan.org/pub/videolan/vlc/0.8.6c/win32/axvlc.cab" width="600" height="480" id="vlc" events="True"> <param name="MRL" value="" /> <param name="Src" value="" /> <param name="ShowDisplay" value="True" /> <param name="AutoLoop" value="False" /> <param name="AutoPlay" value="False" /> <param name="Time" value="True"/> <EMBED pluginspage="http://www.videolan.org" type="application/x-vlc-plugin" version="VideoLAN.VLCPlugin.2" width="600" height="480" text="Waiting for video" name="vlc" ></EMBED> </OBJECT> </div> <div align="center"> <span id="palyTime">--:--:--</span>       <input style="cursor: pointer;" type=button id="btn_play" value=" 重播 " onClick='doPlay();' disabled="true"> <input style="cursor: pointer;"type=button id="btn_stop" value="停止" onClick='doStop();' disabled="true"> <input style="cursor: pointer;"type=button value="靜音切換" onclick='getVLC("vlc").audio.toggleMute();'> <input style="cursor: pointer;"type=button value="減小音量" onclick='updateVolume(-10)'> <input style="cursor: pointer;"type=button value="增加音量" onclick='updateVolume(+10)'>       <span id="totaltime">總時長: --:--:--</span> </div> <div style="margin-left: 1020px; margin-top: -300px;"> <span">開始時間:</span><input class="easyui-datetimebox" required style="width:150px;height: 25px;" id="starttime"> <br/><br/><br/> <span>結束時間:</span><input class="easyui-datetimebox" required style="width:150px;height: 25px;" id="endtime"> </div> <br/><br/><br/><input style="margin-left: 1080px; width: 150px; cursor: pointer;" type="button"onclick="getTime()" value="查詢"/> </body> </html>

相關推薦

VLC播放RTSP視訊流(360瀏覽器可用)

<!--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

VLC 播放RTSP 抓包分析

vlc 播放rtsp 抓包分析VLC 播放RTSP視頻抓包記錄:vlc -vvv rtsp://172.16.66.22/nuc.sdpOPTIONS: OPTIONS rtsp://172.16.66.22/nuc.sdp RTSP/1.0 CSeq: 2 User-Agent: LibVLC/2.2

網頁播放rtsp視訊流

RTSP協議 (1)是流媒體協議。 (2)RTSP協議是共有協議,並有專門機構做維護。 (3)RTSP協議一般傳輸的是 ts、mp4 格式的流。 (4)RTSP傳輸一般需要 2-3 個通道,命令

使用VideoView播放rtsp視訊流

1.視訊播放控制 package com.example.rtspvideoview; import android.app.ProgressDialog; import android.content.Context; import android.media.Medi

瀏覽器安裝vlc外掛播放rtsp

網上很多例子都不管用了,今天自己參照 寫了一個,經測試通過。注意的是,安裝vlc的時候記得勾選ie外掛、火狐外掛。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www

瀏覽器播放rtsp流媒體解決方案

wid 格式 script mar max-width main view pro tmp 老板提了一個需求,想讓網頁上播放景區監控的畫面,估計是想讓遊客達到未臨其地,已知其境的狀態吧。 說這個之前,還是先說一下什麽是rtsp協議吧。 RTSP(Real Time S

Vlc支持IE 360 低版本的Google瀏覽器

height lan .get ram () span bject ont tr1 VLC 插件代碼: <object type=‘application/x-vlc-plugin‘ pluginspage="http://www.videolan.org/" i

瀏覽器網頁播放RTSP技術研究-未完待續

目標: 希望Web瀏覽器能播放RTSP流,最好跨瀏覽器,最低要求是支援IE。   簡單調查結論: 外掛技術真的是飽受排斥! 無外掛技術只支援新的瀏覽器,且資料相對少! 暫時找不到一個跨平臺,穩定,效能好,且資料多的瀏覽器技術! IE的Activex在安防行業

ie 嵌入 vlc 播放器外掛播放rtsp直播視訊

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www

瀏覽器低延時播放監控攝像頭視訊(EasyNVR播放FLV視訊流

背景描述 EasyNVR的使用者應該都是清楚的瞭解到,EasyNVR一個強大的功能就是可以進行全平臺的無外掛直播。主要原因在於rtsp協議的視訊流(預設是需要外掛才可以播放的)經由EasyNVR處理可以滿足無外掛的全平臺直播。 經由EasyNVR處理會獲取到RTMP、H

海康IPC+NVR+EasyDarwin+EasyPusher+VLC實現Web實時播放RTSP視訊

上篇部落格是用ffmpeg+nginx實現web播放rtsp視訊,原理是將rtsp轉碼成rtmp格式,再用flash外掛播放 由於專案硬體條件有限,轉碼基本就不考慮了,因此只能直接播放獲取到的rtsp流,並且整個網路環境只能有一個外網IP,因此思路就是能否通過NVR去找同一網段內的IPC,如何搭建NVR和I

Android使用VideoView播放live555服務端的RTSP視訊流demo

簡介 本文為一個簡單demo,測試live555作為RTSP的服務端,使用android自帶的VideoView播放RTSP視訊流。 客戶端 核心程式碼 private void playRtspStream(String rtspUr

ffmpeg推送,EasyDarwin轉發,vlc播放 實現整個RTSP直播

部署EasyDarwin流媒體伺服器 ffmpeg推送攝像機視訊到EasyDarwin VLC播放 第一步:部署EasyDarwin流媒體伺服器 例如,我們現在將EasyDarwin流媒體伺服器部署在127.0.0.1,埠:554 第二

在海思hi3516C上面做流媒體rtsp server,總是存在延時很大並且VLC播放丟幀

丟幀是VLC報出來的,如下: 我將幀率設定為15,而且是CIF解析度,區域網傳輸,不應該有丟幀啊!?我XX 查了一整天,各種辦法,最後我發現是海思SDK送出來PTS有問題: pts=pstStream->pstPack[i].u64PTS*90/100

android錄屏直播:VLC通過rtsp協議播放android錄屏實時視訊(Java實現)

首先說下為什麼要做這樣一個東西          在上家公司的時候,作為客戶端開發,一個月要給領導演示異常app的開發成果,當時用的策略是用錄屏類軟體,錄製成mp4,然後通過投影播放mp4檔案,來給領導看。這樣做帶來的問題是,要提前準備mp4需要時間,領導想要看除了mp4外的

利用ffmpeg獲取rtsp視訊流並使用opencv播放

/*opencv庫*/ #include <opencv2\opencv.hpp> #include <iostream> extern "C" /*這裡必須要使用C方式匯入*/ { #include "libavcodec/avcodec.h"

利用vlc外掛將IP攝像頭嵌入網頁和網頁播放RTSP

1. 描述  最近有一個專案需要將IP攝像機的畫面嵌入到web網頁中,考慮到減少開發成本,使用vlc外掛播放攝像頭提供的RTSP流。在videolan wiki的官網詳細介紹了關於vlc web plugin的使用方法。  有一點需要注意的是,vlc2

VLC播放攝像頭或者網路攝像頭通過rtsp流讀取視訊

#include <stdio.h>   #include <stdint.h>   #include <math.h>   #include <stdlib.h>   #include <assert.h>  

RTSP視訊流的遠端播放的實現

無心學習,把最近這段時間的所想所思寄託在這片土地上,算是對自己的一個交代,也是對各位大大們的一種感激。 原料: (1)海康威視攝像頭一個 (2)PC機一臺 (3)阿里ip一個 實現的原理: (1)ffmpeg的轉碼 (2)傳送到ffserver伺服器等待監聽, (3)轉發

RtspViewer可設定播放地址 基於vlc播放採集rtsp地址視訊演示2.0 測試成功

20170122修改可以 設定播放地址 測試地址:rtsp://111.9.177.194:9090/dss/monitor/param?cameraid=1000063%240&substream=1 測試結果如下       橫屏