ffmpeg/libav 精简不需要的模块

使用ffmpeg或者libav进行开发时,大部分情况下功能需要比较单一,比如是做播放器时只需要解复用和解码模块,甚至是只需要一种音频或者视频的解码器,或者需要使用ffmpeg进行指定格式的编码、转码等,这时如果不对ffmpeg进行定制,而直接从官网上进行下载的话,可能需要几十M的硬盘空间,为了有利于产品的瘦身,需要编译出符合自身需要的ffmpeg。

比如在windows下编译ffmpeg的configure参数(MinGW):

./configure
--enable-shared --enable-gpl --enable-version3 --disable-doc --disable-ffplay
--disable-ffprobe --disable-ffserver --disable-network --disable-avfilter
--enable-memalign-hack --disable-everything --enable-decoder=h264
--enable-decoder=mp3 --enable-decoder=aac
--disable-debug --enable-pthreads
--disable-filters --extra-cflags="-I/C/MinGW/include"
--extra-ldflags="-L/C/MinGW/lib"

这里我只需要h.264、mp3和aac三种解码器,所以使用--enable-decoder=h264
--enable-decoder=mp3 --enable-decoder=aac进行激活,而其它的则全部disbale,这样我自己编译出的ffmpeg动态库就很小了,如下图:

其实通过configure参数,还可以编译出更小的动态库,不过目前的这种大小已经够我们使用了。

时间: 2024-10-11 05:26:00

ffmpeg/libav 精简不需要的模块的相关文章

编译:ffmpeg,精简ffmpeg.exe

网上下载的各种 ffmpeg.exe ,最少都有11M+ 而我只需要处理 mp4 和 mp3,在网上搜索了一下精简ffmpeg的文章,折腾一天,也没有完全搞定,但多少有些收获,记录一下: 从 www.ffmpeg.org 下载 ffmpeg 最新源码代码. libx264, libxvid, libmp3lame, libvo-aacenc 都需要下载源代码进行编译,我将编译后都保存到 /msys/static/ /c/open_source/lame-3.99.5 (下载地址:http://l

关于ffmpeg(libav)解码视频最后丢帧的问题

其实最初不是为了解决这个问题而来的,是Peter兄给我的提示解决另一个问题却让我误打误撞解决了另外一个问题之后也把这个隐藏了很久的bug找到(之前总是有一些特别短的视频产生不知所措还以为是视频素材本身有问题呢),今天真是收获颇丰啊,对libav的理解更深. 一直以来我的程序架构是让读一帧av_read_frame,然后去尝试根据packet的type类型分别去decode video或者audio,然而这样总是在视频的结尾会有许多帧丢失的问题,我找过avplay代码中似乎没找到我想象中的那种读p

基于 ffmpeg 的跨平台播放器实现

https://www.qcloud.com/community/article/309889001486708756 背景: 随着游戏娱乐等直播业务的增长,在移动端观看直播的需求也日益迫切.但是移动端原生的播放器对各种直播流的支持却不是很好.Android 原生的 MediaPlayer 不支持 flv.hls 直播流,iOS 只支持标准的 HLS 流.本文介绍一种基于 ffplay 框架下的跨平台播放器的实现,且兼顾硬解码的实现. 播放器原理: 直观的讲,我们播放一个媒体文件一般需要5个基本

Java Web 中使用ffmpeg实现视频转码、视频截图

转载自:[http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html] 视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能.视频格式转换.视频抓图.给视频加水印等. ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可

基于 ffmpeg时时彩源码 php 的跨平台播放器实现

随着时时彩源码 php[大神源码论坛]dsluntan.com  [布丁源码论坛]budingbbs.com 企娥3393756370 游戏娱乐等直播业务的增长,在移动端观看直播的需求也日益迫切.但是移动端原生的播放器对各种直播流的支持却不是很好.Android 原生的 MediaPlayer 不支持 flv.hls 直播流,iOS 只支持标准的 HLS 流.本文介绍一种基于 ffplay 框架下的跨平台播放器的实现,且兼顾硬解码的实现. 播放器原理: 直观的讲,我们播放一个媒体文件一般需要5个

第一章 FFmpeg简介

1.1 FFmpeg的定义 Fast Forward Moving Picture Experts Group(动态图像专家组) 1.2 FFmpeg的历史 1.3 FFmpeg的基本组成 1 FFmpeg的封装模块AVFormat 实现了目前多媒体领域绝大多数媒体封装格式,包括封装和解封装. 2 FFmpeg的编解码模块AVCodec 实现了目前多媒体领域绝大多数常用编解码格式,既支持编码,也支持解码. 3 FFmpeg的滤镜模块AVFilter 提供了一个通用的音频,视频,字幕等滤镜处理框架

使用java执行ffmpeg命令进行推流操作

视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能.视频格式转换.视频抓图.给视频加水印等. ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可以进行屏幕录制,同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用. 1.能支持的格式 ffmpeg能解析的格式:

FFmpeg开发教程一、FFmpeg 版 Hello world

本系列根据项目ffmpeg-libav-tutorial翻译而来 Chapter 0 - 万物之源 -- hello world 然而,本节的程序并不会在终端打印"Hello world",而是会打印原视频文件的一些信息,比如封装格式.视频时长.分辨率.音频通道数.最后,我们将解码每一帧视频,并将它们保存为YUV文件. FFmpeg libav 架构 在开始coding之前,我们先来了解下FFmpeg的代码结构,并了解它的各个组件之间是怎么通信的. 下图展示了视频解码的大致流程: 首先

Java实现视频网站的视频上传、视频转码、视频关键帧抽图, 及视频播放功能

视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能.视频格式转换.视频抓图.给视频加水印等. ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可以进行屏幕录制,同时还支持以RTP方式将视频流传送给支持RTSP的流媒体服务器,支持直播应用. 1.能支持的格式 ffmpeg能解析的格式: