面对相对复杂的视频编辑处理技术,你是否束手无策?

在短视频应用中,有一定技术难度的视频编辑技术中,我们提出了一种全新的解决方法:画板和画笔。
短视频处理,用画板和画笔,就够了!

我们设计了极其简单易懂的架构, 画板和画笔, 用画笔在画板上作画, 就可以得到您要的视频。
1,你用 【视频画笔 VideoPen】在 画板 DrawPad上作画, 就得到 调整后的视频
2,你用 【图片画笔 BitmapPen】在画板上作画, 就得到 动态的照片影集。
3,你用 【UI画笔 ViewPen】在画板上作画, 就是把精美的UI界面转换为视频, 当然我们的设计,也可以后台处理。
4, 你用 【视频画笔】+ 【图片画笔】 在画板上作画, 就得到动态的视频图片效果。
5, 你用 【视频画笔】 + 【MV画笔】 在画板上作画, 就是在视频中叠加MV的效果。
6, 当然: 画板 可以在前台工作, 也可以在后台处理。

我们只做视频处理, 只是为您丰富的想象力、创作力提供 画板和画笔, 各种个性,炫酷,文艺的视频效果,任您自由发挥。

demo演示地址: https://github.com/LanSoSdk/LanSoEditor_advance

视频编辑SDK---我们只提供API,任你自由设计炫酷的功能

做视频APP, 在于差异化,个性的APP; 你做一个别人一样功能的APP, 很难占领市场.

基于此.我们的SDK完全以API的形式,至于界面和操作炫酷的功能,任你自由发挥,

视频编辑:即类似秒拍,美拍,快手,小影等APP中对音视频做剪切/裁剪/分离/合并/标记/贴纸/叠加/滤镜等操作.

我们有Android版本基本视频编辑SDK:

https://github.com/LanSoSdk/LanSoEditor_common

主要功能有:

1,使用在音视频的: 裁剪,剪切,分离,合并,转换,拼接,水印,叠加,混合,转码等场合;

2,我们是针对android平台对ffmpeg做了硬件加速优化,经过多款手机的测试,优化性能大概提升4倍左右

3,我们在项目中提供了大约30个常用的方法并写了详细的说明注释,基本满足一般视频编辑的需求

4,我们另外提供了扩展接口,您完全可以根据强大的ffmpeg命令来扩展您需要的功能

高级视频编辑SDK:

https://github.com/LanSoSdk/LanSoEditor_advance

主要功能: 包括基本基本版本的所有功能.

1,覆盖了秒拍,美拍,快手等视频编辑的大部分功能.

2,增加了44种滤镜,基本覆盖市面上大部分APP中的滤镜效果.

3,可以实现视频和视频, 视频和图片,视频和您的UI界面叠加.

4,在叠加的过程中:支持任意时间点的加入,隐藏,显示,退出.支持同时获取媒体来任意叠加,支持叠加过程中的各种调节,支持实时保存.

5,可以实现 图片和图片的叠加,来实现多张图片合并成影集的效果.

6,可以实现当视频播放中,手指滑动画面,即出现一个箭头,来实时的标注.后期我们会举例涂鸦的功能.

7,支持声音混合,音量调节.

我们是杭州蓝松科技有限公司, 专业的移动平台视频SDK开发团队.

如果您的项目更好有这方面的需求, 正在寻求这方面的资料知识,可以从我们这里开始.

欢迎你的测试使用, 更多了解,请随时联系我们(链接中有联系方式), 谢谢!

提示一: 各位看官,这里分享的是视频编辑,即剪切/拼接/分离/合并/涂鸦/标记/叠加/滤镜等对视频的编辑操作.不是流媒体网络播放等功能,请注意.

提示二: 这些文字90%的为普及知识,10%为宣传我们的SDK,因为分享别人,有利自已,才是良性循环,才可以让我们持续分享,毕竟只分享,不有益很难持续下去.要养家糊口啊^_^.

提示三:我们是android视频编辑的专业团队,以下分享的文字,完全实际经验总结,每一个知识点您都可以在我们的SDK或开源的工程中验证.
我们的SDK:https://github.com/LanSoSdk/LanSoEditor_common(收费的,但写了30个详细注释,适合初学者学习,可以用来练手)
开源的工程:https://github.com/WritingMinds/ffmpeg-android(免费的,需要自己编译,需懂linux和ndk)
这两个工程您都可以测试,学习后, 然后再决定采用何种方式对您的项目最有利。

正文

1, 做 Android 上的视频编辑,一定要从编辑ffmpeg开始吗? 

完全不是。需求是最重要的,android从4.1开始提供了MediaCodec类,你要做视频提取图片,用mediacodec或mediaextractor就可以;你做视频裁剪,用MediaCodec也可以;你要做视频缩放,用MediaCodec+ Opengl是最好的选择;完全不一定用ffmepg来做。

