FFmpeg的庫函數常用代碼羅列:
Fmpeg主要能完成的功能:解碼和編碼
【總體功能】
1)解碼 decode ---》視頻行業有DC(硬解碼器), SDC(軟解碼器),相當於從視頻流到yuv到圖像,由DC或者SDC來處理,DC的話相當於有個硬件,來釋放播放器的電腦的CPU或者那種大屏的CPU,而SDC這種軟解碼器其實就是最普通的播放器。
2)編碼 encode---》視頻行業裏面爲了解放前端視頻設備的CPU,這樣前端只要採集到視頻後,通過模擬線給後端的EC,EC相當於是編碼器,統一編碼成H.264並打包成TS,然後轉成TS + RTP轉發給對應的播放器或者服務器。
入門FFmpeg庫,首先了解了上面的後,需要掌握函數的使用。(下面的羅列的函數,是從雷霄驊,雷哥的blog裏面摘錄過來,路徑:http://blog.csdn.net/leixiaohua1020/article/details/8661601)
【通用的】
1)av_register_all()
2)avcodec_register_all()
3)內存的分配和釋放(av_malloc(), av_free()等)
4)常用結構體的初始化和銷燬(AVFormatContext,AVFrame等)
5)avio_open2()
6)av_find_decoder()和av_find_encoder()
7)avcodec_open2()
8)avcodec_close()
【解碼】
1)avformat_open_input()
2)avformat_find_stream_info()
3)avformat_read_frame()
4)avcodec_decode_video2()
5)avformat_close_input()
【編碼】
1)avformat_alloc_output_context2()
2)avformat_write_header()
3)avcodec_encode_video()
4)av_write_frame()
5)av_write_trailer()
【其他】
1)av_log() 日誌輸出系統
2)結構體成員管理系統 - AVClass
3)結構體成員管理系統- AVOption
4)libswscale的sws_getContext()
5)libswscale的sws_scale()
6)libavdevice的avdevice_register_all()
7)libavdevice的gdigrab
【腳本】
1)makefile
2)configure