1. 下载

可以直接访问FFmpeg官网的下载页面http://www.ffmpeg.org/download.html,直接下载源码压缩包或者是git直接下载。

这里直接git拉下来:

git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

以后直接git pull更新,能随时体验最新的代码。

2. 编译环境准备

需要安装SDL库,否则编译不出来ffplay。

sudo apt-get install libsdl1.2-dev

3. 编译

cd ~/ffmpeg //刚才下载的源码目录

./configure --prefix=~/mpeg

make

make install

4. 编译结果

mpeg$ tree . -L 2
.
├── bin
│   ├── ffmpeg
│   ├── ffplay
│   ├── ffprobe
│   └── ffserver
├── include
│   ├── libavcodec
│   ├── libavdevice
│   ├── libavfilter
│   ├── libavformat
│   ├── libavutil
│   ├── libswresample
│   └── libswscale
├── lib
│   ├── libavcodec.a
│   ├── libavdevice.a
│   ├── libavfilter.a
│   ├── libavformat.a
│   ├── libavutil.a
│   ├── libswresample.a
│   ├── libswscale.a
│   └── pkgconfig
└── share
    ├── ffmpeg
    └── man

Libavutil

The libavutil library is a utility library to aid portablemultimedia programming. It contains safe portable string functions,random number generators, data structures, additional mathematicsfunctions, cryptography and multimedia related functionality (likeenumerations for pixel and sample formats). It is not a library forcode needed by both libavcodec and libavformat.

The goals for this library is to be:

Modular

It should have few interdependencies and the possibility of disabling individualparts during ./configure.

Small

Both sources and objects should be small.

Efficient

It should have low CPU and memory usage.

Useful

It should avoid useless features that almost no one needs.

Libswscale

The libswscale library performs highly optimized image scaling andcolorspace and pixel format conversion operations.

Specifically, this library performs the following conversions:

  • Rescaling: is the process of changing the video size. Severalrescaling options and algorithms are available. This is usually alossy process.
  • Pixel format conversion: is the process of converting the imageformat and colorspace of the image, for example from planar YUV420P toRGB24 packed. It also handles packing conversion, that is convertsfrom packed layout (all pixels belonging to distinct planesinterleaved in the same buffer), to planar layout (all samplesbelonging to the same plane stored in a dedicated buffer or "plane").

    This is usually a lossy process in case the source and destinationcolorspaces differ.

Libswresample

The libswresample library performs highly optimized audio resampling,rematrixing and sample format conversion operations.

Specifically, this library performs the following conversions:

  • Resampling: is the process of changing the audio rate, forexample from a high sample rate of 44100Hz to 8000Hz. Audioconversion from high to low sample rate is a lossy process. Severalresampling options and algorithms are available.
  • Format conversion: is the process of converting the type ofsamples, for example from 16-bit signed samples to unsigned 8-bit orfloat samples. It also handles packing conversion, when passing frompacked layout (all samples belonging to distinct channels interleavedin the same buffer), to planar layout (all samples belonging to thesame channel stored in a dedicated buffer or "plane").
  • Rematrixing: is the process of changing the channel layout, forexample from stereo to mono. When the input channels cannot be mappedto the output streams, the process is lossy, since it involvesdifferent gain factors and mixing.

Various other audio conversions (e.g. stretching and padding) areenabled through dedicated options.

Libavcodec

The libavcodec library provides a generic encoding/decoding frameworkand contains multiple decoders and encoders for audio, video andsubtitle streams, and several bitstream filters.

The shared architecture provides various services ranging from bitstream I/O to DSP optimizations, and makes it suitable forimplementing robust and fast codecs as well as for experimentation.

Libavformat

The libavformat library provides a generic framework for multiplexingand demultiplexing (muxing and demuxing) audio, video and subtitlestreams. It encompasses multiple muxers and demuxers for multimediacontainer formats.

It also supports several input and output protocols to access a mediaresource.

Libavdevice

The libavdevice library provides a generic framework for grabbing fromand rendering to many common multimedia input/output devices, andsupports several input and output devices, including Video4Linux2,VfW, DShow, and ALSA.

Libavfilter

The libavfilter library provides a generic audio/video filteringframework containing several filters, sources and sinks.

