簡體   English   中英

運行 ffmpeg 在其自己的目錄中的節點 js 應用程序的父目錄

[英]Run ffmpeg from its parent directory in node js application in its own directory

我有一個需要訪問 ffmpeg 的節點 js 應用程序。 我的方法是使用 Node.js 內置的 child_processes 模塊中的 {exec}。 問題是 {exec} 總是從當前目錄啟動 cmd 行,我不知道如何將目錄上下文指向 ffmpeg.exe 所在的位置,以便我可以訪問該程序。 我的方法有缺陷嗎? 如何從 Node 訪問單獨的 CLI 應用程序?
此代碼返回“'ffmpeg' 不被識別為內部或外部命令”,因為我顯然在 Node 的執行上下文中,而 ffmpeg 所在的位置不存在。
我也不想將節點應用程序存儲在 ffmpeg.exe 的目錄中,因為這只是懶惰且不切實際。

exec(`ffmpeg -i ${filepathToMedia} --vf fps=1 ${outputdirectory}/out%d.png`, (error, stdout, stderr) => {
if (error) {
    console.log(`error: ${error.message}`);
    return;
}
if (stderr) {
    console.log(`stderr: ${stderr}`);
    return;
}
if(stdout) {
    console.log(`success: ${stdout}`)
} });

你可以在這里做兩件事之一:

  1. 使用 ffmpeg 可執行文件的絕對路徑,因此您可以執行類似exec('C:\Users\user\ffmpeg_dir\ffmpeg...')之類的操作,而不僅僅是exec('ffmpeg...') ') 這不是很好干凈,如果其他人嘗試使用您的代碼,可能會中斷。

  2. 將 ffmpeg 目錄添加到系統的PATH環境變量中。 如果您將 ffmpeg 添加到您的PATH中,則無論您在哪個文件夾中,它都可以作為ffmpeg使用,從而允許腳本按原樣工作。 這也將使其他人更容易運行您的腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM