1. 程式人生 > 實用技巧 >海康攝像頭相關備忘

海康攝像頭相關備忘

海康攝像頭抓圖
curl --insecure --anyauth -u admin:password -X GET http://admin:[email protected]/ISAPI/Streaming/channels/110/picture >d:/b.jpg

海康RTSP流
rtsp://admin:[email protected]:554/Streaming/Channels/201

ffmpeg壓縮海康錄影檔案 壓縮率大概 15%
ffmpeg -i Downtest_ch0001_00000003678000000.mp4 -c:v libx264 -crf 28 -preset veryfast -c:a copy -movflags +faststart output.mp4 -y

JS Video截圖上傳程式碼

// 視訊繪製canvas畫布、截圖上傳
function canvasUpload() {
    let v = $('video')[0];
    let canvas = document.createElement("canvas");
    canvas.width = v.videoWidth;
    canvas.height = v.videoHeight;
    let ctx = canvas.getContext("2d");
    ctx.drawImage(v, 0, 0, canvas.width, canvas.height);
    
// document.body.appendChild(canvas); let imgSrc = canvas.toDataURL("image/jpeg", 0.8); $('#img1').prop('src', imgSrc); //獲取裁剪完後的base64圖片url,轉換為blob var data = imgSrc; var formData = new FormData(); formData.append("img_file", dataURLtoBlob(data)); var httprequest = null;
if (window.XMLHttpRequest) { httprequest = new XMLHttpRequest(); } else { httprequest = new ActiveXObject('MicroSoft.XMLHTTP'); } var apiurl = "save.php?sn=" + $('#txtSn').val(); //上傳圖片的api介面,自行填寫 httprequest.open('POST', apiurl, true); httprequest.send(formData); httprequest.onreadystatechange = function () { if (httprequest.readyState == 4) { if (httprequest.status == 200) { console.log('上傳成功'); } else { console.error('獲取資料錯誤,錯誤程式碼:' + httprequest.status + '錯誤資訊:' + httprequest.statusText); } } }; } //把base64位的toDataURL圖片轉換成blob function dataURLtoBlob(dataurl) { var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new Blob([u8arr], { type: mime }); }