我正在研究一个概念,人们可以使用网络摄像头进行直播。所以基本上它是一个网络应用程序。我使用的是webRTC概念。我的代码很基本,但仍然可以查看:
<script>
(function () {
console.log('here');
navigator.getMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia;
window.hasUserMedia = function hasUserMedia() {
return navigator.getMedia ? true : false;
};
var errorcallback = function (e) {
console.log('errorCalback: ' + e);
};
navigator.getMedia({
video: true,
audio: true
},
function (stream) {
var video = document.getElementById('live'),
webcamstream, streamrecorder,
vendorUrl = window.URL || window.webkitURL;
console.log(video);
video.src = vendorUrl.createObjectURL(stream);
//webcamstream = stream;
//video.play();
video.onloadedmetadata = function (e) {
var counter = 0;
counter++;
console.log(e);
console.log(video.src);
};
}, errorcallback);
})();
这个video.src
提供了一个源,但我认为它是blob格式的。
输出类似于CCD_ 2。无法发布blob格式。我们需要将其编码为RTMP编码。我的问题是,我将如何使用任何第三方软件对其进行编码,因为作为最终用户,我不太可能安装任何用于注册网站的软件。
我尝试过使用flash进行直播,但需要安装flash直播编码器,我不想使用它,因为它对用户不友好。有一些非常专用的服务器,比如wowza、dacast等等,但它们需要RTMP编码的视频流进行进一步处理。
注意:我在另一个页面中尝试了<video src=video.src>
,但它不会产生任何结果,因为根据之前编写的代码,video.src
来自video metadata
。
那么有什么方法可以将我的blob视频编码为RTMP协议吗
由于您已经看过Wowza,我认为您将重新分发这个已发布的流。该服务器确实具有WebRTC功能:
https://www.wowza.com/products/capabilities/webrtc-streaming-software
您当前必须注册"预览"才能激活这些功能,但时间不会太长。
我强烈建议避免尝试使用RTMP作为浏览器的传输协议,因为这总是需要像Flash这样的插件(即将推出)。