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