FFmpeg下载和编译相关推荐

  1. FFmpeg下载、编译、安装

    1.FFmpeg 下载.编译.安装 1.1.下载 新建个目录下载 FFMpeg 源码 下载命令:git clone https://git.ffmpeg.org/ffmpeg.git libavfor ...

  2. ffmpeg 配置与编译

    本文标签(Tag) ffmpeg 配置 编译 1 ffmpeg介绍   ffmpeg是音视频的分离,转换,编码解码及流媒体的完全解决方案,其中最重要的就是libavcodec库.它被mplayer或者 ...

  3. Linux ffmpeg的安装编译过程

    Linux ffmpeg的安装编译过程 1.下载ffmpeg.     在网上搜索一下,或者到官方网站下载 2.解压    tar命令解压 3.配置 ./configure --enable-shar ...

  4. FFMpeg,SDL编译 No avaiable video device

    2019独角兽企业重金招聘Python工程师标准>>> FFMpeg,SDL编译 No avaiable video device 分类: 学习心得 2011-09-08 18:31 ...

  5. VLC for Android源码下载和编译

    Project Hosting on 点击打开链接 最受欢迎的开源项目 点击打开链接 由Android的核心开发团队提供了15个优秀的示例项 目,包含了游戏.图像处理.时间显示.开始菜单快捷方式等. ...

  6. WebRTC源码下载与编译

    WebRTC源码编译 1 几种源码下载方案对比 1.1 拉别人下好的代码 1.2云服务器 1.3 国内镜像 1.4 挂代理(推荐) 2 源码编译环境准备 2.1 环境要求 2.2 代理服务器配置 2. ...

  7. 【Android 音视频开发打怪升级:FFmpeg音视频编解码篇】一、FFmpeg so库编译

    转自:https://juejin.im/post/5e130df55188253a8b42ebac 目录 一.Android音视频硬解码篇: 1,音视频基础知识 2,音视频硬解码流程:封装基础解码框 ...

  8. 使用ffmpeg下载m3u8并转化为MP4视频格式

    因为网页视频下载的需要,需要把m3u8文件转换为MP4文件进行观看,于是发现了好用的ffmpeg. ffmpeg是一个开源的音视频转码工具,它提供了录制.转换以及流化音视频的完整解决方案,可以转码.压 ...

  9. FFmpeg学习之八(FFmpeg源码编译)

    FFmpeg学习之八(FFmpeg源码编译) Mac下 FFmpeg源码编译 安装 1. 使用终端安装FFmpeg 2. 手动编译 2.1 编译环境 - Xcode 2.2 安装依赖库 2.3 安装F ...

最新文章

  1. 「模型解读」GoogLeNet中的inception结构,你看懂了吗
  2. C#中创建DLL(动态链接库)及其使用
  3. golang二维数组初始化
  4. 谁占用了我的Buffer Pool?
  5. ie8 object param没有效果_如何用php实现分页效果
  6. linux中php配置
  7. python day - 09 函数
  8. Zabbix的LLD功能--Low-level discovery
  9. Only Link: Inheritance — private and protected inheritance in c++
  10. 随机访问介质控制协议
  11. Oracle数据库多语言文字存储解决方案
  12. 2020年美赛C题(题目翻译+参考论文)
  13. Google Code 开源项目
  14. 利用Xposed+JustTrustMe绕过Android App(途牛apk)的SSL Pinning
  15. 台式机连接校园网-UPC-lan-login
  16. 笔记:图解网络(小林coding)
  17. 常见的10大超参数优化库
  18. 通过JS代码实现Ping功能
  19. 【疑难杂症】The last packet sent successfully to the server was 0 milliseconds ago.
  20. 华为手机怎么用计算机玩隐藏空间,华为隐私空间怎么用?开启隐私空间私人信息存储更安全...

热门文章

  1. day04 RabbitMQ基本使用
  2. 手机Web开发框架 Mobl
  3. SpringSecurity(Web权限方案)
  4. Angularjs (二)
  5. Veri2. VCS behavioral analysis for the un-driven port
  6. matlab矩阵指定行最大值,求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.*...
  7. 大白话给你讲明白数据仓库
  8. FITC/ICG/TMR/HRP/Cy3荧光标记阿法替尼/阿西替尼/克里唑蒂尼/奥拉帕尼/Lenvatinib/多韦替尼 等药物
  9. 2019年云计算产业市场前景研究,云计算技术发展趋势
  10. 【汇正财经顾晨浩】建筑行业,一带一路合作深化