Tag: ffmpeg

Node.jssubprocess问题与参数 – 报价问题?,FFMPEG问题?

我需要能够从我的Node.js应用程序执行FFMPEG。 我相信这个问题可能与正确指定命令行参数有关,而不是特定于FFMPEG,但是由于我一直无法缩小这个问题,我提出了我的整个问题。 我可以成功执行命令提示符下面的命令: C:\Brad\ffmpeg.exe -f dshow -i audio="Microphone (SoundMAX Integrated" testaaa.mp3 FFMPEG按预期启动,从我的audio设备录制audio,并写入MP3文件。 现在,我尝试在Node.js应用程序中做同样的事情 : childProcess = child_process.spawn('C:\\Brad\\ffmpeg.exe', ['-f', 'dshow', '-i', 'audio="Microphone (SoundMAX Integrated"', 'testaaa.mp3']); childProcess.stderr.on('data', function (data) { console.log('StdioSource received data from STDERR: ' + data); }); 在Node.js中,FFMPEG失败! 错误很简单: [dshow @ 0000000001eded80] Could not find audio device. audio="Microphone (SoundMAX Integrated": Input/output error 考虑到可能由于某种原因,这是一个奇怪的权限错误,我决定从我的Node应用程序中运行带有-list_devices true FFMPEG, […]

使用ffmpeg进行video转换,以定位Android和iOS移动设备

