最近处理音频与视频压缩方面的内容,从官网下载的FFMPEG非常的大,在WINDOW上可以通过定制FFMPEG编译参数来实现FFMPEG的裁剪功能。在网上调查了很多的裁剪编译选项,经过测试都不正确。通过对调查的内容进行取舍支持X264 HECV aac, wav,编译选项如下:
./configure \
--toolchain=msvc \
--target-os=win32 \
--arch=x86_64 \
--enable-debug \
--enable-shared \
--disable-static \
--disable-doc \
--disable-symver \
--disable-bsfs \
--disable-protocols \
--disable-indevs \
--disable-outdevs \
--disable-libvpx \
--disable-dxva2 \
--disable-d3d11va \
--disable-filters \
--disable-encoders \
--disable-decoders \
--disable-muxers \
--disable-demuxers \
--disable-parsers \
--disable-bzlib \
--disable-zlib \
--enable-small \
--enable-asm \
--enable-nonfree \
--enable-gpl \
--enable-swresample \
--enable-filter=scale \
--enable-filter=aresample \
--enable-filter=anull \
--enable-filter=null \
--enable-filter=overlay \
--enable-filter=amix \
--enable-protocol=file \
--enable-encoder=pcm* \
--enable-encoder=flac \
--enable-encoder=libmp3lame \
--enable-encoder=libx264 \
--enable-encoder=aac \
--enable-encoder=rawvideo \
--enable-encoder=mpeg4 \
--enable-encoder=libfdk_aac \
--enable-encoder=jpeg2000 \
--enable-encoder=mjpeg \
--enable-encoder=ljpeg \
--enable-encoder=jpegls \
--enable-encoder=png \
--enable-decoder=png \
--enable-decoder=libfdk_aac \
--enable-decoder=mp3 \
--enable-decoder=pcm* \
--enable-decoder=rawvideo \
--enable-decoder=mpeg4 \
--enable-decoder=movtext \
--enable-decoder=aac \
--enable-decoder=hevc \
--enable-decoder=h264 \
--enable-decoder=flac \
--enable-decoder=jpeg2000 \
--enable-decoder=jpegls \
--enable-decoder=mjpeg \
--enable-decoder=mjpegb \
--enable-decoder=mp3float \
--enable-decoder=mp3adufloat \
--enable-decoder=mp3adu \
--enable-decoder=mp3on4 \
--enable-decoder=mp3on4float \
--enable-muxer=mp3 \
--enable-muxer=aiff \
--enable-muxer=h264 \
--enable-muxer=mp4 \
--enable-muxer=rawvideo \
--enable-muxer='pcm*' \
--enable-muxer=adts \
--enable-muxer=flac \
--enable-muxer=mjpeg \
--enable-muxer=wav \
--enable-muxer=avi \
--enable-demuxer=avi \
--enable-demuxer=wav \
--enable-demuxer=ac3 \
--enable-demuxer=mjpeg \
--enable-demuxer=flac \
--enable-demuxer=mp3 \
--enable-demuxer=aac \
--enable-demuxer=aiff \
--enable-demuxer=h264 \
--enable-demuxer=mov \
--enable-demuxer='pcm*' \
--enable-demuxer=rawvideo \
--enable-parser=ac3 \
--enable-parser=flac \
--enable-parser=aac \
--enable-parser=h264 \
--enable-parser=hevc \
--enable-parser=mpegaudio \
--enable-parser=mpeg4video \
--enable-parser=png \
--enable-indev=v4l2 \
--enable-outdev=v4l2 \
--enable-swscale \
--enable-swscale-alpha \
--enable-libmp3lame \
--enable-libx264 \
--enable-libfdk_aac \
--prefix=./build64 \
--extra-cflags="-I/e/ffmpegcode/extent-lib/include" \
--extra-ldflags="-LIBPATH:/e/ffmpegcode/extent-lib/lib"
可以实现FFMPEG在WINDOW上编译运行,在运行的过程中会有CC_IDENT错误,原因是CC_IDENT采用了英文输入,更改config.h 文件的CC_IDENT如下。
#define CC_IDENT "Use x64 Microsoft (R) C/C++ compiler 19.16.27024.1 version"
经过测试如下命令完全通过
ffmpeg -i ConfessionDreamer.mp3 -ab 32k -ar 16k -ac 2 -acodec aac -y dreamer.aac
ffmpeg -s 352x288 -pix_fmt yuv420p -i test_352x288.yuv -vcodec libh264 test.h264
ffmpeg -r 1 -s 352x288 -i test_352x288.yuv -vcodec copy -vframes 30 output_352x288.yuv
ffmpeg -y -s 352x288 -framerate 30 -r 30 -t 10 -i test_352x288.yuv -f rawvideo -pix_fmt yuv420p test_352x288.raw
ffmpeg -f rawvideo -pix_fmt yuv420p -s 352x288 -i test_352x288.raw test_352x288.mp4
ffmpeg -pix_fmt yuv420p -s 352x288 -i test_352x288.yuv test_352x288.mp4
ffmpeg -i test_352x288.mp4 output_352x288.yuv
ffmpeg -i ConfessionDreamer.mp3 -f s16be -ar 16000 -ac 1 -acodec pcm_s16be dreamer.pcm