FFmpeg初級開發

FFmpeg日誌的使用以及目錄操作

日誌級別

  1. AV_LOG_ERROR
  2. AV_LOG_WARNING
  3. AV_LOG_INFO
  4. AV_LOG_DEBUG
//導入文件
include <libavutil/log.h>

//日誌級別
av_log_set_level(AV_LOG_DEBUG)

//打印日誌
av_log(NULL, AV_LOG_INFO, "...%s\n", op)

介紹FFmpeg的基本概念以及常用結構體

libavcodec::提供一系列的編碼器的實現
libavformat:實現在流協議,容器格式以及基本IO訪問

libavutil:包括了hash器,解碼器和各種工具函數
libavdevice:提供了訪問捕獲設備和回訪設備的接口

libavfilter:提供了各種音視頻的過濾器
libswresample:實現了混音和重採樣
libswscale:實現了色彩轉換和縮放的功能

對付用解複用以及流操作的各種實踐

多媒體文件基本概念

  1. 多媒體文件其實是個容器
  2. 在容器裏有很多(Stream/Track)
  3. 每種流是右不同編碼器編碼
  4. 從流中讀出的數據稱之爲包
  5. 在一個包中包含着一個或多個幀

幾個重要的結構體

  1. AVFormatContext
  2. AVStream
  3. AVPacket

FFmpeg操作流數據的基本步驟

  1. 容器打開:解複用
  2. 獲取流
  3. 讀取數據包
  4. 釋放資源

實戰 打印音視頻信息

API有哪些

  1. av_reginster_all() 必須的
  2. avformat_open_input() / avformat_close_input() 打開和關閉多媒體文件
  3. av_dump_format() 多媒體文件信息
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章