1、前言

[TOC]html

開始前的BB

最近學習了一些關於FFmpeg的姿式(知識),也是踩坑踩到吐血 bash

疲憊的目光
找網上資料和例子找半天寫完了不對,各類編譯不經過,以及寫的過程當中各類碰見的亂七八糟的異常,內存側漏,忽然暴斃。。。。(數不過來了)
難受
音視頻的學習比較難的地方就在於 概念多: (圖像/視頻的各類概念、封裝格式、H264結構、YUV的各類格式、音頻的概念、MP3/AAc編碼格式、PCM) 知識雜: 視頻的硬/軟編解碼(Stagefright(Android)、AVFoundation(iOS)、FFmpeg)、圖像處理,音頻處理 資料少 網上對於新手的資料真的很不友好,上來就把概念講的很細,一臉懵逼,而後一頓擼碼,完事以後該不會還不會,該不懂還不懂 坑多: 此處特指Android各類廠商亂改以後的 MediaXXX系列,誰用誰知道

本着前人滾坑,後人平躺的原則,準備記錄下這一路踩坑過來的各類問題app

  • 首先 僞裝你已經有了簡單的音視頻的知識,若是不懂的話,傳送門在這裏 音視頻基礎知識講解學習

  • 其次 C/C++基本知識 ffmepg是用純C寫的 整篇文章基本都是在C/C++的環境下編寫操做,包括分析ffmpeg裏面的源碼,都是須要以這個爲前提的,假如不太瞭解的話產傳送門在這裏 C基礎教程 C++基礎教程google

  • 一些建議 開始入坑的朋友們不用着急一下把全部的東西都看懂,一步步來,一層層的進;有些剛開始只須要知道一些概念,等實際要用到的時候,再去細瞭解也不遲。本系列文章頁就是遵循這個方式來進行講解編碼

環境配置

首先說一下個人本地環境spa

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

網上文章的ffmpeg版本良莠不齊,社會在進步 人類在發展,本着穩重帶皮的原則,使用的是 :3d

FFmpeg 4.0.2 "Wu" ------------------>下載地址code

you are so kris wu?cdn

編譯

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與核心流程

未完持續。。。

相關文章
相關標籤/搜索