2017-09-14 21 views
0

기본 카메라에서 원래 캡처 한 자르기 비디오에 대해 아래 명령을 사용했습니다. 하지만 명령을 실행하면 아래에 오류가 발생합니다.ffmpeg를 사용하여 1 : 1 종횡비로 비디오를 자르고 싶지만 오류가 발생합니다. Working Directory : null 환경 : null

final String[] cmd={"-i", "/storage/emulated/0/DCIM/ZyfVideo/VID_20170914_153804.mp4","-s", "480x480" ,"-vf" ,"crop=480:480","setdar=1:1","setsar=1:1 ","/storage/emulated/0/Movies/SpoofApp/VDO_20170914_153811.mp4"}; 

오류 로그 캣 :

09-14 15:38:11.874 3872-4039/com.spoof.app E/FFmpeg: Exception while trying to run: [Ljava.lang.String;@427ce088 
                java.io.IOException: Error running exec(). Command: [/data/data/com.spoof.app/files/ffmpeg, -i, /storage/emulated/0/DCIM/ZyfVideo/VID_20170914_153804.mp4, -s, 480x480, -vf, crop=480:480, setdar=1:1, setsar=1:1 , /storage/emulated/0/Movies/SpoofApp/VDO_20170914_153811.mp4] Working Directory: null Environment: null 
                 at java.lang.ProcessManager.exec(ProcessManager.java:211) 
                 at java.lang.Runtime.exec(Runtime.java:173) 
                 at java.lang.Runtime.exec(Runtime.java:128) 
                 at com.github.hiteshsondhi88.libffmpeg.ShellCommand.run(ShellCommand.java:10) 
                 at com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask.doInBackground(FFmpegExecuteAsyncTask.java:38) 
                 at com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask.doInBackground(FFmpegExecuteAsyncTask.java:10) 
                 at android.os.AsyncTask$2.call(AsyncTask.java:288) 
                 at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
                 at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
                 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
                 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
                 at java.lang.Thread.run(Thread.java:841) 
                 Caused by: java.io.IOException: No such file or directory 
                 at java.lang.ProcessManager.exec(Native Method) 
                 at java.lang.ProcessManager.exec(ProcessManager.java:209) 
                 at java.lang.Runtime.exec(Runtime.java:173)  
                 at java.lang.Runtime.exec(Runtime.java:128)  
                 at com.github.hiteshsondhi88.libffmpeg.ShellCommand.run(ShellCommand.java:10)  
                 at com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask.doInBackground(FFmpegExecuteAsyncTask.java:38)  
                 at com.github.hiteshsondhi88.libffmpeg.FFmpegExecuteAsyncTask.doInBackground(FFmpegExecuteAsyncTask.java:10)  
                 at android.os.AsyncTask$2.call(AsyncTask.java:288)  
                 at java.util.concurrent.FutureTask.run(FutureTask.java:237)  
                 at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)  
                 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)  
                 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)  
                 at java.lang.Thread.run(Thread.java:841)  
+0

정확한 경로를 확인하십시오. 그 원인을 알리는 오류 : java.io.IOException : 해당 파일이나 디렉토리가 없습니다. –

+0

@Kingof 입력 비디오 및 출력 비디오 경로가 무엇입니까? 하지만 맞습니다. – Mahesh

+0

@KingofMasses 버전 4.4.2 samsung 탭 – Mahesh

답변

0

내가는 FFmpeg에 대해 그런 생각이 없다하지만 난 사용하기 쉬운 jCodec lib 디렉토리에 대해 알 수 있습니다.

jcodec.org를 방문하십시오.

동영상을 잘라내려면 Android 또는 Java에서 아래 단계를 수행해야합니다. 1. 프레임을 jcodec의 유틸리티 메소드에서 가져옵니다. 2. 비트 맵 도우미 클래스를 사용하여 자르기. 3. jcodec 유틸리티 기능을 사용하여 mp4 형식으로 압축하십시오.

[email protected]에 친절하게 이렇게 메일을 쓸 수없는 경우

내가 안드로이드에 당신을 위해 작물 비디오 응용 프로그램을 만드는 데 도움이 될 것입니다.

고맙습니다.