NodeJs 中的子进程生成输出文件和目录
child process spawn output file and directory in NodeJs
我正在使用带有子进程的 ffmpeg 来合并音频和视频,但是当我尝试下载文件时,它正在同一文件夹中下载,但我希望它在 public文件夹。
以下是我的子进程生成代码。
// Start the ffmpeg child process
const ffmpegProcess = cp.spawn(ffmpeg, [
// Remove ffmpeg's console spamming
'-loglevel', '8', '-hide_banner',
// Redirect/Enable progress messages
'-progress', 'pipe:3',
// Set inputs
'-i', 'pipe:4',
'-i', 'pipe:5',
// Map audio & video from streams
'-map', '0:a',
'-map', '1:v',
// Keep encoding
'-c:v', 'copy',
// Define output file
'title.mp4',
], {
windowsHide: true,
stdio: [
/* Standard: stdin, stdout, stderr */
'inherit', 'inherit', 'inherit',
/* Custom: pipe:3, pipe:4, pipe:5 */
'pipe', 'pipe', 'pipe',
],
});
您可以设置cwd
选项。它将设置您的子进程执行其代码的路径。例如,如果你喜欢 运行 你的进程在你的 fs 的根目录下,你会这样做:
............
], {
cwd: '/',
windowsHide: true,
stdio: [
/* Standard: stdin, stdout, stderr */
'inherit', 'inherit', 'inherit',
/* Custom: pipe:3, pipe:4, pipe:5 */
'pipe', 'pipe', 'pipe',
],
});
所以请设置您的 public 文件夹的路径,然后它应该会在那里下载。
我正在使用带有子进程的 ffmpeg 来合并音频和视频,但是当我尝试下载文件时,它正在同一文件夹中下载,但我希望它在 public文件夹。
以下是我的子进程生成代码。
// Start the ffmpeg child process
const ffmpegProcess = cp.spawn(ffmpeg, [
// Remove ffmpeg's console spamming
'-loglevel', '8', '-hide_banner',
// Redirect/Enable progress messages
'-progress', 'pipe:3',
// Set inputs
'-i', 'pipe:4',
'-i', 'pipe:5',
// Map audio & video from streams
'-map', '0:a',
'-map', '1:v',
// Keep encoding
'-c:v', 'copy',
// Define output file
'title.mp4',
], {
windowsHide: true,
stdio: [
/* Standard: stdin, stdout, stderr */
'inherit', 'inherit', 'inherit',
/* Custom: pipe:3, pipe:4, pipe:5 */
'pipe', 'pipe', 'pipe',
],
});
您可以设置cwd
选项。它将设置您的子进程执行其代码的路径。例如,如果你喜欢 运行 你的进程在你的 fs 的根目录下,你会这样做:
............
], {
cwd: '/',
windowsHide: true,
stdio: [
/* Standard: stdin, stdout, stderr */
'inherit', 'inherit', 'inherit',
/* Custom: pipe:3, pipe:4, pipe:5 */
'pipe', 'pipe', 'pipe',
],
});
所以请设置您的 public 文件夹的路径,然后它应该会在那里下载。