2014-04-03 92 views
0

我正在使用ffmpeg進行視頻壓縮。我可以壓縮視頻這條線:添加路徑到ffmpeg

String commandStr = "ffmpeg -y -i /sdcard/videokit3/Dani.mp4 -strict experimental -s 320x240-r 30 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 512k /sdcard/videokit3/Dani2.mp4"; 

在此行的路徑是硬編碼的,所以我也

String path = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "videokit3/Dani.mp4"; 

導致in /mnt/sdcard/videokit3/Dani.mp4

這似乎是從/sdcard/videokit3/Dani.mp4不同所以這條線運行到錯誤(我看到了區別,我只是不明白):

String commandStr = "ffmpeg -y -i " + path + " -strict experimental -s 320x240 -r 30 -ab 48000 -ac 2 -ar 22050 -b 512k /sdcard/videokit3/Dani4.mp4"; 

你能幫忙嗎?

+0

沒有人?爲什麼現在這裏有記錄? – erdomester

+0

閱讀此答案:http://stackoverflow.com/a/5695129/2777098 –

回答

0

最簡單的方法是在插入語句之前取代字符串並修剪「/ mnt」。外部SDcard絕對路徑返回爲「已安裝」驅動器的原因在此處可用SO:stackoverflow.com/a/5695129/2777098

+0

我想過,但它的保證它將在所有設備上工作的保證是什麼? – erdomester

+0

它可能不取決於製造商和他們的「外部存儲」的實施。當我使用ffmpeg時,我暫時將視頻複製到我的程序創建的文件夾並從那裏開始工作。希望這可以幫助。 –