Java Runtime.getRuntime(). exec (...)을 사용하여 쉘 명령을 통해 ffmpeg를 사용하면 비디오를 3gp에서 mp4로 쉽게 변환 할 수 있습니다. 팔 장치 (안드로이드 장치의 대부분)에 대한 ffmpeg 바이너리를 여기서 얻으십시오 : https://www.dropbox.com/s/nxjnrb71qdrq5jn/ffmpeg.zip?n=138005726. 이 파일을 ROM에 패키지하고, 파일이 3gp 일 때 감지 한 다음 ffmpeg를 사용하여 파일을 서버에 업로드하기 전에 mp4로 변환해야합니다.
자바 코드에서 바이너리를 실행하려면 다음과 같은 메소드를 작성해야합니다. input은 입력 비디오의 위치이고 output은 출력 비디오의 위치이며 fmpeg는 ffmpeg 바이너리의 위치입니다. 포함 :
public void convertVideo(String input, String output) throws IOException, InterruptedException
{
String args = ffmpeg + "-i" + input + "ffmpeg encoding paramaters..." + "-f mp4" + output;
Runtime r = Runtime.getRuntime();
Process p = r.exec("/system/bin/sh" + "-c" + args);
p.waitFor();
}
ffmpeg 명령 매개 변수는 대상 비디오 크기에 맞게 최적화해야 할 수 있습니다. 또한 x86 x86의 많은 소수를위한 정적 x86 ffmpeg를 구축 할 것입니다. 그런 다음 쉘 명령 "uname -a"로 장치 아키텍처를 감지하고 사용할 명령을 선택할 수 있습니다.
희망이 도움이됩니다.
출처
2014-11-18 05:58:43
jan
답장을 보내 주셔서 감사합니다. Android API로 변환 할 수있는 방법이 있습니까? 가능한 경우 ffmpeg의 라이센스 문제와 포팅 때문에 ffmpeg 사용을 피하고 싶습니다. 비디오를 처리 할 때 ffmepg를 사용할 때 일부 장치에 문제가있었습니다. – Storm
x86 용 ffmpeg lib를 업로드 할 수 있습니까? – xtr