直接基於ffmpeg來修改,去掉SDL。數據庫選用mongodb,方便用C語言對接db。
既然不需要顯示,那還是基於linux來開發比較方便一些。
一、setenv
yum -y install gcc gcc-c++ make git bzip2
二、compile
git clone https://git.videolan.org/git/x264.git
編譯x264:
./configure –prefix=/usr/local/x264 –enable-shared –enable-static –disable-asm
gcc -o x264 x264.o input/input.o input/timecode.o input/raw.o input/y4m.o output/raw.o output/matroska.o output/matroska_ebml.o output/flv.o output/flv_bytestream.o filters/filters.o filters/video/video.o
filters/video/source.o filters/video/internal.o filters/video/resize.o filters/video/fix_vfr_pts.o filters/video/select_every.o filters/video/crop.o input/avs.o input/lavf.o filters/video/cache-8.o
filters/video/depth-8.o input/thread-8.o filters/video/cache-10.o filters/video/depth-10.o input/thread-10.o libx264.a
-ldl -lavformat -lavcodec -lswresample -lavutil -lpthread -lswscale -lavutil -m64 -lm -lpthread -lrt -ldl
編譯fdk-aac:
wget https://nchc.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-2.0.0.tar.gz
./configure –prefix=/usr/local/fdkaac/ –enable-shared
編譯sdl2 , http://www.libsdl.org/download-2.0.php
./configure –prefix=/usr/local/sdl2 –enable-shared –enable-static
make;make install
編譯ffmpeg:
wget http://ffmpeg.org/releases/ffmpeg-4.1.tar.bz2
./configure –prefix=/usr/local/ffmpeg –enable-gpl –enable-version3 –enable-nonfree –enable-pthreads –enable-postproc –disable-shared –enable-libx264 \
–extra-cflags=-I/usr/local/x264/include –extra-ldflags=-L/usr/local/x264/lib –disable-x86asm
三、install/runtime
[root@localhost ffmpeg]
# cat ff_setpath
export PATH=/usr/local/ffmpeg/bin:$PATH
export PKG_CONFIG_PATH=/usr/local/x264/lib/pkgconfig:/usr/local/fdkaac/lib/pkgconfig/:/usr/local/ffmpeg/lib/pkgconfig/:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/usr/local/sdl2/lib/pkgconfig:$PKG_CONFIG_PATH
cat ff_build.sh
mkdir ffbuild/bin
./configure –prefix=/home/gitwork/videoplay/ffbuild/bin –enable-gpl –enable-version3 –enable-nonfree –enable-postproc –disable-x86asm –enable-ffplay –enable-shared –disable-static –enable-libx264 –extra-cflags=-I/home/gitwork/videoman/third/x264/include –extra-ldflags=-L/home/gitwork/videoman/third/x264/lib –enable-sdl2 –extra-cflags=-I/home/gitwork/videoman/third/sdl2/include –extra-ldflags=-L/home/gitwork/videoman/third/sdl2/lib –extra-cflags=”-I/home/gitwork/videoman/third/mongodb/include/libbson-1.0 -I/home/gitwork/videoman/third/mongodb/include/libmongoc-1.0″ –extra-ldflags=”-L/home/gitwork/videoman/third/mongodb/lib -lmongoc-1.0 -lbson-1.0″
vi /etc/ld.so.conf.d/ff_lib.conf
/usr/local/x264/lib/
/usr/local/fdkaac/lib/
/usr/local/ffmpeg/lib/
/usr/local/sdl2/lib/
/usr/local/mongodb/lib/
# ldconfig
四、測試驗證
# 需要快速測試出視頻流通斷情況,首開時間/時延/卡頓率都不能測,太耗時了。