2,那么为什么很多用ffmpeg来完成?
因为ffmpeg封装了很多的格式,使用起来比较灵活,简单,兼容性好,他的命令行可以帮你节省大量的时间,比如视频裁剪 ffmpeg -ss 10 -t 20 -i INPUT -acodec copy -vcodec copy OUTPUT;这样就完成了,不再需要您自己去编写大量的代码。
3,ffmpeg可以帮我完成大部分的视频编辑功能吗?
没有优化的ffmpeg在功能可以,但性能不行。由于手机CPU的性能的限制,有些命令处理起来比较慢,比如overlay命令,colorchannelmixer命令 eq命令,libx264编码功能,这样你功能上虽然实现了,但处理一个10秒的视频,要花费2分钟,这样的功能,估计很难在APP里使用。我们的SDK针对这样的情况,做了硬解码器和硬编码器,完全加速ffmpeg的执行,这个也是我们SDK的核心所在。
4,ffmpeg我怎么开始做呢?
    如果您是初学者,建议不要一上来就编译ffmpeg,因为网上github上编译好的工程太多了,你的目的是学习使用到你项目中。再说了,如果你要用ffmpeg实现一些复杂的运算,即使你花费一周时间编译好了,结果发现功能可以满足,但处理起来太慢了,根本无法使用,事倍功半,也是没意义的。建议用上面推荐的两个链接,先学习了再说,即使收费的版本,但ffmpeg的命令代码是公开的,运行是不变的,只是有时间和其他限制而已,学习ffmepg是没有阻碍的。建议先学习起来再说,毕竟熟悉了,才可以灵活的使用。
5,ffmpeg哪些功能执行较快,并且免费工程里也可以实现?
         像普通的音视频剪切,分离,合成,拼接,封装,格式转换这些是可以的。因为没有用到视频数据解码和编码操作,执行起来很快;比如秒拍中音乐那个功能,他用到的命令有: 音频裁剪,把视频中的音频分离,然后把新的音频在和视频合并;用到音量调节,也可以用ffmpeg的amixer来实现;再比如秒拍中的视频截取,其实就是用ffmpeg的截取命令来实现的;再比如你直接把MediaCodec编码好的H264裸码流保存成文件,你想封装成mp4格式,让别的播放器也可以播放,则用ffmpeg的封装命令就可以实现,不需要自己去封装。如果您的项目中只用到这些,则免费版本就可以满足,完全不需要收费的SDK。
6,普通的ffmpeg哪些功能较慢,不适合使用?
         在一些需要用到操作视频画面像素的场合,比如用overlay做叠加,colorchannelmixer或eq做滤镜,用scale缩放,用到视频解码-->处理-->再编码的场合。
         这些功能的大概工作流程是:
         第一步解码,如果采用硬件解码,则会快很多,如果用软解码,即使经过NEON批处理优化,处理速度还是不够理想;
         第二步处理,假如您用到的是colorchannelmixer这个命令,他的工作原理是事先把255个像素值根据您的设置全部放到一个表里,在处理一个像素时,利用查表法来得到处理后的值,虽然快一些,但和用opengl比较起来还是很慢,毕竟这个是一个像素一个像素的去做,而opengl则采用矢量并行处理,速度上完全不能比;
         第三步:视频编码,ffmpeg本身不带H264视频编码器,需要使用外部的,比如libx264,libopenh264这些,但也是软编码。
         你的视频每帧都需要经过这三步来做,解码,处理,再编码。这样下来,假如20秒的视频,每秒25帧,则是500帧,如果不用硬件加速来做,速度上估计很难完成。
         我们的SDK针对这样的情况,做了硬解码和硬编码,加速ffmpeg的执行,让它跑快一些,这个也是我们SDK的核心所在。
 7,有没有好的办法,又想实现功能,又想用免费版本的?
      有。 用MediaCodec+ OpenGL的形式来做,把ffmpeg一些处理慢的操作,统统用MediaCodec+OpenGL来实现,比如滤镜,比如叠加,比如缩放等,我们高级版本中的大部分操作也是用opengl来做的,我们做了大量的工作,让你像操作一个ArrayList类一样,增加一个媒体,删除一个媒体,简单易用。
      
 8,如果我们自己做,需要懂得哪些知识:
     首先你要从战略上轻视它^_^,毕竟又不是让你去搞科研,去搞高精尖,去获得诺贝尔奖。这是一项技术,一项已经很成熟的技术,类似学习android的UI,学习java的编程一样的一项技术,需要的是在这方面知识的积累和花时间去做的事情。如果你是初学者,那需要花很长的时间去学习,去摸索的事情,然后精通的过程。
     再者你就要从战术上重视它^_^, 涉及到的知识点有:
      8.1 linux基本操作,在这里强烈不推荐在windows下用cygwin来搞,第一很难行通,第二事倍功半。
      8.2 ndk和jni,gcc的知识,因为你要做的最终要封装成java的一个类和方法,让做UI的工程师调用,并需要懂得一些java的编程,这样你调试起来会快一些。
      8.3 视频的知识。这个必不可少,也不用多说,毕竟做的是视频编辑,像视频格式,音频,pcm,h264的基本知识,视频码率,分辨率,帧率,ffmpeg的常用命令等等。
      8.4 懂得视频知识后,强烈推荐完全精通MediaCodec和视频播放原理,因为这个可以帮你节省大量的时间去实现一个功能。