我正在为Android和IOS构build一个反应本机应用程序,后端API使用NodeJS编写。 用户可以从他们的手机上传video,一旦上传了用户,他们的朋友就可以观看video – 因此video需要以可在Android和IOS上播放的格式进行存储。 我的问题涉及用户上传的video转换。 几年前,我开发了一个类似的应用程序。 我使用了repo node-fluent-ffmpeg ,它提供了一个很好的API来与FFmpeg进行交互。 在之前的项目(这是一个networking应用程序),我把上传的video转换成两个文件,一个.mp4和一个.webm – 如果用户上传了一个MP4,那么我会跳过MP4步骤,如果他们上传一个。 WEBM。 这有点慢。 现在我几年后也遇到了同样的要求,经过一番调查,我认为把video转换成最后一个项目是错误的。 我读过,我可以简单地使用FFmpeg来更改video的容器格式,这比从头开始转换它们要快得多。 我上次使用的video转换代码沿着以下方向行进: var convertVideo = function (source, format, output, success, failure, progress) { var converter = ffmpeg(source); var audioCodec = "libvorbis"; if (format.indexOf("mp4") != -1) { audioCodec = "aac"; } converter.format(format) .withVideoBitrate(1024) .withAudioCodec(audioCodec) .on('end', success) .on('progress', progress) .on('error', failure); converter.save(output); […]

如何在编码和分割audio文件时,在重构audio文件时不会在音段之间产生间隙(或audio突变)?

我正在开发一个Web应用程序,需要多个audio文件的stream式传输和同步。 为此,由于定时audio的重要性,我使用HTML5audio标签上的Web Audio API 。 目前,我正在使用FFMPEG的分段function来编码和分割audio文件成更小的块。 我分割它们的原因是我可以从文件的中间开始stream式传输,而不是从头开始(否则我只需要使用UNIX split来分割文件, 如下所示 。问题是,当我将stringaudio片段一起回来,我得到段之间的audiostream行音乐。 如果我在.wav文件中使用PCM编码(pcm_s24le)对段进行编码,则回放是无缝的,这导致我相信编码器正在填充文件的开头或结尾。 由于我将处理许多不同的audio文件,使用.wav将需要太多的带宽。 我正在寻找以下解决scheme之一的问题: 如何无缝地分割编码的audio文件, 如何强制编码器不使用ffmpeg(或其他工具)填充audio帧,或者 什么是更好的方式来stream式audio(开始在一个任意的轨道时间),而不使用audio标签? 系统信息 自定义node.js服务器 在上传audio文件时,node.js将数据传送到ffmpeg的编码器 需要使用HTML5 Web Audio API支持的编码 服务器通过WebSockets套接字一次发送audio块1 提前致谢。 我试图尽可能清楚,但如果你需要澄清,我会更愿意提供。

将HTML Canvas / WebGLanimation服务器端录制到video中的最佳方法?

我有一套可以在Canvas(fabric.js)或WebGL(three.js)中制作的animation。 我需要通过脚本自动logging它们,服务器端,并输出一个video文件。 animation包括: 图片 video(带audio) 其他animation/效果 在过去几个月里,我已经研究了很多。 结果 1. 用户PhantomJS + FFMPEG 在无头浏览器(PhantomJS)上运行HTML Canvasanimation并用FFMPEGlogging。 这里的问题是PhantomJS既不支持WebGL也不支持Video元素。 http://phantomjs.org/supported-web-standards.html 2. 使用Websockets使用DataURL将数据发送回服务器 在这里,我们还需要在浏览器上运行animation( 我们不能因为我们必须在服务器上做所有事情 )。 3. 使用节点canvas 这是TJ Holowaychuk的一个库,它允许在Node.js上渲染HTML Canvas。 但它有其自身的局限性,加上我没有真正探索过这个领域。 (如果有人可以更多地了解这个图书馆) 如果有人以前做过,或可以指导我有用的地方。 我们所需要做的就是使用一些数据来创buildanimation并将其logging到video中,而服务器端的所有内容都将logging下来。

你如何使用Node.jsstream式传输MP4文件与ffmpeg?

我一直在努力解决这个问题好几天了,真的很感谢这个话题。 我能够使用fluent-ffmpeg成功传输存储在Node.js服务器上的mp4audio文件,方法是将文件的位置作为string传递,并将其转码为mp3。 如果我从同一个文件创build一个文件stream,并将其传递给fluent-ffmpeg,它可以用于mp3input文件,而不是mp4文件。 在mp4文件的情况下,没有错误抛出,并声称stream成功完成,但没有什么在浏览器中播放。 我猜这是与存储在mp4文件末尾的元数据有关,但我不知道如何编码。 这是完全相同的文件,当它的位置被传递给ffmpeg,而不是stream。 当我尝试传递一个stream到S3上的mp4文件时,再次没有错误,但没有stream到浏览器。 这并不奇怪,因为ffmpeg不能在本地作为stream来处理文件,所以期待它从s3处理stream是一厢情愿的想法。 我怎样才能streams3 mp4文件,而不是作为一个文件本地存储在本地? 如何获得ffmpeg来做到这一点,而不是转码文件呢? 以下是我目前无法使用的代码。 请注意,它试图将s3文件作为stream传递给ffmpeg,并将其转码为一个mp3,我不想这样做。 .get(function(req,res) { aws.s3(s3Bucket).getFile(s3Path, function (err, result) { if (err) { return next(err); } var proc = new ffmpeg(result) .withAudioCodec('libmp3lame') .format('mp3') .on('error', function (err, stdout, stderr) { console.log('an error happened: ' + err.message); console.log('ffmpeg stdout: ' + stdout); console.log('ffmpeg stderr: ' + stderr); […]

电子 – 如何在电子应用程序中使用ffmpeg

在上一个版本(v0.31.0)中,电子附带一个静态链接的FFMpeg库(不是命令行工具,请参阅#2588 ) 我知道ffmpeg的许多nodejs模块,但它们看起来都像命令行工具的api,所以如何理想地访问与电子捆绑的ffmpeg库并编码stream?

Node.js:从jpeg图像到video文件的实时转换

我使用node.js和通过socket.io库我收到实际上是jpeg图像的数据块。 这些图像是从远程摄像头捕获的实时video帧。 我不得不以jpeg帧stream式传输video。 我正在寻找一种方法来在video文件(mpeg 4或mjpeg文件)中即时转换这些jpeg图像。 节点有一个库可以做到这一点? 我已经看了一下Node-fluent-FFMPEG库,但是唯一给出的例子是将jpeg文件转换为video,而不是从jpeg图像stream中进行转换。 或者,ffmpeg for windows支持jpeg图像stream作为input吗?

AWS Lambda制作video缩略图

我想从上传到S3的video缩略图,我知道如何使用Node.js和ffmpeg。 根据这个论坛post,我可以添加库: ImageMagick是目前唯一默认提供的外部库,但您可以在创buildLambda函数时提供的zip文件中包含任何其他依赖项。 请注意,如果这是本机库或可执行文件,则需要确保它在Amazon Linux上运行。 但是我怎样才能把静态ffmpeg二进制文件放在aws lambda? 我怎样才能使用AWS Lambda从Node.js调用这个静态二进制文件(ffmpeg)? 我是亚马逊AWS和Linux的新手 谁能帮我?