问题标签 [fluent-ffmpeg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1744 浏览

node.js - 从 Google Cloud Storage 读取文件流到 ffmpeg(使用 fluent-ffmpeg)

我正在尝试使用 fluent-ffmpeg 在 NodeJS 后端运行 ffmpeg,从 Google Cloud Storage 读取输入文件。如果我先下载文件,一切正常:

但是如果我尝试使用可读流作为输入,它会失败:

这是尝试进行转换时 ffmpeg 的完整输出。似乎可以很好地读取文件的详细信息,但由于某种原因它失败了,说“无法处理视频:ffmpeg 以代码 1 退出:管道:0:处理输入时发现无效数据”

0 投票
0 回答
137 浏览

node.js - 在 NodeJS 中使用归档器压缩音频文件

我使用 node-youtube-dl 有一个流来下载视频,我想使用 fluent-ffmmpeg 将其转换为 mp3。我也想压缩这个 mp3 音频发送给客户端下载,但我不知道如何压缩 mp3 音频。我找到了 StackOverflow 的每个角落,但没有找到任何解决方案。请帮我!谢谢

如果你能帮助我,我真的很感激!再次感谢

0 投票
1 回答
989 浏览

node.js - 使用 ffmpeg 进行图像到视频的转换

我正在尝试使用带有 node-fluent-ffmpeg 的 ffmpeg 制作一个每秒显示一张图像的视频。我正在使用示例中显示的此代码,但我只能获得 1 秒的视频。如何修改参数以每秒获取 1 张图像并获得允许显示所有图像的长度的视频?

0 投票
0 回答
542 浏览

javascript - 如何使用 FFmpeg 将专辑封面添加到 mp3 流?

我遇到了一些问题,如果我能得到一些见解,我将不胜感激。

我想要做的是将专辑封面添加到将从前端下载的 mp3 文件中。

语境

我正在从 YouTube 下载视频流并使用fluent-ffmpeg.
要获取视频,我使用ytdlnpm 模块。

然后我将此流传输到前端。

我发现了什么

fluent-ffmpeg提供pipe()saveToFile()

我想的是,当我使用该saveToFile()功能并将我的流实际保存到一个 mp3 文件中时,它可以工作,我确实得到了专辑封面。

但是当我将流传输到前端甚至是文件时,歌曲会正确保存到文件中,但没有专辑封面。

这是我的代码

后端(NodeJS)

然后将它输送到我的前端。

前端(反应)

0 投票
1 回答
2195 浏览

node.js - 流利的ffmpeg如何用户保存回调

我正在使用 fluent-ffmpeg GIT 我想进一步处理保存的文件。但保存没有任何回调。如何使用已保存的文件进行承诺。我的代码是

我的问题是“保存”功能没有回调。那么我怎样才能再次将输出保存在 S3 上呢?

0 投票
1 回答
1225 浏览

javascript - fluent-ffmpeg h264 到 gif 抛出“错误 1”

下面是我将 h264 转换为 gif 的代码

这段代码在从 h264 到 mp4 时完美运行,只是想知道为什么它不能与 h264 到 gif 一起使用,或者我是否可以让它工作。

0 投票
0 回答
665 浏览

javascript - fluent-ffmpeg 没办法加速 GIF

使用 node.js 包fluent-ffmpeg,似乎没有办法加快我正在拍摄的视频/gif。我知道您可以将 setpts 与常规 ffmpeg 一起使用,但是每当我尝试将该命令合并到 fluent-ffmpeg 的编程用法中时,会说以下内容:.outputOption("-vf", "setpts=0.5*PTS")程序抛出错误,说明我使用的命令不正确。我是错误地合并它还是没有办法在 fluent-ffmpeg 中使用这个命令?

这就是我目前将文件从 h264 转换为 gif 所拥有的。下面编写的输出选项正在正常工作:

0 投票
2 回答
3226 浏览

node.js - 如何在 JavaScript 中使用 ffmpeg 将 H.264 帧解码为 RGB 帧

我正在尝试将 ffmpeg 编译成 javascript,以便我可以使用 node.js 解码 H.264 视频流。流是打包到 RTP NALU 中的 H.264 帧,因此任何解决方案都必须能够接受 H.264 帧而不是整个文件名。这些帧不能在 MP4 或 AVI 之类的容器中,因为解复用器需要每个帧的时间戳才能进行解复用,但我正在处理实时流,没有容器。

通过 RTP 流式传输 H.264

下面是我用来监听 udp 套接字的基本代码。在“消息”回调中,数据包是一个 RTP 数据报。数据报的数据部分是一个 H.264 帧(P 帧和 I 帧)。

我找到了Broadway.js库,但我无法让它工作,而且它不能处理我需要的 P 帧。我还找到了 ffmpeg.js,但可以让它工作,它需要一个完整的文件而不是一个流。同样,fluent-ffmpeg似乎不支持文件流。所有示例都显示了传递给构造函数的文件名。所以我决定编写自己的 API。

我目前的解决方案尝试

我已经能够将 ffmpeg 编译成一个大的 js 文件,但我不能那样使用它。我想围绕 ffmpeg 编写一个 API,然后将这些函数公开给 JS。所以在我看来我需要做以下事情:

  1. 将 ffmpeg 组件(avcodec、avutil 等)编译成 llvm bitcode。
  2. 编写一个公开解码功能并使用 EMSCRIPTEN_KEEPALIVE 的 C 包装器。
  3. 使用 emcc 编译包装器并将其链接到在步骤 1 中创建的位码。

我找到了 WASM+ffmpeg,但它是中文的,有些步骤不清楚。特别是有这一步:

:(我认为我被困在哪里

我不明白所有 ffmpeg 组件是如何编译成单独的 *.bc 文件的。我按照那篇文章中的 emmake 命令操作,最终得到了一个大的 .bc 文件。

2个问题

1. 有谁知道使用 emscripten 编译 ffmpeg 以便我可以将一些 API 暴露给 javascript 的步骤?
2. 有没有更好的方法(带有体面的文档/示例)使用节点解码 h264 视频流?

0 投票
0 回答
85 浏览

javascript - 连接后并非视频的所有部分都能正常播放

Node.JS 8.11.4,流利的 ffmpeg 2.1.2

我需要在一个视频文件中连接相同长度的不同视频的随机部分。连接继续进行,没有错误。但是当我播放最终的连接文件时,我看到某些部分的声音播放效果很好,其他部分的视频“冻结”但声音正在播放。

有什么问题?我希望所有部分在最终的连接文件中都能正常播放。

串联配置:

总共,我有 2 个视频的 16 个部分。一段持续时间为 10 秒。将来,视频文件和部分的数量会更大。

连接的 JavaScript 代码:

视频文件格式:

0 投票
0 回答
1002 浏览

node.js - 如何使用fluent-ffmpeg在nodejs上处理正确的ffmpeg命令?

我正在 nodejs 上编写编码服务器。实际上,我正在尝试从不同类型(宽度)的视频中创建一个主播放列表。我在 FFMPEG 上找到了一个实现这一点的命令:

但是在 nodeJs 中我总是得到一个错误的命令:

where-y出现两次。这是我的代码:

请问有人可以帮我吗?