合并两个videostream并保存为一个文件

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

您可以使用FFmpeg和-filter_complex ,这里是一个使用FFmpeg版本N-62162-gec8789a的工作和testing示例:

 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从两个input文件main_video.mp4in_picture.mp4 ,然后它发送一些信息给-filter_complex标志。

-filter_complex标志采用[0:v:0] (第一个input,第一个video轨道),并将这个video缩放为640x480px,并将video标识为[main_video] ,然后采用[1:v:0] (第二个input,video轨道0),并将video大小调整为240x180px,将video命名为[in_picture] ,然后合并两个video,在x = 390 y = 10时叠加第二个video。

然后它将输出保存到output.mp4

这是你想要的吗?

更新:我忘了添加,所有你需要在节点是一个模块来运行FFmpeg,有很多这些: https : //nodejsmodules.org/tags/ffmpeg