ffmpeg常用API筆記

Ann-發表於2024-05-03

1.ffmpeg日誌系統 <libavutil/log.h>

1) av_log_set_level(AV_LOG_DEBUG)

2)av_log(NULL,AV_LOG_INFO,"fmt...",op)

2.<libavformat/avformat.h>

操作目錄:

1) avio_open_dir()

開啟一個目錄。結構體AVIODirContext,表示目錄的上下文資訊。

//引數1:上下文; 引數2:要訪問的目錄的url; 引數3:不關心
int
avio_open_dir(AVIODirContext** s, const char* url, NULL);

2) avio_read_dir()

讀下一個目錄項。

//引數1:上下文; 引數2:一個AVIODirEntry物件。
int avio_read_dir(AVIODirContext* s, AVIODirEntry** next);

當前上下文還有下一個entry項時,在堆區分配一個AVIODirEntry物件,將這個entry物件賦值給next。沒有下一項時,將next置為NULL。

3) avio_close_dir()

關閉一個目錄。

int avio_close_dir(AVIODirContext** s);

操作流檔案

1)avformat_open_input()

Open an input stream and read the header. 結構體AVFormatContext為格式上下文。

//引數1:上下文;引數2:要開啟的輸入流的url;引數3:若為NULL,則自動檢測檔案字尾作為輸入格式,若不為NULL,強制一個輸入格式; 
int avformat_open_input(AVFormatContext** ps, const char* url, const AVInputFormat* fmt, NULL);

若成功開啟,返回值>0,並將開啟的流檔案的上下文寫入第一個引數ps。

2)av_dump_format()

//引數1:上下文;引數2:流的編號,隨便給個0就行;引數3:多媒體檔案的url;引數4:指明是輸入流還是輸出流,輸入流為0,輸出流為1.
void av_dump_format(AVFormatContext** ps, 0, const char* url, int is_output);

相關文章