gpt4 book ai didi

javascript - 使用 Node JS 将 h264 文件转换或包装为 mp4

转载 作者:行者123 更新时间:2023-12-01 01:43:37 26 4
gpt4 key购买 nike

我正在 Raspberry Pi 上拍摄视频,并希望将原始 h264 文件转换为 mp4 文件,或者将其包装在 mp4 中,就像使用命令行/Python 完成的那样。然而,我希望在 NodeJS 中做到这一点。 npm 上似乎有很多使用 Raspberry Pi 的 mp4-box 库的 Node JS 库。然而,它们都没有适当的文档或似乎适合我的项目的需求。我不知道我是否遗漏了什么或者这是否不可能。

最佳答案

没有直接的方法可以将 H.264 编码文件嵌入到 MP4 容器中,而无需从头开始实际构建整个文件结构。这是可行的,但为了做到这一点,您需要了解 mp4 容器格式(很大程度上基于 Quicktime MOV 容器)并使用 TypedArrays 构建它,结果是您可以保存为 MP4 文件(我创建了一个 paste here 描述容器文件结构)。

另一种方法是生成 FFmpeg来自 Node.js(或直接使用该软件)并提供 H.264 作为输入并将其保存为 MP4 文件。这非常简单。该命令类似于:

ffmpeg -i yourH264encodedFileHere -c:v copy mp4FileContainer.mp4

要从 Node 运行它,可以使用 spawn (参见示例)。

这种简单方法的替代方法是安装并使用 fluent-ffmpeg NPM module它完成了所有繁重的工作。

示例

var ffmpeg = require("fluent-ffmpeg");
var inFilename = "video.h264";
var outFilename = "video.mp4";

ffmpeg(inFilename)
.outputOptions("-c:v", "copy") // this will copy the data instead or reencode it
.save(outFilename);

一些注意事项:

  • Fluent 对文件名(空格等)可能很挑剔。
  • FFmpeg 需要预先安装并在全局路径中可用。如果您不希望这样,可以使用 ffmpeg.setFfmpegPath(pathToFFmpegBin) 代替。
  • 要在 RPI 上安装 FFmpeg,this resource可能有用。

关于javascript - 使用 Node JS 将 h264 文件转换或包装为 mp4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52151317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com