Articles of html5 video

点对点videostream使用webrt和节点js和soket io远程video不呈现

我使用这个代码https://bitbucket.org/webrtc/codelab 。 当我尝试连接远程系统时,它会在远程video框中显示我的networking摄像机video。 任何人都可以帮助如何RTCPeerConnection工作? 这是代码。 var localStream, localPeerConnection, remotePeerConnection; var localVideo = document.getElementById("localVideo"); var remoteVideo = document.getElementById("remoteVideo"); var startButton = document.getElementById("startButton"); var callButton = document.getElementById("callButton"); var hangupButton = document.getElementById("hangupButton"); startButton.disabled = false; callButton.disabled = true; hangupButton.disabled = true; startButton.onclick = start; callButton.onclick = call; hangupButton.onclick = hangup; function trace(text) { console.log((performance.now() / 1000).toFixed(3) + ": […]

HTML5video录制

我想通过在服务器端使用HTML5特性+ Node.js创build一个简单的videostream应用程序(实际上我不知道这是可能的…)。 现在我有一些重要的问题: 是否有可能logging由navigator.getUserMedia()API创build的本地stream? 我阅读了很多文章,但到处都是用来定义HTML5video元素的来源。 可以通过websockets发送这个stream吗? (socket.io,binaryjs,…?)。 否则,我只能想象发送帧到一个canvas元素,我不知道这是一个很好的解决scheme。 有没有支持负载平衡的Node.js模块? 使用不同的节点服务器会很有趣。 谢谢大家。

HTML5video无法播放和媒体请求

我在MEAN STACK应用程序中工作。 我在video加载中遇到了一个问题。 我的本地服务器进行video播放,但在我的现场服务器出现以下问题。 In Firebug Url status GET home_video.mp4 206 Partial Content GET home_video.mp4 Aborted 有一件事:有时候,video在页面刷新后播放得很好。 依赖 html5 video tag nodejs server angularjs

在IE11中伪造的HTTPstream

我有一些video,我需要能够find他们的各个点,而不必在那之前下载整个video。 到目前为止,我已经在Firefox和Chrome上使用带有NodeJS和vid-streamer模块的html5video标签,效果很好。 然而,IE 11坚持要下载整个video,直到下载到我想播放的点,我都无法跳过它。 IE是否支持部分内容,并有触发它的一些技巧? 或者是它已经要求与其他头(GetContentFeatures.DLNA.ORG ??)之一,我的服务器不明白? 示例firefox请求头 – 它发送一个新的请求,每当你寻求,关键作为范围头,它甚至发送初始请求(字节= 0-): Accept video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5 Accept-Language en-us,en;q=0.5 Connection keep-alive Cookie connect.sid=… Host … Range bytes=75661312- Referer … User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0 和服务器响应: Accept-Ranges bytes Cache-Control public Connection keep-alive Content-Disposition inline; filename=video.webm; Content-Length 12509 Content-Range bytes 75661312-75673820/75673821 Content-Transfer-Encoding binary Content-Type video/webm Date Wed, […]

是否可以使用node-webkit文件解码AESencryptionvideo?

