2024年1月3日发(作者:)
LINUX下编译ffmpeg-x264
1 版本:
X264.r663,ffmpeg.r9453
2 yasm
2.1 下载yasm新版本
要安裝x264,就需要用yasm來編譯。那就先裝個yasm吧。yasm下載網址:
/projects/yasm/releases/
2.2 编译安装
#tar xzvf
#cd yasm-0.6.0
#./configure --prefix=/usr/local/yasm
#make
#make install
3 x264
3.1 编译
3.1.1 编译静态库
svn co svn:///x264/trunk x264
cd x264
./configure --prefix=/static
make
make install//可不执行,手工来
3.1.2 编译动态库
svn co svn:///x264/trunk x264
cd x264
patch -p0 <
./configure --prefix=/shared --enable-shared
make
make install//可不执行,手工来
3.2 安装
由于一般ffmpeg采用静态连接x264,所以只需要编译安装x264静态库
#cp libx264.a /usr/lib
#cp x264.h /usr/include
4 ffmpeg
4.1 下载
到FFmpeg官方下载最新的FFmpeg版本。CVS服务器地址如下:
cvs -z9 -d:pserver:anonymous@:/cvsroot/ffmpeg co ffmpeg。
现在已改成SVN下载:
svn:///ffmpeg
4.2 编译安装
#./configure --enable-shared --disable-static --enable-memalign-hack --enable-libx264 --enable-gpl --enable-pthreads
#make
#make install
make install结果:
1) 头文件:/usr/local/include/ffmpeg
-rw-r--r-- 1 root root 5180 7月 3 17:18 swscale.h
-rw-r--r-- 1 root root 3053 7月 3 17:18 rtsp.h
-rw-r--r-- 1 root root 1712 7月 3 17:18 rtspcodes.h
-rw-r--r-- 1 root root 3797 7月 3 17:18 rtp.h
-rw-r--r-- 1 root root 7647 7月 3 17:18 rgb2rgb.h
-rw-r--r-- 1 root root 3062 7月 3 17:18 rational.h
-rw-r--r-- 1 root root 2408 7月 3 17:18 random.h
-rw-r--r-- 1 root root 3087 7月 3 17:18 opt.h
-rw-r--r-- 1 root root 2044 7月 3 17:18 mem.h
-rw-r--r-- 1 root root 1174 7月 3 17:18 md5.h
-rw-r--r-- 1 root root 1767 7月 3 17:18 mathematics.h
-rw-r--r-- 1 root root 1132 7月 3 17:18 lzo.h
-rw-r--r-- 1 root root 3599 7月 3 17:18 log.h
-rw-r--r-- 1 root root 1302 7月 3 17:18 intfloat_readwrite.h
-rw-r--r-- 1 root root 2343 7月 3 17:18 integer.h
-rw-r--r-- 1 root root 2943 7月 3 17:18 fifo.h
-rw-r--r-- 1 root root 9315 7月 3 17:18 common.h
-rw-r--r-- 1 root root 1223 7月 3 17:18 base64.h
-rw-r--r-- 1 root root 6020 7月 3 17:18 avutil.h
-rw-r--r-- 1 root root 2494 7月 3 17:18 avstring.h
-rw-r--r-- 1 root root 9406 7月 3 17:18 avio.h
-rw-r--r-- 1 root root 31796 7月 3 17:18 avformat.h
-rw-r--r-- 1 root root 95102 7月 3 17:18 avcodec.h
-rw-r--r-- 1 root root 993 7月 3 17:18 adler32.h
2)库文件:/usr/local/lib
drwxr-xr-x 2 root root 4096 7月 3 17:18 vhook
drwxr-xr-x 2 root root 4096 7月 3 17:18 pkgconfig
-rwxr-xr-x 1 root root 29412 7月 3 17:18 .49.4.1
lrwxrwxrwx 1 root root 19 7月 3 17:18 .49 -> .49.4.1
lrwxrwxrwx 1 root root 19 7月 3 17:18 -> .49.4.1
-rwxr-xr-x 1 root root 557856 7月 3 17:18 .51.12.1
lrwxrwxrwx 1 root root 22 7月 3 17:18 .51 -> .51.12.1
lrwxrwxrwx 1 root root 22 7月 3 17:18 -> .51.12.1
-rwxr-xr-x 1 root root 4105568 7月 3 17:18 .51.40.4
lrwxrwxrwx 1 root root 21 7月 3 17:18 .51 -> .51.40.4
lrwxrwxrwx 1 root root 21 7月 3 17:18 -> .51.40.4
4.3 合并libavcodec和libavutil
1) 新建一个目录make_my
2) 拷贝需要的.o文件
a)
b)
c)
d)
#cp ffmpeg/libavcodec/*.o make_my
#mkdir make_my/i386
#cp ffmpeg/libavcodec/i386/*.o make_my/i386
#cp ffmpeg/libavutil/*.o make_my
3) 合并libavcodec和libavutil成一个库(注意路径问题)
gcc -shared -Wl,-soname,.51 -pthread -rdynamic -export-dynamic -Wl,--warn-common -Wl,--as-needed
-Wl,-rpath-link,"/home/wncheng/vtapp/ffmpeg/ffmpeg.r9453"/libavcodec
-Wl,-rpath-link,"/home/wncheng/vtapp/ffmpeg/ffmpeg.r9453"/libavformat
-Wl,-rpath-link,"/home/wncheng/vtapp/ffmpeg/ffmpeg.r9453"/libavutil -o .51 bitstream.o utils.o allcodecs.o
mpegvideo.o jrevdct.o jfdctfst.o jfdctint.o resample.o resample2.o dsputil.o motion_est.o imgconvert.o mpeg12.o simple_idct.o
ratecontrol.o eval.o error_resilience.o raw.o faandct.o parser.o rangecoder.o h263.o opt.o bitstream_filter.o audioconvert.o
imgresample.o i386/fdct_mmx.o i386/cputest.o i386/dsputil_mmx.o i386/mpegvideo_mmx.o i386/motion_est_mmx.o
i386/simple_idct_mmx.o i386/idct_mmx_xvid.o i386/fft_sse.o i386/fft_3dn.o i386/fft_3dn2.o aasc.o ac3enc.o ac3tab.o ac3.o alac.o
asv1.o atrac3.o mdct.o fft.o avs.o bethsoftvideo.o bmp.o bmpenc.o c93.o cavs.o cavsdsp.o golomb.o cinepak.o cljr.o cook.o cscd.o
cyuv.o dca.o dnxhddec.o dsicinav.o dvbsubdec.o dvbsub.o dvdsubdec.o dvdsubenc.o dv.o dxa.o 8bps.o ffv1.o huffyuv.o flac.o
flacenc.o flashsv.o flashsvenc.o flicvideo.o 4xm.o fraps.o gifdec.o lzw.o gif.o h261dec.o h261.o h261enc.o h263dec.o h264.o
h264idct.o cabac.o idcinvideo.o imc.o indeo2.o indeo3.o interplayvideo.o dpcm.o jpeglsdec.o jpegls.o mjpegdec.o mjpeg.o
jpeglsenc.o kmvc.o ljpegenc.o mjpegenc.o loco.o mace.o mjpegbdec.o mmvideo.o mpegaudiodec.o mpegaudiodecheader.o
mpegaudio.o mpegaudiodata.o mpegaudioenc.o mpc.o msmpeg4.o msmpeg4data.o msrle.o msvideo1.o lcl.o nuv.o rtjpeg.o
pnmenc.o pnm.o png.o ptx.o qdm2.o qdrw.o qpeg.o qtrle.o qtrleenc.o ra144.o ra288.o roqvideodec.o roqvideo.o roqvideoenc.o
elbg.o roqaudioenc.o rpza.o rv10.o sgidec.o sgienc.o rle.o shorten.o smacker.o smc.o snow.o sonic.o sp5xdec.o svq1.o targa.o
targaenc.o vp3.o xiph.o vp3dsp.o tiertexseqv.o tiff.o tiffenc.o lzwenc.o truemotion1.o truemotion2.o truespeech.o tscc.o tta.o txd.o
s3tc.o ulti.o vc1.o vc1data.o vc1dsp.o vcr1.o vmdav.o vmnc.o vorbis_dec.o vorbis.o vorbis_data.o vorbis_enc.o vp5.o vp56.o
vp56data.o vp6.o vqavideo.o wavpack.o wmadec.o wma.o wmaenc.o wnv1.o ws-snd1.o xan.o xl.o zmbv.o zmbvenc.o pcm.o
adpcm.o adx.o g726.o libx264.o aac_parser.o aac_ac3_parser.o ac3_parser.o cavs_parser.o dca_parser.o dvbsub_parser.o
dvdsub_parser.o h261_parser.o h263_parser.o h264_parser.o mjpeg_parser.o mpeg4video_parser.o mpegaudio_parser.o
mpegvideo_parser.o pnm_parser.o vc1_parser.o dump_extradata_bsf.o remove_extradata_bsf.o noise_bsf.o
mp3_header_compress_bsf.o mp3_header_decompress_bsf.o mjpega_dump_header_bsf.o imx_dump_header_bsf.o pthread.o
i386/idct_mmx.o i386/cavsdsp_mmx.o i386/snowdsp_mmx.o i386/vp3dsp_mmx.o i386/vp3dsp_sse2.o tree.o string.o rational.o
random.o mem.o md5.o mathematics.o lzo.o log.o lls.o intfloat_readwrite.o fifo.o crc.o base64.o aes.o adler32.o
-L"/home/wncheng/vtapp/ffmpeg/ffmpeg.r9453"/libavutil -lavutil -lm -lz -lx264 -ldl
5 问题
1)configure时提示“bad interpreter”
答:vi configure然后:set ff=unix
答:chmod +x filename
2) configure时提示“某文件权限问题”


发布评论