- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个组件,允许您制作网络摄像头视频并将它们直接上传到 amazon s3。为此,我使用 RecordRTC 库和 Amazon S3 存储。我发现了一个奇怪的问题,我不确定它是否与 RecordRTC blob 或 amazon 配置有关。当文件大小超过 1MB 时,Amazon 服务器挂起并在 20 秒后返回超时错误。谁能帮我解决这个问题?这是我的记录器组件代码(p() 与 console.log() 相同):
navigator.record_function = ( navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia);
if (navigator.record_function) {
navigator.record_function(videoObj, function (stream) {
video.src = window.URL.createObjectURL(stream);
video.play();
$("#stop_recording").click(function () {
stream.stop();
});
// init recorders
audio_recorder = RecordRTC(stream, {type: "audio", bufferSize: 16384});
video_recorder = RecordRTC(stream, videoOptions);
}, errBack);
}
$("#start_recording").click(function () {
// record the audio and video
video_recorder.startRecording();
audio_recorder.startRecording();
});
对于 uploader 组件:
// Populate the Post paramters.
fd.append('key', "users/" + Main.current_user.id + "/test.webm");
fd.append('AWSAccessKeyId', msg.access_key_id);
fd.append('acl', 'private');
fd.append('policy', msg.policy);
fd.append('signature', msg.signature);
fd.append('Content-Type', '$Content-Type');
fd.append('x-amz-server-side-encryption', 'AES256');
fd.append('success_action_status', '201');
fd.append('name', 'test.webm');
fd.append('Filename', 'test.webm');
fd.append("file", file);
xhr.open('POST', 'https://' + msg.bucket + '.s3.amazonaws.com', true);
xhr.upload.addEventListener('progress', function (e) {
p(e);
}, false);
xhr.onreadystatechange = function () {
p(xhr.readyState);
};
xhr.send(fd);
$("#stop_recording").click(function () {
// stop recorders
audio_recorder.stopRecording(function () {
var audio_blob = audio_recorder.getBlob();
p(audio_blob);
// VideoUploader.upload_user_audio(audio_blob);
}
);
video_recorder.stopRecording(function () {
var video_blob = video_recorder.getBlob();
p(video_blob);
VideoUploader.upload_user_video(video_blob);
});
});
超时错误信息是:
Your socket connection to the server was not read from or written to within the timeout period. Idle connections will be closed.
我很感激我能得到的任何帮助,我真的迷失在这里了。提前致谢。
最佳答案
我设法为这个问题找到了一个非常...奇怪的解决方案。看来问题出在 RecordRTC 保存 blob 对象的方式,这使得无法在 Mac 上的 Firefox 35 中上传。我在 RecordRTC 中找不到导致问题的代码,Blob 似乎已正确生成,但对我有用的解决方法是通过 Filereader 将 Blob 再次编码为新的 Blob。
video_recorder.stopRecording(function () {
var video_blob = video_recorder.getBlob();
var arrayBuffer;
var fileReader = new FileReader();
fileReader.onload = function (ex) {
arrayBuffer = this.result;
video_blob = new Blob([arrayBuffer], {type: "video/webm"});
VideoUploader.upload_user_video(video_blob)
};
fileReader.readAsArrayBuffer(video_blob);
});
至于为什么会这样,我不知道,但使用相同技术的其他项目也会受到影响http://videobooth.herokuapp.com/ (在同一个浏览器中出现同样的问题,上传挂起)。也许这些信息对从事 RecordRTC 工作的人有用,因为我认为可以将此解决方法制作成补丁。
解决方案已在 Mac Firefox 35 和 Mac Chrome 40 上进行测试。
关于javascript - RecordRTC视频上传AmazonS3超时报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28490150/
我正在尝试录制视频,然后将其保存到服务器。我的问题是文件没有保存到服务器,我不确定为什么。问题似乎是它没有创建 blob 或者可能无法将文件作为 blob 获取? 我这么说是因为在控制台中我看到了这个
我正在尝试使用节点包“recordrtc”(我使用的是角度)从我的网络摄像头录制视频。 即使我在选项中将 mime 类型设置为“video/webm”,它似乎总是将其切换回“x-matroska”..
如何上传RecordRTC以单一文件格式将音频+视频录制到服务器? RecordRTC 似乎生成了两个单独的文件:一个用于音频(作为 WAV),另一个用于视频(作为 WebM)。如何在 PHP 服务器
根据 RecordRTC 作者的说法,mediarecorder api 已在 chrome >= 版本 49 中得到支持 我下载 50 版来测试功能。 任何小于 5 分钟的录制都会导致 chrome
我知道这可能听起来很阴暗,但我正在开发一个窗口录制程序(现在使用 ffmpeg + gdigrab 来抓取窗口)来录制 问题是,我可以通过窗口进行记录而无需用户选择吗? 谢谢! 最佳答案 如果您使用的
使用 recordRTC 到 webm 无法录制高于 30 fps 的内容。相机能够以 60 fps 的速度以所需的 1920x1080 分辨率进行录制。关于如何完整录制 60 fps 有什么想法吗?
我卡在了某个点上。请帮我弄清楚。 当任何对等连接(在视频 session 中)断开连接并重新连接它们时,记录中会添加一个空白帧,我正在使用 RecordRTC 并在 Chrome 74.0 中对其进行
我正在尝试使用 RecordRTC.js 从麦克风录制音频并将其上传到 nancyfx 服务器。 出于测试目的,我只是尝试上传音频流并将其保存为 wav 文件。但是,我的要求是流以 22050Hz 的
我正在尝试在 Laravel 项目中使用 RecordRTC 技术 ( https://github.com/muaz-khan/RecordRTC ) 中的 PHP 和 FFmpeg 示例。 有一个
我想将每个指定时间录制的视频上传到网络服务器。下面的代码可以将视频上传到我的 Django Web 服务器。第一个上传的视频可以播放,但后面的视频无法播放。知道为什么会发生这种情况吗? 几个月前我也在
我正在使用 RecordRTC.js 将音频发送到后端。但我无法那样做。甚至找不到原因。 我的代码: //捕捉麦克风 captureMicrophone(callback) { navigat
我正在做一个项目,我需要用户能够录制屏幕、音频和麦克风。目前我只能让它识别屏幕和音频。 首先,我捕获屏幕和其中的音频并将其保存到变量中。然后我正在捕获该变量以显示视频组件。 invokeGetDisp
我正在使用 Opentok JavaScript WebRTC 库来主持一对一视频聊天(点对点)。 我可以看到我同伴的视频并完美地听到音频。 我的愿望是录制其他聊天方(远程)的音频/视频。为此,我使用
这个问题在这里已经有了答案: Record 5 seconds segments of audio using MediaRecorder and then upload to the server
我正在尝试使用 Canvas 创建一些动画,并使用RecordRTC将其保存为视频文件。 ,这段代码工作完美,但我在获取带有图像的 div 进行记录时遇到困难。 " /> function vid
我们使用 RecordRTC 库将用户音频录制到我们的系统中。 但是用户收到此错误: Uncaught sample-rate must be under range 22050 and 96000
问题:问题是我遇到了标题中所述的错误。 代码: Page Title Start Recording Stop Recording var trace1 = { z : [
我正在研究用于视频录制的 WebRtc 和 javascript 库 RecordRtc。目前两者都适用于 Chrom 和 Mozilla。使用另一个 javascript 库 adaper.js,我
我是一名优秀的程序员,十分优秀!