视频处理之裁剪(尺寸、时间)

第一步 、效果

先什么都不丢。先甩个视频让老铁们看下效果:


video810

第二步、思想

1.用的ffmpeg 命令:

public intdoCropResouce(String inputPath,intcropDimen,doublestartTime,doubleduring) {

startCutTime= System.currentTimeMillis();

File file =newFile(Constant.JIANLI_PATH_RESUME_RES);

//判断文件夹是否存在,如果不存在就创建,否则不创建

if(!file.exists()) {

//通过file的mkdirs()方法创建文件夹

file.mkdirs();

}

cutOutPath= Constant.JIANLI_PATH_RESUME_RES+ File.separator+FILE_NAME_CUT;

//滑动的距离换算到原来的视频上

intm = Math.abs(isVertical? (smooth*mVideoW/mScreenW) : (smooth*mVideoH/mScreenW));

String trimTime =" -ss "+ StringUtils.formatDoubleSecond(startTime) +" -t "+ StringUtils.formatDoubleSecond(during);

String filter = getFilter(cropDimen,mRoll,isLandRes? m :0,isLandRes?0: m);

StringBuilder sb =newStringBuilder("ffmpeg");

sb.append(" -threads 6");

//    sb.append(" -i");

//    sb.append(" " + inAudioPath); // 合音频

sb.append(" -i");

sb.append(" "+ inputPath);

sb.append(trimTime);//时间裁剪  //  "-vf \"transpose=1,crop=720:720:0:%d\"",

if(videoType.equals(DealVideo.TYPE_ALBUM)) {

sb.append(" -filter_complex");

sb.append(" "+ filter);//尺寸裁剪  上两都可以判断用户只操作一种的情况

}

sb.append(" -preset superfast -tune zerolatency");//加快效率

sb.append(" -b:v");

intrate = (int) (MediaRecorderBase.VIDEO_BITRATE_HIGH);

sb.append(" "+ rate +"k");

sb.append(" -r 20");

sb.append(" -keyint_min 20 -g 20 -sc_threshold 0");

sb.append(" -y");

sb.append(" "+cutOutPath);

//    Log.d("zhou", "doCropResouce: ===" + sb.toString());

inti = UtilityAdapter.FFmpegRun("", sb.toString());

returni;}

2 UI实现:

尺寸裁剪UI:本人项目需求是得到正方形的视频    也就是说如果资源视频是W1280*H720 则我们目标为720*720  。  在此之前还有一个判断就是我们源视频小边要缩放到屏幕宽度的尺寸 这时有个尺寸比例,按照这个比例同是对源视频的大边进同缩放。其次就是W>H 时 我的是源视频是横向视频。反之则是竖向视频。明白以上之后。接下来就是布局。

本人项目中用的播放器自定义的

JLXVideoView  extends TextureView  implementsTextureView.SurfaceTextureListener {} 这里值得提醒也是让本人头疼了一两天的坑  播放器不要用VideoView  因为是SurfaceView 的继承,上下平移时videoview 会直接滑到最上层。导致titlebar会消失。这点我也找到了理由。(有点复杂)所以不再术。不信的同鞋 ,可以去偿试一次。 之后就有两种方式让我们的播放器JLXVideoView平移:方法一,OnTouchListener   本人实现觉得比较好,也是传统的平控件平移处理的方案,但被公司测试提案滑动效果不太理想所以无奈寻求了方案二,但本人个人从技术上还是提倡方案1 。应该是比较正统的现实 。  方法二   我们将播放器用一个滚动的FrameLayout        mScrollview  定义为 FrameLayout  是因为我们不知道它的滚动方向  在实例化的时候 我们可以由视频的方向 

mScrollview=isVertical?newScrollView(this):newHorizontalScrollView(this);  在这里我们实例化的滚动控件的时候确定了滚动的方向。 这里其实制是投机了ScrollView 的一个滑动的特性。而且Build.VERSION_CODES >= API23。但好像<23也是没有问题。但尚不知有没有露洞。如果有人发现可以留言区留言一起探讨学习一下。   用方案二实现滑动效果应该是要好一点。但视觉效果本人觉得比方案一要差。(快滑到未端就有白边ScrollView的缓冲没有刹车住)

时间裁剪UI:  这是一个自定义的VIew    首先多线程去解析资源视频的视频帧。

//开启多线程   newThreadPoul(extractW, extractH,mUIHandler,PLAY_URL,OutPutFileDirPath, startPosition, endPosition, thumbnailsCount,new int[]{4,8}); 

onDraw方法实现全部UI


第三步、贴部分重要代码 

由于是公司项目实现目前又没有去做代码功能提取。在这里只上传核心代码,请谅解! 有时间会把整个功能代码提取上传。

参考代码



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容