我对ffmpeg很陌生,所以如果这不可能或答案很明显,我深表歉意。我有一个 ffmpeg 进程,我正在将流(音频和视频)录制到 .webm 文件。
这是我服务器上的 webrtc 客户端,我想根据活动发言人的身份切换 ffmpeg 将哪个流作为输入。
只要我不尝试使用参数混淆流(视频和音频),它就可以正常工作:
'-loglevel',
'debug',
'-protocol_whitelist',
'pipe,udp,rtp',
'-fflags',
'+genpts',
'-f',
'sdp',
'-i',
'pipe:0',
'-map',
'0:v:0',
'-c:v',
'copy',
'-map',
'0:a:0',
'-strict',
'-2',
'-c:a',
'copy',
'-flags',
'+global_header',
'./recordings/ffmpegrecording.webm'
我用节点启动ffmpeg进程:
this._process = child_process.spawn('ffmpeg', this._commandArgs);
然后我将流传输到 ffmpeg 进程:
sdpStream.pipe(this._process.stdin);
有什么方法可以替换输入流而不杀死 ffmpeg 进程或以其他方式弄乱它(破坏元数据或其他不良后果)?
任何指向正确方向的指针将不胜感激!
非常感谢 :)