我正在使用webRTC编写带有视频通话的聊天应用程序.我有两个MediaStream,远程和本地,并希望合并并将它们保存为一个文件.因此,当打开文件时,我将看到大视频帧(远程流)和右上角的小视频帧(本地流).现在我可以使用RecordRTC分别记录这两个流.我怎样才能将它们与nodejs合并? (没有代码,因为我不知道它是如何完成的)
解决方法
您可以将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
这就是你想要的?
更新:我忘了添加,在节点中你需要的只是一个运行FFmpeg的模块,有很多:
https://nodejsmodules.org/tags/ffmpeg