Articles of video streaming

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

从S3存储桶stream式传输video

我正在与nodejs服务器的videostream。 我已经使用Amazon S3存储桶作为video存储。 而nodejs正在Amazon EC2实例中运行。 为了响应客户端的请求来传输特定的video文件,需要首先将文件从S3存储桶下载到EC2实例(nodejs服务器),这是一个耗时的过程,客户端必须等待几秒钟video片段从nodejs发送到客户端。 我正在寻找一种方法来删除下载时间间隔。 我的问题是: 1#有没有一种方法可以从S3存储桶直接stream式传输? 要么 2#S3存储允许获得小块的存储文件,而不是下载整个文件? 注意:videostream应该被iOSvideo播放器使用。 我是videostream和S3存储的新手。 请build议我在这种情况下最好的解决scheme。

AirPlaystream式传输到HTMLvideo播放器

首先让我开始,我明白这个协议大多是闭源和苹果专有的。 抛开法律后果,我仍然希望得到一些帮助。 标题:AirPlaystream媒体到HTMLvideo播放器。 我想要做的是将AirPlay MOV文件传输到HTMLvideo播放器(可能是Flash)播放器。 我已经使用Node JS构build了AirPlay服务器,使用AppJS作为我的Window(webkit)容器,并且正确显示照片。 MDNS已经完成了。 Airplay客户端和服务器正常通信和切换协议等。这也不是video的问题。 协议部分完成。 我也可以从airplay客户端获取video文件,然后当文件完成后,我可以通过VLC,Quicktime等播放该文件。 我现在要找的是一个渐进式的下载types,可以播放video当数据进入时, 注:我不能通过VLC播放文件,而仍在下载。 可能是我在下面提到的一个问题。 我试图用VLC打开video文件(通过airplay客户端链接),而下载正在进行,但没有去。 这可能是MOV文件信息在文件的末尾。 如果是这样的话,AppleTV如何在不用首先下载的情况下即时播放video? 直到这一点,我一直在使用以下链接的协议文件,但似乎部分过时,video部分没有说如何检索video文件。 AirPlay协议: http : //nto.github.io/AirPlay.html#video 起初Flowplayer是一个好主意,直​​到我发现它不支持MOV文件types。 另外,另一个问题是MOV是一个实际的video文件types,还是一个容器? 在这个问题上: 是否有基于闪存的播放器可以播放stream中的MOV文件而无需下载完整的文件? 文件信息也可能在文件末尾,我不确定。 更新:所以,我似乎find了更多有关AirPlay协议的信息。 从这个网站: https : //github.com/unused/airstream airplay协议基本上可以播放通过http访问的mpeg-4(mp4,mov,ts,m4v)格式的video。 我可能只是逆向工程从客户端部分的项目,看看我能否得到一个有效的服务器实施。 不过看另一个网站的一个部分: http : //diveintohtml5.info/video.html 这样说: MPEG 4,通常带有.mp4或.m4v扩展名。 MPEG 4容器基于苹果的旧版QuickTime容器(.mov)。 苹果网站上的电影预告片仍然使用较早的QuickTime容器,但是从iTunes租借的电影是以MPEG 4容器提供的。

videostream媒体网站的最佳堆栈

我正在构build一个videostream服务,我正在权衡技术的使用选项。 我考虑过的一些选项是HTML5 + Node.js,Wowza。 我正在寻找一个高效的,可扩展的,并提供低延迟的stream。 我也希望它是安全的,因为一些video可能会被支付。 你会build议什么堆栈?

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 […]

我想开发多个video会议网站

我一直在研究video捕捉和stream媒体应用,试图解决RTCMulticonnection 。 我正在关注RTCMulticonnection的这个演示 ,并试图按照我的要求对其进行定制,但是这个演示不稳定,冻结,挂起或者断开连接,这对我没有用处,因为对多个用户来说性能不好。 所以我正在寻找像我可以使用webRTC / RTCMulticonnection好的图书馆。 我的要求很简单,任何用户创build聊天室和与其他用户共享链接,所以其他用户可以join这个房间,现在在这个房间里,每个用户都可以通过捕捉自己的相机看到对方的相机,并stream式传输给所有其他用户。 任何人都可以build议我好的图书馆,除了Flash。

NodeJS – 正在下载的videostream

我正在编写一个程序,将stream式传输当前正在下载到驱动器上的video文件。 我遇到的问题似乎是让浏览器实际播放video。 该脚本监听文件的变化,然后stream其余的,但除了显示一个空白的video页面之外浏览器不做任何事情。 var fs = require('fs'), http = require('http'), filename = '/home/qrpike/Videos/topgears.mp4'; http.createServer(function (req, res) { console.log(req.url); if( req.url == '/video.mp4'){ res.writeHead(200,{ 'Content-Type' : 'video/mp4', 'Cache-Control' : 'public', 'Connection' : 'keep-alive', 'Content-Disposition' : 'inline; filename=topgears.mp4;', 'Content-Transfer-Encoding' : 'binary', 'Transfer-Encoding' : 'chunked' }); fs.open(filename, 'r', function(err, fd) { if (err) throw new Error('Could not open […]

错误videostreamsocket.io + socket.iostream(超过最大调用堆栈大小)

我试图通过socket.io和socket.io-stream帮助创build一个摄像头videostream通过我的node.js服务器。 我想在/ camera中捕捉video,用video打开一个stream槽socket.io(在socket.io-stream的帮助下),并在索引url上接收它。 当我连接到服务器槽/相机,并因此启动stream,服务器崩溃的错误“RangeError:最大调用堆栈大小超过”。 错误似乎来自“/node_modules/socket.io/node_modules/has-binary/index.js:48:23”。 在示例中,我省去了大部分的任意代码,因为服务器/连接在传输数据snippits时工作正常。 这是我目前的设置: 服务器: io.on('connection', function(socket) { ioStream(socket).on('videoStream', function(stream, data) { socket.broadcast.emit('videoStream', stream); }); }); 相机 window.glob_socket = io(); var video = document.getElementById('camera'); navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia; if (navigator.getUserMedia) { navigator.getUserMedia({ audio: false, video: { width: 320, height: 240 } }, function(videoStream) { // Local preview video.src = […]

HLS使用节点JS进行stream式传输

我正在尝试使用node.jsstream式传输HLS内容。 不知何故,它不工作。 如果有人帮助我,这将会非常有帮助。 问题:试图从node.js服务HLS内容(不是直播stream,而是一组.ts文件和.m3u8播放列表 , 换句话说就是VOD内容 ) 文件夹结构 stream_test |— app.js |— node_modules |— streamcontent |— test.m3u8 |— segment0.ts |— segment1.ts . . . |— segment127.ts 我的app.js看起来像这样 var http = require('http'), url = require('url'), path = require('path'), fs = require('fs'); var mimeTypes = { "html": "text/html", "jpeg": "image/jpeg", "jpg": "image/jpeg", "png": "image/png", "js": "text/javascript", "css": […]