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