2017-11-10 271 views
0

我正在使用ffmpeg-cli-wrapper從我上傳到AWS lambda的應用程序運行FFmpeg。我最初得到AWS Lambda。錯誤= 20(不是目錄)當FFmpeg移動到/ tmp

錯誤= 13權限試圖通過包裝ProcessBuilder調用它的時候被拒絕

。我的初始解決方案是在上傳之前對chmod 755 ffmpeg,但它沒有幫助。

有關信息,我的FFmpeg和ffprobe文件位於以下類路徑中:static/ffmpeg/ffmpegstatic/ffmpeg/ffprobe。它們也是靜態鏈接的。

AWS Lambda permission denied when trying to use ffmpeg

我試着按照上面的例子中給出的說明,但是當我嘗試執行或者MV或cp命令:Runtime.exec("mv " + pathToFFmpeg + " /tmp"),我得到的

錯誤= 20,沒有目錄

錯誤。

我知道我有FFmpeg的正確路徑,因爲以下命令mv *pathToFFmpeg* *an arbitrary name*運行時沒有錯誤,這意味着該文件在那裏,因此mv命令只是將它重命名爲它應該執行的操作。

+0

該錯誤似乎沒有道理,但您的主目錄不可寫,所以移動不應該工作。嘗試'cp'。 –

+0

嗯,我通過切換到'ProcessBuilder'(之前使用'Runtime.exec()')來解決這個問題。現在,當訪問/ tmp中的ffmpeg(即使在'chmod 755''/ tmp中的文件之後),我又得到了'error = 13,Permission denied',我應該問一個新的問題嗎? –

+0

我現在修復了這個問題!我最初是從Windows 10 bash中獲得文件的,但是我發現它一直沒有任何影響。我發現了一種在Windows中做同樣事情的方法,現在我可以使用FFmpeg。謝謝你的幫助! –

回答

0

我是從Windows環境創建JAR的,我的理解是,在lambda環境中的chmod 755'ing沒有效果因此。

解決方案:在Windows中JARing之前,將'Everyone'組權限授予文件或任何可能包含的目錄。它沒有顯示給我,所以我不得不添加權限組。這似乎解決了我得到的錯誤= 20和錯誤= 13錯誤。 Screenshot of menu。請注意,我仍然必須在lambda函數中包含chmod 755,否則我會再次得到錯誤= 13。

我也遇到了一個錯誤= 2(無此文件或目錄),這是我到目前爲止已經能夠通過解析:
一)開關從Runtime.exec()ProcessBuilder
                         (我猜的Runtime.exec()小 '精',需要額外的配置)
b)使用cp,而不是mv
c)從相同的方法運行ProcessBuilder我調用FFmpeg,而不是調用同一類的不同方法來完成此操作。不知道爲什麼這是...