ffmpeg转码的时候文件变大了很多,大家给看看

问题描述

importjava.io.File;importjava.util.List;publicclassConvertVideo{privatefinalstaticStringPATH="f:\qqqq.avi";publicstaticvoidmain(String[]args){if(!checkfile(PATH)){System.out.println(PATH+"没有找到文件");return;}if(process()){System.out.println("ok");}}privatestaticbooleanprocess(){inttype=checkContentType();booleanstatus=false;if(type==0){System.out.println("执行0");status=processFLV(PATH);//直接将文件转为flv文件System.out.println("000000");}elseif(type==1){System.out.println("执行1");Stringavifilepath=processAVI(type);System.out.println("111111");if(avifilepath==null){returnfalse;//avi文件没有得到}else{System.out.println("执行转换flv");status=processFLV(avifilepath);//将avi转为flvSystem.out.println("222222");}}returnstatus;}privatestaticintcheckContentType(){Stringtype=PATH.substring(PATH.lastIndexOf(".")+1,PATH.length()).toLowerCase();//ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)if(type.equals("avi")){return0;}elseif(type.equals("mpg")){return0;}elseif(type.equals("wmv")){return0;}elseif(type.equals("3gp")){return0;}elseif(type.equals("mov")){return0;}elseif(type.equals("mp4")){return0;}elseif(type.equals("asf")){return0;}elseif(type.equals("asx")){return0;}elseif(type.equals("flv")){return0;}elseif(type.equals("wmv9")){return1;}elseif(type.equals("rm")){return1;}elseif(type.equals("rmvb")){return1;}return9;}privatestaticbooleancheckfile(Stringpath){Filefile=newFile(path);if(!file.isFile()){returnfalse;}returntrue;}//对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等),可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式.privatestaticStringprocessAVI(inttype){List<String>commend=newjava.util.ArrayList<String>();commend.add("f:\flv\mencoder.exe");commend.add(PATH);commend.add("-oac");commend.add("lavc");commend.add("-lavcopts");commend.add("acodec=mp3:abitrate=64");commend.add("-ovc");commend.add("xvid");commend.add("-xvidencopts");commend.add("bitrate=600");commend.add("-of");commend.add("avi");commend.add("-o");commend.add("c:\home\a.avi");try{ProcessBuilderbuilder=newProcessBuilder();builder.command(commend);builder.start();return"f:\a.avi";}catch(Exceptione){e.printStackTrace();returnnull;}}//ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)privatestaticbooleanprocessFLV(Stringoldfilepath){if(!checkfile(PATH)){System.out.println(oldfilepath+"没有找到文件");returnfalse;}List<String>commend=newjava.util.ArrayList<String>();commend.add("f:\flv\ffmpeg.exe");commend.add("-i");commend.add(oldfilepath);commend.add("-ab");commend.add("64");commend.add("-acodec");commend.add("mp3");commend.add("-ac");commend.add("2");commend.add("-ar");commend.add("22050");commend.add("-b");commend.add("500");commend.add("-r");commend.add("15");commend.add("-y");commend.add("f:\a8.flv");try{ProcessBuilderbuilder=newProcessBuilder();builder.command(commend);builder.start();returntrue;}catch(Exceptione){e.printStackTrace();returnfalse;}}}

转码一个14M的文件,最后变成了70几M,大家帮我看看是什么问题,谢谢了,

解决方案

解决方案二:
我也是的,我用的是PHP,不过mpg的转换后变小了。其它的都变很大的了。另外土豆的他们是怎么存储那些视频文件的啊?可以问下吗?我的QQ296946867
解决方案三:
commend.add("300*240");//控制转换后的flv视频大小
解决方案四:
Listcommend=newArrayList();commend.add(stringFfmpeg+"ffmpeg");commend.add("-i");commend.add(resourcePath);commend.add("-ab");commend.add("56");commend.add("-ar");commend.add("22050");commend.add("-qscale");commend.add("8");commend.add("-r");commend.add("15");commend.add("-s");commend.add("300*240");commend.add(stringFLV[0]+".flv");

时间: 2024-11-05 12:30:13

ffmpeg转码的时候文件变大了很多,大家给看看的相关文章

新手问题!如果改成用追加的方法想文件写内容!!为什么文件变大了!求解

问题描述 新手问题!如果改成用追加的方法想文件写内容!!为什么文件变大了!求解publicFsOutputStream(FileInfoinfo){base.file=newFileStream(info.FullName,FileMode.Create,FileAccess.ReadWrite,FileShare.None);}...........................this.myBodyStream.Seek(this.myBodyStream.Position,SeekOri

ui-android,程序运行到手机上后,UI整体变大了很多

问题描述 android,程序运行到手机上后,UI整体变大了很多 这个是运行后的效果 这个是正常效果 布局代码没有问题,资源什么的也没有放错位置,觉得应该是密度变化了,但是具体为什么造成这个原因不清楚,density打印出来是1.0. 下面贴一张布局代码 解决方案 使用的是真机调试,之前布局并没有出现这个问题(控件.文字等都变大了),也没改过什么代码,但是莫名就这样了,哪位大神给解答一下或者提供提供思路啊 解决方案二: 你没有设置字体大小,二期还要注意适配 解决方案三: 你是用的是dp,与像素无

为何图片经过OSS缩略之后尺寸变大了?——影响不同格式图片文件大小的一些因素和实际示例

简介 OSS提供了基本的图片处理功能和图片格式之间的转换功能,在实际使用过程中,很多用户使用OSS将原图缩略之后输出,在这个过程中也出现了很多用户询问为何缩略之后图片尺寸变大,如这个例子: 原图:http://batchtest.oss-cn-hangzhou.aliyuncs.com/example1.png 处理之后:http://batchtest.oss-cn-hangzhou.aliyuncs.com/example1.png?x-oss-process=image/resize,w_

android- 我上传上的图片我再下下 居然变大了下载是用imageLoader.loadImageSync()

问题描述 我上传上的图片我再下下 居然变大了下载是用imageLoader.loadImageSync() Android 我上传上的图片我再下下来 居然变大了 下载是用imageLoader.loadImageSync()获取Bitmap 然后再写入本地路径,可比原有的图片大很多 解决方案 这是屏幕分辨率的问题http://blog.csdn.net/danielinbiti/article/details/7310696 解决方案二: 你看一下imageloader里面保存图片的函数,有没有

把自定义的demuxer加入ffmpeg源码

.简介:把上一篇文章中的demuxer加入ffmpeg源码中去,使可以用命令行方式调用自定义的demuxer 第一步: 在libavformat目录下新建mkdemuxer.c和mkdemuxer.h,代码如下: mkdemuxer.c:   [cpp] view plain copy   /*   *实现一个自己的demuxer并加入到demuxer链中去  *作者:缪国凯(MK)   *821486004@qq.com   *2015-6-3   */       #include "mkd

Ffmpeg转码研究一

Ffmpeg是一款功能强大的视频处理工具,那么转码肯定不是问题的,因为项目的需求,对转码进行了研究.刚开始首先去看了ffmpeg源代码中的一个例子transcode.c,但是发现该例子更应该称之为remux的一个例子,并没有具体的涉及到转码.所以转而去ffmpeg工具中寻求帮助了. ffmpeg转码流程:   举例: 输入文件为ts格式,视频编码为H.264,音频编码为AAC,要求的输出文件封装格式为AVI,视频编码为MPEG2,音频编码为mp3. Ffmpeg命令行实现: 1.将视频编码为mp

Win7系统电脑将扫描文件变成为PDF格式的方法

  Win7系统电脑将扫描文件变成为PDF格式的方法 详细步骤如下: 1.首选下载"PDF-Tools"4.0的版本; 2.选中"直接扫描",然后点击右下角的"开始"按钮; 3.选择系统中的扫描仪,然后点击下一步; 4.耐心等待,扫描完成后即可得到PDF文件. 上述教程就是Win7系统电脑将扫描文件变成为PDF格式的方法,有需要的用户可参考本教程解决.

rotation-flex 嵌入中文字体后生成的SWF文件太大了

问题描述 flex 嵌入中文字体后生成的SWF文件太大了 我在flex项目中要通过设置某一组件的rotation属性来达到旋转角度的目的.flex规定要达到此效果必须引入外部字体,但是引入外部字体后会明显增加swf文件的大小,特别是我需要引入中文字体时,中文字体一般都有10几M,这太恐怖了,不知道还有什么其他解决方案.既要达到这种旋转效果,又要保证引入中文字体后,swf文件尽可能的小.

有人知道在 java中使用ffmpeg转码时,怎么判断转码是否已经结束了呢

问题描述 有人知道在 java中使用ffmpeg转码时,怎么判断转码是否已经结束了呢 if(!strFileType.equals("".mp4"")&&!strFileType.equals("".flv"")&&!strFileType.equals("".mov"")) { commend.add(""E:ffmpegbinffm