作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 合并两个 mp4 视频守护项目作为我的应用程序中的库项目。但它不会在指定位置生成输出。我为此经历了各种解决方案,但没有成功。
PFB 代码:
File fileTmp = this.getCacheDir();
File fileAppRoot = new File(this.getApplicationInfo().dataDir);
FfmpegController fc;
fc = new FfmpegController(fileTmp, fileAppRoot);
final Clip out = new Clip(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)+"/Video/compiled.mp4");
ArrayList<Clip> listVideos = new ArrayList<Clip>();
File fileVideoRoot = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)+"/Video");
String[] fileList = fileVideoRoot.list();
for (String fileVideo : fileList)
{
if (fileVideo.endsWith("mp4"))
{
Clip clip = new Clip();
clip.path = new File(fileVideoRoot,fileVideo).getCanonicalPath();
fc.getInfo(clip);
clip.duration = clip.duration-1;
listVideos.add(clip);
}
}
fc.concatAndTrimFilesMP4Stream(listVideos, out, false, false, new ShellUtils.ShellCallback() {
@Override
public void shellOut(String shellLine) {
System.out.println("fc>" + shellLine);
}
@Override
public void processComplete(int exitValue) {
if (exitValue < 0)
System.err.println("concat non-zero exit: " + exitValue);
}
});
There was a problem rendering the video: /mnt/sdcard/Download/Video/compiled.mp4
最佳答案
这不是来自 ffmpeg 标准输出的 ffmpeg 错误。
为了弄清楚实际发生了什么,您需要在 android 层中捕获来自 native “processbuilder”的 STREAM=stdout 和 STREAM=stderr 或您用来从 Android/java 获取 shell 的任何内容。 .
例如:
ProcessBuilder builder = new ProcessBuilder(command);
Map<String, String> environ = builder.environment();
// for(Entry<String, String> entry : environ.entrySet()){
// System.out.println("ENV " +entry.getKey() + " " +entry.getValue());
// }
// builder.redirectErrorStream(true);
Process process = null;
try {
process = builder.start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
//System.out.println(line);
outfil=line;
}
// int exitVal = process.waitFor();
// System.out.println("Process exitValue: " + exitVal);
关于java - 如何使用监护人项目在android中使用FFMPEG连接视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24162861/
我是一名优秀的程序员,十分优秀!