总结:不要一上来就编译,学以致用才重要,用免费的版本消耗的是人力成本和时间成本,用我们的SDK可以加速您项目的开发,再说我们的SDK的费用远远小于您人力成本和时间成本的费用^_^。

视频编辑SDK---我们只提供API,任你自由设计炫酷的功能的更多相关文章

  1. RDVECore来自锐动的无UI,高度抽象化API的视频编辑SDK

    1 编写目的 预期读者: 有视频编辑开发经验或者无经验的,打算或者正在使用"锐动IOS版RDVECore"的相关工程师. iOS软件工程师. 产品经理. QA 2 名词解释 分辨率 ...

  2. Android 视频编辑 SDK

    Android 视频编辑 SDK接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1 ...

  3. iOS视频编辑SDK

    IOS视频编辑SDK接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1080x72 ...

  4. iOS/Android 视频编辑SDK

    锐动天地为开发者提供短视频编辑.特效.直播.录屏.编解码.视频转换,等多种解决方案,涵盖PC.iOS.Android多平台.以市场为导向,不断打磨并创新技术,在稳定性,兼容性,硬件设备效率优化上千捶百 ...

  5. 关于视频编辑SDK的接入说明

    一.运行环境 Android 4.1(api 16)以上: 处理器:双核 1GHz以上CPU(目前只支持ARM CPU, X86.MIPS暂不支持):推荐四核1.2GHz以上CPU 内存:1 GB以上 ...

  6. LanSoEditor_common ---android平台的视频编辑SDK

    当前版本是LanSoEditor-v1.4 主要使用在音视频的: 裁剪,剪切,分离,合并,转换,拼接,水印,叠加,混合,转码等场合; 我们是针对android平台对ffmpeg做了硬件加速优化,经过多 ...

  7. Android视频编辑SDK--RDVECore来自锐动的无UI,高度抽象化API

    1 RDVECore功能概述 RDVECore是锐动推出的无UI,高度抽象化API的视频编辑SDK,支持以下功能: 1.1 丰富的编辑功能 RDVECore包含了丰富的基础功能,对于编辑中的视频.图片 ...

  8. LanSoEditor_advance1.8.0 视频编辑的高级版本

    ------------------------------------------2017年1月11日11:18:33------------------------------------- 我们 ...

  9. android平台短视频技术之 视频编辑的经验分享.

    android平台短视频技术之 视频编辑的经验分享. 提示一: 各位看官,这里分享的是视频编辑,即剪切/拼接/分离/合并/涂鸦/标记/叠加/滤镜等对视频的编辑操作.不是流媒体网络播放等功能,请注意. ...

随机推荐

  1. 人工免疫算法-python实现

    AIAIndividual.py import numpy as np import ObjFunction class AIAIndividual: ''' individual of artifi ...

  2. CentOS Git的还原和操作

    $ git log --graph --oneline $ git reset --hard 版本号 用 reflog 挽救错误的重置 [jackluo@localhost demo]$ git re ...

  3. weinre 手机端页面调试

    Weinre代表 Web Inspector Remote,是一种远程调试工具, 采用nodejs做为http服务器,用ajax通信 nodejs 官网 weinre官网 1.安装nodejs  会自 ...

  4. 基于MDK的ARM-GCC开发环境建立及新唐M0的HID类设备的C++开发

    一,下载安装测试arm-none-eabi-gcc编译工具链 1,查看arm-none-eabi-gcc编译工具版本        打开网页:https://sourcery.mentor.com/G ...

  5. Android项目--tabhost

    所有牵扯到自定义布局的layout中尽量用RelativeLayout 在通讯录中如果像小米手机的UI那就是viewpager,在这里,我们做成静态的.通过tabhost来做. 1.布局 a) 直接用 ...

  6. C++ 头文件系列(stdexcept)

    预定义异常类 这个头文件包含的内容非常简单,只包含9个异常类,均从exception类派生,因此我们用三张图来描述: 这里仅解释两点: overflow : 指值的大小超过 整型 变量能表示的范围,即 ...

  7. Avahi DOS攻击broadcast-avahi-dos

    Avahi DOS攻击broadcast-avahi-dos   Avahi是Linux下常用的类DNS服务.它可以帮助主机在没有DNS服务的局域网中,发现基于Zeroconf协议的设备和服务.该工具 ...

  8. 字符编码几个缩写 ACR CCS CEF CES TES

    摘自https://zhuanlan.zhihu.com/p/27012967 5. 在Unicode Technical Report (UTR统一码技术报告) #17<UNICODE CHA ...

  9. MAC CURL : Error:35 SSL certificate problem: Couldn&#39;t understand the server certificate format

    起因,使用极光推送最新的版本,里面curl使用https请求,而导致证书出错.一看就懵逼了,从来没遇到过这样的问题,二话不说直接百度,然后就更加懵逼了,搜出来的没有中文内容,对于我这种英文渣来说,简直 ...

  10. Qt监控Access数据库

    配置文件setup.ini内容 [General] DBFilePath=C:/Users/WangGang/Desktop/Database1.accdb DBUserName= DBPasswor ...