ffmpeg转换注意事项
1.视频转换线程调用外部进程ffmpeg转换视频时,要用如下代码:
???????????? ProcessBuilder builder = new ProcessBuilder();?
??????????? builder.command(commend);?
??????????? String cmd=commend.toString();
??????????? builder.redirectErrorStream(true);
??????????? p=builder.start();?
???????????
??????????? //read the standard output
??????????? stdout = new BufferedReader(new InputStreamReader(p
????????????? .getInputStream()));
??????????? while ((line = stdout.readLine()) != null) {
???????????? //System.out.println(line);
???????????? continue;
???????????????? }
??????????? int ret = p.waitFor();//这里线程阻塞,将等待外部转换进程运行成功运行结束后,才往下执行
??????????????
??????????? /*转换完后,进行后续操作,比如:在数据库中加一个字段,来判断是否转换成功了,是否可删除原
??????????????? 视频文件;进行视频修复等*/
2.ffmpeg转换的视频,要flvtools修复,flash播放器才能计算出flv的播放时间,并进行拖放操作。因为ffmpeg转换原视频文件,都会破坏flv的关键帧和时间元数据。
3.用mencoder在ffmpeg转flv格式前,把ffmpeg不能识别的格式,转为ffmpeg可以处理的格式。