利用ffmpeg的配置configure来实现裁剪
2015-07-13 15:50
477 查看
本文主要是 利用 ffmpeg的configure脚本来进行裁剪,由于ffmpeg中实现几十种音视频压缩格式、输入设备、输出设备、封装格式、解封装、协议的支持,生成的库能够达到100多M字节,对于移动端的app嵌入来说,实在是庞大!
下面是 支持MP4封装、支持H.264、H.265、AAC解码、支持RTMP协议的ffmpeg,生成后的ffmpeg大小在5M以内
解码库:libavcodec.a 大小在4M左右
make -j4 是进行编译,j4表示是使用4线程进行编译,多核CPU下可以加速编译速度,在目前的配置脚本下,编译时间大致是3分钟
原因是YUV文件,在ffmpeg中对应编码器为rawvideo、封装器对应rawvideo,加上这两个选项后,能够保存YUV文件
如果想增加其他的功能,自己修改配置脚本即可!
下次继续!
下面是 支持MP4封装、支持H.264、H.265、AAC解码、支持RTMP协议的ffmpeg,生成后的ffmpeg大小在5M以内
解码库:libavcodec.a 大小在4M左右
./configure \ --disable-debug \ --disable-doc \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-avdevice \ --disable-doc \ --disable-symver \ --disable-encoders \ --disable-muxers \ --disable-demuxers \ --disable-parsers \ --disable-bsfs \ --disable-protocols \ --disable-indevs \ --disable-outdevs \ --disable-filters \ --disable-decoders \ --enable-decoder=h264 \ --enable-decoder=hevc \ --enable-decoder=aac \ --enable-muxer=mp4 \ --enable-muxer=rawvideo \ --enable-encoder=rawvideo \ --enable-protocol=file \ --enable-protocol=rtmp make -j4
make -j4 是进行编译,j4表示是使用4线程进行编译,多核CPU下可以加速编译速度,在目前的配置脚本下,编译时间大致是3分钟
--enable-protocol=file \刚开始没有加上面这个选项,出了莫名其妙的错误,调试了半天,一直是下面的错误,找不到协议,用“./configure --list-protocols”打印支持的协议发现里面有个file才醒悟,ffmpeg将输入进行统一,输入的文件也属于协议,不加入file的支持是不能读入文件的,我之前以为TCP、UDP之类的才是协议
ffmpeg_opt.c open_input_file() start...... filename= ./avs2/akiyo_qcif_1f_ai_RD11.0.avs format= (null) o->nb_frame_rates= (null) fmt1: avs2 No URL Protocols are registered. Missing call to av_register_all()? ./avs2/akiyo_qcif_1f_ai_RD11.0.avs: Protocol not found
--enable-muxer=rawvideo \ --enable-encoder=rawvideo \刚开始没加入上面这两个选项,想把解码后的帧输出为YUV文件,一直出错,找不到输出对应的文件
原因是YUV文件,在ffmpeg中对应编码器为rawvideo、封装器对应rawvideo,加上这两个选项后,能够保存YUV文件
如果想增加其他的功能,自己修改配置脚本即可!
下次继续!
--enable-muxer=rawvideo \ --enable-encoder=rawvideo \
相关文章推荐
- 深入理解volatile关键字
- (译)缓存在AFNetworking中是如何工作的?AFImageCache和NSUrlCache给你答案
- Acticity切换时ScrollView不停留原位置,自动滚动其他位置
- 关于SQL Server服务占用内存过大---限制数据库内存使用
- IntelliJ IDEA 14 注册码
- ListView的动态刷新问题——用notifyDataSetChanged没作用
- 推荐!国外程序员整理的 C++ 资源大全
- 安装vmware tools后/mnt/hgfs下看不到共享文件夹的解决办法
- [LeetCode]Divide Two Integers
- java URL和URLConnection的例子
- 黑马程序员——Java要点笔记——集合框架(Set)
- android studio 断点调试和高级调试
- leetcode Add Two Numbers 没什么好说的,考虑全面即可~
- phoneGap,angularJs,onSen的一些备忘
- Delphi 调用netsh命令修改IP地址
- ubuntu14.04完美安装并设置搜狗输入法
- C++ 字符串编程训练5
- Oracle用法、函数备忘记录
- js获取select字段值的方法
- Android无数据线调试方法