FFmpeg日誌的使用以及目錄操作
日誌級別
- AV_LOG_ERROR
- AV_LOG_WARNING
- AV_LOG_INFO
- 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:實現了色彩轉換和縮放的功能
對付用解複用以及流操作的各種實踐
多媒體文件基本概念
- 多媒體文件其實是個容器
- 在容器裏有很多(Stream/Track)
- 每種流是右不同編碼器編碼
- 從流中讀出的數據稱之爲包
- 在一個包中包含着一個或多個幀
幾個重要的結構體
- AVFormatContext
- AVStream
- AVPacket
FFmpeg操作流數據的基本步驟
- 容器打開:解複用
- 獲取流
- 讀取數據包
- 釋放資源
實戰 打印音視頻信息
API有哪些
- av_reginster_all() 必須的
- avformat_open_input() / avformat_close_input() 打開和關閉多媒體文件
- av_dump_format() 多媒體文件信息