5

我正在使用 webRTC 编写带有视频通话的聊天应用程序。我有两个MediaStream,远程和本地,想要合并并将它们保存为一个文件。因此,当打开文件时,我会在右上角看到大视频帧(远程流)和小视频帧(本地流)。现在我可以使用 RecordRTC 分别录制这两个流。我如何将它们与 nodejs 合并?(没有代码,因为我不知道它是如何完成的)

4

1 回答 1

3

您可以将 FFmpeg 与 一起使用-filter_complex,这是一个使用 FFmpeg 版本 N-62162-gec8789a 的工作和测试示例:

ffmpeg -i main_video.mp4 -i in_picture.mp4 -filter_complex "[0:v:0]scale=640x480[main_video]; [1:v:0]scale=240x180[in_picture];[main_video][in_picture]overlay=390:10" output.mp4

因此,此命令告诉 FFmpeg 从两个输入文件中读取,main_video.mp4然后in_picture.mp4将一些信息发送到-filter_complex标志...

-filter_complex标志采用[0:v:0](第一个输入,第一个视频轨道)并将此视频缩放为 640x480px 并将视频标识为[main_video],然后采用[1:v:0](第二个输入,视频轨道 0)并将视频大小调整为 240x180px 命名视频[in_picture],然后它合并两个视频,在 x=390 y=10 处覆盖第二个视频。

然后将输出保存到output.mp4

这就是你想要的吗?

更新:我忘了补充,你在 node 中只需要一个运行 FFmpeg 的模块,其中有很多: https ://nodejsmodules.org/tags/ffmpeg

于 2014-04-06T01:28:42.513 回答