日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php js实现录制mp4视频,并上传视频保存

發布時間:2024/3/24 php 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php js实现录制mp4视频,并上传视频保存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

按鈕

<button onclick="videolz()" type="button" style="width: 100px; font-size: 32px;cursor: pointer;">開始 </button><button onclick="mediaStop()" type="button" style="width: 100px; font-size: 32px;cursor: pointer;margin-left: 60px;">停止 </button>

js實現

MediaStreamRecorder.js下載
https://download.csdn.net/download/gusijin/78228210

https://github.com/streamproc/MediaStreamRecorder

<script src="./MediaStreamRecorder.js"></script> <script>var uploadBlod = '';//防止兩次上傳var file = '';var recordTime = 15;//錄制時間,單位妙var mediaRecorder = '';var isStop = false;function videolz() {if (navigator.mediaDevices === undefined) {navigator.mediaDevices = {};}if (navigator.mediaDevices.getUserMedia === undefined) {navigator.mediaDevices.getUserMedia = function (constraints) {var getUserMedia = navigator.getUserMedia ||navigator.webkitGetUserMedia ||navigator.mozGetUserMedia ||navigator.msGetUserMedia ||navigator.oGetUserMedia;if (!getUserMedia) {console.log("當前瀏覽器不支持拍攝功能");return Promise.reject(new Error('getUserMedia is not implemented in this browser'));}return new Promise(function (resolve, reject) {getUserMedia.call(navigator, constraints, resolve, reject);});};}var mediaConstraints = {audio: true,video: true};isStop = false;navigator.getUserMedia(mediaConstraints, onMediaSuccess, onMediaError);}function onMediaSuccess(stream) {mediaRecorder = new MediaStreamRecorder(stream);mediaRecorder.stream = stream;mediaRecorder.mimeType = 'video/mp4';mediaRecorder.ondataavailable = function (blob) {if (uploadBlod == '') {var blobURL = URL.createObjectURL(blob);document.write('<a target="_black" href="' + blobURL + '">' + blobURL + '</a> <br /><br />');file = new File([blob], 'msr-' + (new Date).toISOString().replace(/:|\./g, '-') + '.mp4', {type: 'video/mp4'});uploadBlod = blob;}};++recordTime;mediaRecorder.start();setTimeout(function () {if (!isStop) {mediaStop();}}, recordTime * 1000);}function mediaStop() {isStop = true;mediaRecorder.stream.stop()console.log("錄像結束");//要給一點recorder到videoBlob的時間,必選setTimeout(function () {uploadVedio(file);console.log("錄像上傳");file = '';uploadBlod = '';}, 1000);}function onMediaError(e) {console.error('media error', e);}function uploadVedio(file) {// create FormDatavar formData = new FormData();formData.append('video-filename', file.name);formData.append('video-blob', file);makeXMLHttpRequest('/media-recorder/save.php', formData, function () {var downloadURL = '/media-recorder/uploads/' + file.name;console.log('File uploaded to this path:', downloadURL);});}function makeXMLHttpRequest(url, data, callback) {var request = new XMLHttpRequest();request.onreadystatechange = function () {if (request.readyState == 4 && request.status == 200) {callback();}};request.open('POST', url);request.send(data);}</script>

php保存

<?php // via: https://github.com/muaz-khan/RecordRTC/blob/master/RecordRTC-to-PHP/save.php header("Access-Control-Allow-Origin: *"); function selfInvoker() {if (!isset($_POST['audio-filename']) && !isset($_POST['video-filename'])) {echo 'PermissionDeniedError';return;}$fileName = $_POST['video-filename'];$tempName = $_FILES['video-blob']['tmp_name'];if (empty($fileName) || empty($tempName)) {echo 'PermissionDeniedError';return;}$filePath = 'uploads/' . $fileName;// make sure that one can upload only allowed audio/video files$allowed = array('webm','wav','mp4','mp3','ogg');$extension = pathinfo($filePath, PATHINFO_EXTENSION);if (!$extension || empty($extension) || !in_array($extension, $allowed)) {echo 'PermissionDeniedError';return;}if (!move_uploaded_file($tempName, $filePath)) {echo('Problem saving file.');return;}echo($filePath); }selfInvoker(); ?>

總結

以上是生活随笔為你收集整理的php js实现录制mp4视频,并上传视频保存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。