Articles of video

Node.jsvideo上传获取编解码器

我的用户可以上传video到我的网站。 然而,问题出现了,一些video文件有一个浏览器(YUV)不支持的编解码器。 所以我想看看我可以看到编解码器。 此刻我使用multer来处理我的文件: app.use(multer({ dest: './uploads/', rename: function (fieldname, filename) { return filename + Date.now(); }, onFileUploadStart: function (file) { var i = 0; }, onFileUploadComplete: function (file) { //Redirects request to path var i = 0; } })); 设置断点和检查文件我得到的唯一信息: 所以我的问题是: 无论如何看到上传文件的编解码器?

显示页面上的videostream块(node.js)

在Node.js中,我还是个新手,如果我听起来语无伦次,试图弄清楚一些事情,请原谅。 所以我已经阅读了一些关于stream的初学者笔记,现在我正在testing它。 我在我的项目文件(公共/图像/video/ Seinfeld.S09E07.720p.WebRip.ReEnc-DeeJayAhmed.mkv)中获得了这些Seinfeld情节(.mkv文件),我想在页面上显示。 现在,简单的select就是把它放在我的ejs文件中的video标签的“src”中。 但是,我想stream式传输video部分,以便它不必等待整个文件准备好显示该情节。 我以为我可以使用.createReadStream为此。 但是,我不知道如何将那些准备好的video数据块传输到我的网页中,以便在video播放器中显示它们。 index.js服务器端 var express = require('express'); var router = express.Router(); var fs = require('fs'); /* GET home page. */ router.get('/', function(req, res, next) { var myReadStream = fs.createReadStream(__dirname + '/../images/videos/Seinfeld.S09E07.720p.WebRip.ReEnc-DeeJayAhmed.mkv'); myReadStream.on('data', function (chunk) { // no idea what to do from here }) res.render('index', { title: 'Express' }); […]

用fluent-ffmpeg添加字幕

我试图把字幕烧成一个video。 这个命令完全可以从命令行运行: ffmpeg -i in.mp4 -vf subtitles=sub.srt:force_style='Fontsize=20' out.mp4 我在服务器端的代码似乎没有太多(虽然创buildtest.mp4) ffmpeg('temp/subtitleVideos/qTWVbM5pkKms_pJbE8OAvH3N.mp4') .outputOptions( '-vf subtitles=temp/subtitleVideos/qTWVbM5pkKms_pJbE8OAvH3N.srt' ) .on('error', function(err) { console.log('Error: ' + err.message); }) .save(path + 'test.mp4'); 我得到以下错误: Error: ffmpeg exited with code 1: Error opening filters!

使用Nodejs来服务一个MP4video文件

我正在尝试从nodejs服务器提供〜52MB的mp4video文件。 以下附件是用于提供文件的代码的屏幕截图。 我有一个MIMEtypes的静态文件调用的对象,其中包含mp4的MIMEtypes。 var mimeTypes = { html: 'text/html; charset=utf-8', jpeg: 'image/jpeg', jpg: 'image/jpeg', png: 'image/png', js: 'text/javascript', css: 'text/css', mp4: 'video/mp4' }; 但是,当我尝试导航到铬页面,我得到的错误: GET http://localhost:8888/videos/movie.mp4 net::ERR_INCOMPLETE_CHUNKED_ENCODING 现在这个相同的逻辑(上面截图)用于服务图像和CSS就好了,但尝试服务mp4时失败了。 查看Chrome中的networking请求面板,我可以看到服务器响应200 OK状态,并提供零字节文件作为video。 networking请求中的字节范围也看起来很可疑,但我对HTTP请求知之甚less。 查看stats对象(如下所示,从fs.lstat得到),看起来文件'知道'如何被分割成4096字节的块,但是我不断得到不完整的分块编码错误。 我没有杀毒软件,并试图closuresChrome /使用其他浏览器的各种设置,但我看不到video。 {"dev":16777220,"mode":33188,"nlink":1,"uid":501,"gid":20,"rdev":0,"blksize":4096,"ino":1070608,"size":51246445,"blocks":100096,"atime":"2016-06-15T23:06:27.000Z","mtime":"2016-06-15T21:41:00.000Z","ctime":"2016-06-15T21:45:56.000Z"} 有没有我失踪的标题? 我不知何故过早地结束了回应? 我现在无能为力

VIDEOJS:在每个播放列表项目之前播放前贴片添加

我使用videojs-playlist插件以及Google的videojs-ima插件。 除了我只在第一个video之前收到预加载广告外,一切都可以顺利进行。 我想在播放列表中的每个video之前添加一个 。 基本设置是样板,但供参考: this.player = videojs('currentvideo', { autoplay : true, fluid : true }); this.player.playlist(this.playlist); this.player.playlist.autoadvance(5); const skippable_linear = {google's test ad}; const options = { id: 'currentvideo', adTagUrl: skippable_linear, debug : true }; this.player.ima( options ); this.player.ima.requestAds(); 我尝试过使用各种方式手动调用“结束”事件处理程序中的广告,例如再次调用requestAds : const _this = this; this.player.on( 'ended', function(){ /* some other stuff */ _this.player.ima.requestAds(); […]

在NodeJS中的高性能video文件服务器

我想在NodeJS中构build一个高可用性和高性能的video文件服务器和stream媒体video。 基本上,我想知道: 在NodeJS中创buildvideo文件服务器有哪些可能的方法。 它会pipe理很多并发请求吗? 由于这是一个video文件,每个请求都花费时间来完全解决。 有没有其他的可能性使用另一个静态文件服务器。 请告诉我如何走上正确的道路。

Node.js:获取mp4文件的video和audio格式信息

我是node.js的新手 我需要为给定的video文件提取audio和video格式(编解码器)信息。 我知道如何在bash中这样做,这要感谢mplayer: $ mplayer -vo null -ao null -identify -frames 0 myvideo.mp4 2>/dev/null | grep FORMAT ID_VIDEO_FORMAT=H264 ID_AUDIO_FORMAT=MP4A 我想知道是否有一个npm模块(库),让我得到相同的信息。 或者我可以启动上面的命令formsnode.js和读取/parsing标准输出(我认为有很多的例子)。 不过,我宁愿使用node.js“原生”解决scheme。

Node.jsasynchronousvideo转换慢

我写了一个小网站/服务,它可以从一个网站(目前Youtube)下载一个video,并将其转换为一个mp3文件,并将其作为响应发回。 例如,当您请求http:// localhost:8000 / v = http://www.youtube.com/watch?v = HhoewflkQu0时 ,它会下载此video并响应以MP3编码的audio层。 这一切工作得很好,我的问题是,这是非常缓慢的,我不明白为什么。 简化脚本的行为如下: 下载video并将其写入ffmpeg的stdin,然后stdout转到响应。 video(MP4,FLV) – > FFMPEG – > MP3 我用curl找出脚本有多快: $ curl http://localhost:8000/v=http://www.youtube.com/watch?v=HhoewflkQu0 我只得到约5-10K。 那为什么这么慢呢? 我从中下载video的服务器很慢。 转换很慢(因为CPU速度很慢)。 node.js – > FFMPEG之间的数据传输很慢。 我试图下载一个正常的下载pipe理器的video,我得到了约320k,这是我的正常下载速度,所以第一点不是瓶颈。 到了第二点和第三点,我试图写一个本地文件到标准input,我得到了大约60万,所以不是这样。 那么为什么我的脚本太慢了,我能做些什么来使其更快? https://gist.github.com/1304637 提前致谢。

FLVstream重新包装为httpstream

我有基于http协议和node.js的mediaserver。 它使用ffmpeg从广播电脑接收任何flvstream,像这样(camcapture是内部控制台工具): $ camcapture -f mpegts – | ffmpeg -i – -acodec copy -vcodec copy -f flv http://mediaserver/publish_url 我想通过http restream这个flvstream给客户端。 我应该如何为每个新客户重新生成flv数据?

捕获缩略图Whilte下载Youtubevideo

我想在特定时间线上捕捉Youtubevideo的缩略图。 (例如3.2秒)我用ytdl和fluent-ffmpeg和node.js来实现它。 下载完成后可以捕获缩略图。 var fs = require('fs'); var ytdl = require('ytdl'); var ffmpeg = require('fluent-ffmpeg'); var videostream = fs.createWriteStream('video.flv'); var myytdl = ytdl('http://www.youtube.com/watch?v=A02s8omM_hI'); myytdl.pipe(videostream); videostream.on('close',function() { console.log('Downloading complete…'); var proc = new ffmpeg({ source: 'video.flv', nolog: true }) .withSize('150×100') .takeScreenshots(1, '/home/test', function(err) { console.log(err || 'Screenshots were saved'); }); }); 但是,我无法实现在下载时捕获缩略图。 我想要做的基本想法如下。 从X秒开始下载Youtubevideo。 (工程) 将其pipe理为可读/可写(双工)内存stream(需要通知) […]