一.windows
windows下使用msys編譯ffmpeg,先編譯libx264和libx265,然后編譯ffmpeg的時候需要添加這兩個庫的路徑才能--enable;為什么ffplay--enable了還是沒有呢,仔細看編譯打印,可能剛有一段報錯提示SDL找不到,這個時候咱們就直接使用msys安裝SDL,然后--enable啟動sdl,這樣ffplay就可以編譯成功了。參考這個博主:
FFmpeg在 Windows 環境編譯(64位)支持h264,h265,和Intel QSV,Nvidia Cuda,AMD amf 硬件加速_ffmpeg x64-CSDN博客
注意:
此時ffmpeg的libfdk_aac、opus等編碼器還沒下載,需要使用msys下載
pacman -S mingw-w64-x86_64-fdk-aacpacman -S mingw-w64-x86_64-lamepacman -S mingw-w64-x86_64-opus
#windows中我這里使用cmakelists進行編譯,使用的工具是msys+make(隨便一搜就有如何下載)
#build下構建指令
cmake .. -G "Unix Makefiles"
make
ffmpeg的源碼是c風格的,添加頭文件需要使用extern “C”{}括起來?
打開麥克風
#查看自己系統的音頻設備信息
ffmpeg -list_devices true -f dshow -i dummy
#錄制音頻(windows)
ffmpeg -f dshow -i audio="virtual-audio-capturer" out1.wav
#linux
ffmpeg -f alsa-i audio="virtual-audio-capturer" out1.wav
錄制音頻
#采樣率44100 雙聲道 s16le表示位深度為16位,
#意味著每個樣本大小使用16位(8位一個字節,2個字節)來表示值
ffmpeg -f dshow -i default -ac 2 -ar 44100 -c:a s16le output.wav
重采樣
在重采樣之前,我們先獲取自己的音頻設備采樣參數:
//獲取音頻設備列表
ffmpeg -list_devices true -f dshow -i dummy
//獲取音頻采樣參數
ffmpeg -f dshow -i audio="xxxxx"
也可以先用ffmpeg在本地錄制一段音頻,然后使用ffplay播放就可以看到了。
#使用ffplay播放pcm
ffplay -f s16le -ar 44100 -ac 2 out.pcm
注意:需要戴耳機否則沒麥聲音特別小。