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