合并两个视频流并保存为一个文件

时间:2013-10-03 08:52:25

标签: node.js video-streaming webrtc

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

1 个答案:

答案 0 :(得分: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.mp4in_picture.mp4读取,然后它将一些信息发送到-filter_complex标志...

-filter_complex标记取[0:v:0](第一个输入,第一个视频轨道)并将此视频缩放为640x480像素,并将视频标识为[main_video],然后取[1:v:0] 1}}(第二个输入,视频轨道0)并将视频大小调整为240x180px,命名视频[in_picture],然后它合并两个视频,在x = 390 y = 10时叠加第二个视频。

然后将输出保存到output.mp4

这就是你想要的?

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