使用file-encryptor和node-webkit,可以简单地将本地video文件(webm)encryption到本地encryption文件(如myvideo.dat 。 但有没有办法解密和查看这个video? 没有临时文件?

Nodejs从CouchDBstreamvideo,并显示在video标签

我正在尝试使用NodeJS中的纳米中间件从CouchDBstream式传输video。 video在浏览器上收到。 我不知道如何在客户端上传输它,以及如何在HTML标签中显示它。 这里是我的NodeJS代码来读取从我从这里find的CouchDB的附件: if (req.headers.range) { var stream = db.attachment.get(docid, docname, {Range: req.headers.range}); stream.on('response', function(response) { var start = req.headers.range.replace(/bytes=/, "").split("-")[0]; var end = response.headers['content-length']; res.writeHead(206, { 'ETag': response.headers.etag, 'Content-Range': 'bytes ' + start + "-" + (end – 1) + '/' + end, 'Accept-Ranges': 'bytes', 'Content-Length': end – start, 'Content-Type': response.headers['content-type'] }); }); […]

在收到指定内容范围的206后,Firefox不会请求更多的数据

为了给出一些上下文,我有一个<video>标签,它的src属性指向了我的node.js服务器上的一个方法。 该方法从另一个服务器获取mp4文件,或者是mp4文件的一部分 ,具体取决于浏览器指定的Range HTTP标头,例如: Range:bytes=0- 。 预期行为(Chrome行为) 为了防止我的node.js服务器从第三方服务器下载整个文件,我实现了一个大约5MB的最大缓冲区一次下载。 所以如果用户发送一个请求来获取带有标题的video GET /play-test/videoId HTTP/1.1 Host: 127.0.0.1:8000 Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Accept-Encoding: identity;q=1, *;q=0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 Accept: */* Referer: http://127.0.0.1:8000/movie/99861 Accept-Language: en-US,en;q=0.8,es;q=0.6 Range: bytes=0- ..然后我的服务器将作出回应 HTTP/1.1 206 Partial Content X-Powered-By: Express Content-Range: bytes 0-5000000/415473786 […]

Google Chrome中的videosearch:如何处理连续的部分内容请求?

这个问题可能有些压倒性的,但我觉得Google Chrome浏览器的videosearch方式很接近,但对我来说还是非常困惑,支持很难find。 如果我没有弄错,Chrome最初会发送一个范围字节为0的请求头,以testing服务器是否理解部分内容请求,并期望服务器以状态码206作为响应。 我已阅读以下答案以获得更好的理解: 需要更多的代表链接他们的主题是: 无法在chrome中查找html5video或audio HTML5video不会循环播放 HTTP范围标题 我的服务器由Node.js支持,在播放过程中,我无法从chrome中获取连续的范围请求。 当请求一个video时,服务器接收到一个字节= 0,然后服务器回应状态码206,然后媒体播放器中断 。 我的疑惑是与响应头,因为我不知道如何构build我的响应头,并处理最终的范围请求: 我是否最初回答状态代码200或206 ? 当我回应206我只接收字节= 0-,但是当我回应200我接收字节= 0-之后,字节= 355856504-。 如果我将video文件的总内容长度减去355856504,结果是58,字节= 0-58似乎是一个有效的内容范围? 但是,在这两个请求后,我没有收到来自Chrome的范围请求。 我也不确定响应头中的Content-Range应该看起来像“bytes = 0-58”还是像“bytes = 0-58 / 355856562”。 这是代码 if(req.headers.range) console.info(req.headers.range); // prints bytes=0- const type = rc.sync(media, 0, 32); // determines mime type const size = fs.statSync(media)["size"]; // determines content length // String […]

HTML5video在Firefox上缓慢加载,但在Chrome上非常快

我目前正在实施来自公司另一个站点的videostream代理,透明地处理身份validation。 整个身份validation,部分内容和stream媒体部分似乎迄今为止工作正常,除了一些小的细节:它在Chrome和Edge上运行得非常快,但在FireFox上加载非常缓慢。 而且,如果你从一开始就播放video,FireFox只会发生这种缓慢; 如果你跳过几秒钟,从那一刻开始正常播放。 另外,奇怪的是,如果支持部分内容被删除,video加载好FireFox,但当然,跳过前进是不可能的。 到目前为止,我注意到的一件事情是,FireFox似乎首先发出一个没有“范围”头的请求,然后用“范围”头保持多个请求。 另一方面,Chrome只提供一个没有“范围”的请求; 如果您尝试跳过,则只会将“范围”添加到标题中。 此外,当您从一开始播放video时,FireFox似乎多次请求相同的范围。 有谁知道为什么FireFox会这样做,我能做些什么来改变它的行为或提供它所需要的? 'use strict' const express = require('express'); const router = express.Router(); const request = require('request'); const setCookie = require('set-cookie-parser'); const _ = require('lodash'); const logger = require('./log').normal; const CAMINHO_BASE = 'http://placewherethevideosaretakenfrom/'; let videoEstaAutenticado = false; router.get('/video/*', (req, res) => { let caminho = req.params[0]; logger.info('Video no […]

Crossdevice编码静态文件在浏览器中使用FFMPEGstream(分段h264?)

我在NodeJS中构build了一个媒体中心应用程序, (你可以在Github上查看: https : //github.com/jansmolders86/mediacenterjs ) 我正在使用FFMPEG将本地(静态)电影转码为一个stream,然后发送到浏览器。 起初,我使用了Flash在浏览器中工作的h264,但我真的需要它在Android上工作(所以没有Flash),最好在Raspberry Pi上工作。 但是让它在所有设备上播放都让我绝对疯了! 我已经从无数小时阅读文章,教程和堆栈溢出post中得到了所有这些难题,这使我得出结论,我需要产生以下结论: 使用video编解码器H264转码为MP4 移动moovatom'-movflags'来制作MP4stream式传输 将stream分段,Apple也可以播放stream。 但是没有办法。 每次我产生一系列FFMPEG设置,要么不工作,要么在某些设备上工作,而不是在所有设备上工作。 我的一些失败的尝试在哪里: 我的闪光尝试 – > 主要问题(不在IOS中运行): '-y','-ss 0','-b 800k','-vcodec libx264','-acodec mp3'\ '-ab 128','-ar 44100','-bufsize 62000', '-maxrate 620k'\ metaDuration,tDuration,'-f flv 我的HLS尝试 – > 主要问题(不在浏览器中运行): '-r 15','-b:v 128k','-c:v libx264','-x264opts level=41'\ '-threads 4','-s 640×480','-map 0:v','-map 0:a:0','-c:a mp3'\ '-b:a 160000','-ac 2','-f hls','-hls_time 10','-hls_list_size 6'\ […]