FFMPEG學習指南
一.編譯
參考doc目錄中的document和根目錄的configure可知:
1. source configure --enable-ffplay
其中—enable-ffplay是會編譯生成ffplay, 若是沒有生成ffplay,請參考如下可能: (1)一、安裝SDL庫(不安裝將沒有ffplay)(若是本身去下載SDL源碼而後make install安裝的庫,編譯ffmpeg能夠產生ffplay,可是產生的ffplay播放視頻沒有聲音。並且不能播音頻)。以及其餘的一些庫。
$sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libMP3lame-dev libsdl1.2-dev libtheora-dev libx11-dev libxvidcore4-dev zlib1g-dev
sudo apt-get install libsdl1.2-dev(比較大,10M左右)
2. make (這裏將會主要生成ffmpeg,ffplay,ffserver三個文件)
二.ffserver搭建簡單的http碼流服務器(mp3):
1. 更改doc/ffserver.conf 中的MP3部分:
# MP3 audio
<Stream test.mp3> file "/home/taoanran/git/media/ffmpeg/test.mp3" //碼流的地址,名字必須與<Stream test.mp3>徹底相同 Format mp2 #AudioCodec mp3
#AudioBitRate 64
#AudioChannels 1
#AudioSampleRate 44100 NoVideo </Stream>
2.執行:ffserver -f doc/ffserver.conf ,便可開啓服務
3.執行: ffplay http://192.168.0.173:8090/test.mp3 可接受到碼流
ffmpeg -i audio.wav -f s16le -acodec pcm_s16le out.pcm 轉換wav-> pcm數據
ffmpeg錄製碼流:
ffmpeg -i rtsp://192.168.230.206/h264 -t 60 -vcodec copy -acodec copy flv.flv
-t參數是幀率
ffmpeg學習碰到的問題
1.ffmpeg源碼core文件全是「?」 的解決辦法:
在common.mak 中加-g
而且得要把
all: $(PROGS) 的 PROGS 修改一下,去掉 $(STRIP) $@, 否則雖然加了-g,添加了調試信息, 可是最終會被清掉。
重要函數或是結構體總結:
1. SwsContext(結構體):用來變換圖像格式的。好比yuv422變到yuv420等。具體的請見:libswscale/swscale_internal.h