Tag: html5

使用NodeJS或PHP进行低质量和高质量的videostream传输

我正在尝试在PHP和NodeJS中开发一个客户端应用程序。 该应用程序处理网站上的videostream(HTML和JavaScript)以及移动应用程序(iOS和Android)。 在这个应用程序中,用户可以上传一个高达100MB的video,任何其他用户都可以在他的手机或网站上播放该video。 问题是我必须提供质量控制设置,例如,如果客户的networking连接速度慢,他可以select低质量的video播放,或者如果互联网连接足够好,那么他可以播放高质量的video。 现在在这里,高质量的video等于上传的video的质量,我们不转换video。 问题是,我试图使用PHP和NodeJSstream式传输video都运行良好,但是没有办法将video降级到低质量。 你可以build议我一些图书馆的NodeJS或PHP,这可以让我stream上传video选项切换到低质量或高质量。 这是一个NodeJS库: https : //www.npmjs.com/package/stream-transcoder 但我不确定。

将Web套接字限制为LANnetworking

是否有可能限制HTML5 WebSocket到局域网? 例如,我将在http://example.com上有一个实时网站,同一本地networking上的所有用户都需要被视为一个组。 同样,这些相同的用户将无法看到或影响局域网外用户的任何操作。 我已经研究过诸如NowJS这样的包装器,并且已经内置了对“groups”的支持,但是我不确定这是否是我所追求的。 有任何想法吗?

有人可以帮助我在Node.Js中设置缓冲区吗?

我正试图将HTML5video文件加载到iPad上。 我正在使用node.js 这里是代码: return function staticProvider(req, res, next) { if (req.method != 'GET' && req.method != 'HEAD') return next(); var hit, head = req.method == 'HEAD', filename, url = parseUrl(req.url); // Potentially malicious path if (~url.pathname.indexOf('..')) { console.log("forbidden", url.pathname); return forbidden(res); } // Absolute path filename = Path.join(root, queryString.unescape(url.pathname)); // Index.html support if (filename[filename.length – […]

如何将js文件以自定义的方式与grunt.js结合?

我想要一个基于令牌的search并replacegrunt的function。 喜欢 single:{ input:"./input.js", output:"./output.js", tokens:[{ token:"$1", file:"./file.js" },{ token:"%2", string:"replacement string" },{ token:"!3", file:"./file.txt" }] }, 从.. grunt-combine https://github.com/mcgaryes/grunt-combine/ 这在grunt .4版本中不受支持。 任何类似的图书馆在那里..或用默认的“concat”方法可以我们去这个..?

只提供请求的内容范围

使用Node.js,我试图创build一个video服务器,只服务于较大的媒体文件的一小部分。 按照这个要点,我已经能够创build一个video服务器,并将其提供给一个HTML5video播放器使用: <video controls width="500"> <source src="http://127.0.0.1:1337/" type='video/mp4'> </video> 但是,范围请求从0开始,并且有可能超出兴趣点(如果说我只想查看25秒以下的video)。 理想情况下,我可以从某个任意点播放已知的播放时间,并仅播放该内容。 我知道一个解决scheme是寻求video客户端的一个特定的点,并停止播放已知的时间后, 但有可能只提供所需的video内容? 是唯一的傻瓜certificate方式来实现这个使用像FFMpeg的工具修剪成一个更大的剪辑更小的块? 提前致谢, GW

nodejs:使用socket.io更新html5canvas白板

我正在尝试创build交互式白板应用程序。 我想要做的是,无论是在sender.html上绘制应更新receiver.html,但它是行不通的。 这是代码 – sender.html和iwb-sender.js var socket; function startSocket() { socket = io.connect(); } function sendData(coordx, coordy, actualColor) { var data = { x: coordx, y: coordy, color: actualColor }; socket.emit("iwb-message", data); } <!DOCTYPE html> <html> <head> <title>A web whiteboard</title> <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1"><meta charset="utf-8"> <script src="https://cdn.socket.io/socket.io-1.3.2.js"></script> <script src="wb/wb-client.js" type="text/javascript"></script> <script src="iwb/iwb-sender.js" type="text/javascript"></script> […]

使用nodejs和Express进行videostream

我正尝试使用nodejs将videostream式传输到html5video播放器并进行expression。 很多人从我所能find的东西之前就已经做过了,但是很less有人用快递(我发现的)。 大多数人说这样做: var express = require('express'); var request = require('request'); var stylus = require('stylus'); var fs = require('fs'); var path = require('path'); var url = require('url'); var http = require('http'); var app = express(); app.use(stylus.middleware({ // Source directory src: __dirname + '/assets/stylesheets', // Destination directory dest: __dirname + '/public', // Compile function compile: function(str, […]

在JavaScript中检测video的编解码器

我正在研究基于Electron的桌面应用程序(即Node.js和Chrome浏览器shell挤在一起),其中一个function将包括从本地文件系统加载任意video文件。 我面临的挑战是我不会知道任意video文件使用的编解码器。 我可以过滤文件扩展名(即.mp4 , .webm等)…但MP4文件可以使用众多的编解码器,这是不明显的文件扩展名。 我真的不知道video文件是不支持的,直到HTML5video播放器空白(我甚至不知道如何以编程方式检测此时发生)。 我已经使用loadedmetadata事件处理程序来检测video的尺寸,但似乎并没有公开有关底层编解码器的信息。 有没有办法解决? 我正在寻找可以在本机“主”进程中识别编解码器的Node.js包,而不是让Chrome“渲染器”进程尝试在浏览器级别检测它。 不过,我所看到的所有Node.jsvideo包都依赖于ffmpeg可执行文件,我无法轻松地将其与我的Electron应用捆绑在一起。 有一百多个代码样本用于检测您的浏览器支持哪些编解码器 。 但是,这是来自假设,你正在处理一个已知的video文件和一个未知的浏览器。 那么相反呢…当你有一个有保证的浏览器,但一个未知的video文件?

如何使用node.js将当前正在下载的videostream传输到html5播放器?

我目前正在下载一个项目,下载一个洪stream,而下载时,它stream到一个HTML5video播放器。 我的项目的限制不让我使用peerflix或webtorrent。 我目前正在使用torrent-stream模块。 我的代码是在node.js和帕格。 具体如下: server.js var uri = 'magnet:?xt=urn:btih:11a2ac68a11634e980f265cb1433c599d017a759'; var engine = torrentStream(uri); let engineGo = function () { return new Promise(function (resolve, reject) { var engine = torrentStream(uri); engine.on('ready', function() { engine.files.forEach(function(file) { if (file.name.substr(file.name.length – 3) == 'mkv' || file.name.substr(file.name.length – 3) == 'mp4') { console.log('filename:', file.name); var stream = file.createReadStream(); var […]

下拉列表和值

我在设置下拉列表的值时遇到问题。 在这里,我正在粘贴我的代码。 HTML代码: <form ng-submit="save()"> <table style=" table-layout: fixed;" class="table"> <thead> <tr> <th>Section</th> <th>Names</th> <th>Marks</th> </tr> </thead> <tbody> <tr> <td>5th class</td> <td> <select id="5thclass" ng-model="setmarks.5thclass" ng-options="val for val in studentname"> <option ng-init="setmarks.5thclass=studentname[0]" selected="selected"></option> </select> </td> <td> <input type="number" name="5thclass" ng-model="setmarks.marks.5thclass"/> </td> </tr> </tbody> </table> <div class="sub" class="btn-group"> <input id="savebutton" type="submit" ng-click="Submit" value="Save" class="btn btn-primary"> </div><br […]