1 回答

TA貢獻(xiàn)2080條經(jīng)驗 獲得超4個贊
Windows下FFmpeg快速入門
FFmpeg簡介
FFmpeg是什么?
FFmpeg是用于錄制、轉(zhuǎn)換和流化音頻和視頻的完整解決方案, 包括 libavcodec ,一套領(lǐng)先的音/視頻編解碼類庫。FFmpeg 在Linux上開發(fā),當(dāng)可以在大多數(shù)操作系統(tǒng)下編譯,包括Windows。
Note
FFmpeg對GCC的依賴很強,所以就算是在Windows上, 用VC編譯FFmpeg也不是一件輕松的事情。請盡量使用 GCC來編譯FFmpeg,比較事半功倍。
FFmpeg的組成結(jié)構(gòu)
FFmpeg主要由一下幾個部分組成:
libavcodec: 一個包含了所有FFmpeg音視頻編解碼器的庫。 為了保證最優(yōu)性能和高可復(fù)用性,大多數(shù)編解碼器從頭開發(fā)的。
libavformat: 一個包含了所有的普通音視格式的解析器和 產(chǎn)生器的庫。
ffmpeg:命令行的視頻格式轉(zhuǎn)換程序。
ffplay:視頻播放程序。(需要SDL支持)
ffserver:多媒體服務(wù)器
三個實例程序,這三個實例較為復(fù)雜,基本可以作為API使用手冊:
了解完組成結(jié)構(gòu)后,你會發(fā)現(xiàn),如果你在尋找一種視頻格式轉(zhuǎn)換 的方式,那FFmpeg絕對是你的第一選擇,libavcodec 則又是重 中之重。如果遇上API不會使用的情況,可以參考ffmpeg.c、ffplay.c、 ffserver.c、apiexample.c(解碼)和output_example.c(編碼)。
FFmpeg的編譯
要使用FFmpeg,第一步就是編譯,編譯FFmpeg是一個復(fù)雜的過程,如果你想加快速度,領(lǐng)略FFmpeg 的風(fēng)采,則可以跳過這一步,直接進(jìn)入下一章節(jié)。
FFmpeg的SDK
FFmpeg是一個復(fù)雜的工程,第一步編譯,特別是Windows下的編譯 過程,更是復(fù)雜。 因此,好心的網(wǎng)友提供了Windows下編譯好的 dll和lib庫文件,以及相關(guān)的頭文件。新手們則可直接下載,并開始編寫 FFmpeg庫的程序了。
以上兩者已經(jīng)足以完成FFmpeg的入門,最新的SDK版本是3.0, 對應(yīng)于FFmpeg的版本是 r10087。新手們可以從編譯源代碼庫中的 output_example.c開始,同時參考 SDK入門寶典 。
編譯output_example.c的時候需要注意以下問題:
VC的是不支持C語言中的inline,所以可以把相關(guān)的inline刪除。
對于snprintf的支持,可以考慮下載 snprintf.h和snprintf.c放入工程中。
- 1 回答
- 0 關(guān)注
- 1159 瀏覽
添加回答
舉報