一、前言

[TOC]

开始前的BB

最近学习了一些关于FFmpeg的姿势(知识),也是踩坑踩到吐血

找网上资料和例子找半天写完了不对,各种编译不通过,以及写的过程中各种遇见的乱七八糟的异常,内存侧漏,突然暴毙。。。。(数不过来了)
音视频的学习比较难的地方就在于 概念多: (图像/视频的各种概念、封装格式、H264结构、YUV的各种格式、音频的概念、MP3/AAc编码格式、PCM) 知识杂: 视频的硬/软编解码(Stagefright(Android)、AVFoundation(iOS)、FFmpeg)、图像处理,音频处理 资料少 网上对于新手的资料真的很不友好,上来就把概念讲的很细,一脸懵逼,然后一顿撸码,完事之后该不会还不会,该不懂还不懂 坑多: 此处特指Android各种厂商乱改之后的 MediaXXX系列,谁用谁知道

本着前人滚坑,后人平躺的原则,准备记录下这一路踩坑过来的各种问题

  • 首先 假装你已经有了简单的音视频的知识,如果不懂的话,传送门在这里 音视频基础知识讲解

  • 其次 C/C++基本知识 ffmepg是用纯C写的 整篇文章基本都是在C/C++的环境下编写操作,包括分析ffmpeg里面的源码,都是需要以这个为前提的,假如不太了解的话产传送门在这里 C基础教程 C++基础教程

  • 一些建议 开始入坑的朋友们不用着急一下把所有的东西都看懂,一步步来,一层层的进;有些刚开始只需要知道一些概念,等实际要用到的时候,再去细了解也不迟。本系列文章页就是遵循这个方式来进行讲解

环境配置

首先说一下我的本地环境

  • MacOS 10.14.1
  • gcc 4.2.1
  • Cmake version 3.6.0-rc2
  • CLion 2018.3

网上文章的ffmpeg版本参差不齐,社会在进步 人类在发展,本着稳重带皮的原则,使用的是 :

FFmpeg 4.0.2 "Wu" ------------------>下载地址

you are so kris wu?

编译

SDL2

编译ffmpeg前我们的项目用需要用的SDL2,所以我们得先去下载编译SDL2--->SDL2下载地址 下载解压,终端进去SDL2的目录 执行

 ./configure
  make -j8 
  make install 
复制代码

这里我们为了方便 默认的install 直接是install到了/usr/local/Cellar/sdl2/ 下

lib目录下是我们需要用的库, includ是头文件

ffmpeg

编译好了SDL2后我们来编译ffmpeg,因为我们现在暂时还没用到其他的包,这里我们就简单编译一下,下载完ffmpeg 4.0.2源码后进入目录,执行

./configure \--disable-static\  --enable-shared\  --enable-gpl\  --enable-version3\  --enable-sdl2\  --enable-bzlib\  --enable-libx264\  --enable-lzma\  --enable-zlib\  --enable-gmp\  --enable-appkit\  --enable-avfoundation\  --enable-coreimage\  --enable-audiotoolbox

make -j8
make install
复制代码

同样,我们可以去/usr/local/Cellar/ffmpeg去取头文件和动态库

接下来,我们先来整体了解一下FFmpeg的整体结构,常用结构体与API与核心流程

未完持续。。。

转载于:https://juejin.im/post/5cac7e5d5188251b194865b2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值