概述
1.这是在Linux系统下的代码,我运行后可以转换成功:
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.io.*;
import java.lang.*;
import java.util.*;
import java.text.*;
import java.net.*;
public class Test {
public static void main(String[] args) {
List<String> commend = new ArrayList<String>();
commend.add("/usr/local/ffmpeg2/bin/./ffmpeg");
commend.add("-i");
commend.add("/opt/spzh/yysp.avi");
commend.add("-ab");
commend.add("128");
commend.add("-acodec");
commend.add("libfaac");
commend.add("-ac");
commend.add("1");
commend.add("-ar");
commend.add("22050");
commend.add("-r");
commend.add("24");
commend.add("-y");
commend.add("/opt/spzh/out/yysp18.flv");
StringBuffer test=new StringBuffer();
for(int i=0;i<commend.size();i++)
test.append(commend.get(i)+" ");
System.out.println(test);
try {
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(test.toString());
InputStream stderr = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ( (line = br.readLine()) != null);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("视频转换成功");
}
}
2.这是在Windows下面的代码,在网上找了很多资料说这种在Linux中也能用,但是我自己在Linux系统下运行改代码时发现,该代码视频转换的时候只能转换一部分,举个例子:原视频有7M,直接在Linux下执行装换命令是正常的,而用该java代码执行该命令时视频只能转换1M;而且转换成MP4的时候,视频无法播放。
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.io.*;
import java.lang.*;
import java.util.*;
import java.text.*;
import java.net.*;
public class Test1 {
public static void main(String[] args) {
List<String> commend = new ArrayList<String>();
commend.add("/usr/local/ffmpeg2/bin/./ffmpeg");
commend.add("-i");
commend.add("/opt/spzh/yysp.avi");
commend.add("-ab");
commend.add("128");
commend.add("-acodec");
commend.add("libfaac");
commend.add("-ac");
commend.add("1");
commend.add("-ar");
commend.add("22050");
commend.add("-r");
commend.add("24");
commend.add("-y");
commend.add("/opt/spzh/out/yysp22.flv");
StringBuffer test=new StringBuffer();
for(int i=0;i<commend.size();i++)
test.append(commend.get(i)+" ");
System.out.println(test);
ProcessBuilder builder = new ProcessBuilder();
builder.command(commend);
try {
builder.redirectErrorStream(true);
builder.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("视频转换成功");
}
}
x
下面是转换为flv格式和mp4格式的Linux命令:
(1)转flv
./ffmpeg -i /opt/spzh/yysp.avi -ab 128 -acodec libfaac -ac 1 -ar 22050 -r 24 -y /opt/spzh/out/yysp9.flv
(2)转mp4
./ffmpeg -i /opt/spzh/yysp.avi -f mp4 -acodec libfaac -vcodec libxvid -qscale 7 -dts_delta_threshold 1 -y /opt/spzh/out/yysp8.mp4
最后
以上就是害羞荔枝为你收集整理的Linux环境下java调用ffmpeg命令进行视频转码的全部内容,希望文章能够帮你解决Linux环境下java调用ffmpeg命令进行视频转码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复