ffmpeg在centos7上的编译

音视频的编码格式标准有很多种: mp3, acc, mpeg4, h264, h265 …
每个标准都有一个或多个编解码库, 如h264的库有libx264, mpeg4的库有xvid, h265的库有libx265
不同的库, 里面提供的函数及编解码操作流程都会不一样. 
ffmpeg其实就把各种库的编解码接口统一标准化, 也就是学会一种接口后就可以通杀各种编解码库.

当然ffmpeg除了编解码外,还有如操作设备等的其它功能.

//////////////////////////////////////
可以从相应的官网下载相关的库, 也可以从我的网盘下载:
https://pan.baidu.com/s/1ctkhC6 密码:3v49

编译ffmpeg库:

一.
    安装yasm库(有助于提高ffmpeg的编解码效率)
     1). 解包yasm-1.3.0.tar.gz
         进入yasm-1.3.0目录
         
     2). 执行./configure产生Makefile 
     
     3). make  && make install
/////////////
    安装cmake工具(编译c++源码工程的工具, 编译libx265库用到)
	yum install cmake*

    安装好后,检查cmake的版本
	cmake --version 如果大于3.5.1则不需安装cmake-3.14.5

    否则需安装cmake-3.14.5
    1). 解包cmake-3.14.5.tar.gz
	进入cmake-3.14.5目录

    2). 执行./configure产生Makefile
	configure完成后, 通过"echo $?"查看执行结果是否成功.
	如果不是0,则不成功, 不能作下一步.
	
    3). 执行make && make install
二. 编译h264编解码库
    1). 解包last_x264.tar.bz2
	进入x264-snapshot-20160319-2245目录

    2). 执行"./configure --enable-shared"
	// enable-shared 加上编译出动态库的支持
	// enable-static 加上编译出静态库的选项

    3). make && make install
	安装完成后, h264库的头文件在/usr/local/include
	           动静态库在/usr/local/lib
		   x264.pc库的配置文件在/usr/local/lib/pkgconfig
	
三. 编译h265编解码库
    1). 解包x265_1.9.tar.gz
	进入x265_1.9目录里的build/linux目录

    2). 在终端下执行目录下的make-Makefiles.bash脚本文件
	执行时会弹出界面选项, 按'c'再按'g'键保存退出
	
    3). make 
	如出现如下错误信息:
	x265_1.9/source/common/param.cpp:55: 错误:‘char* strtok_r(char*, const char*, char**)’先被声明为‘extern’后又被声明为‘static’

	修改x265_1.9/source/common/param.cpp的55行, 把"static"关键字去掉

    4). make install
	h265库的头文件在/usr/local/include
	动静态库在/usr/local/lib
	x265.pc库的配置文件在/usr/local/lib/pkgconfig
四.  编译ffmpeg库
    1). 解包ffmpeg-3.0.tar.bz2
	进ffmpeg-3.0目录里
	
    2). 在终端里输入命令: export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
	./configure --disable-debug --enable-libx264 --enable-libx265 --enable-gpl --enable-shared

	
	注意查看输出的信息:
	enabled program: 是否有ffplay(没有的话,yum install *SDL*, 后再重新configure)	


    3). make && make install	
	    完成后,便于使用这个库的程序的执行,增加库的路径。
	    vim /etc/ld.so.conf.d/ffmpeg.conf
	      写上内容:  /usr/local/lib
	      保存退出后, 再执行:
           ldconfig

完成后, 有命令: ffmpeg   ffplay

	ffmpeg -decoders  //列出可用的解码器   H264  H265
	ffmpeg -encoders  //列出可用的编码器
	ffmpeg -devices   //列出可支持的设备

备注: 有参考网上的几个例子, 感谢共享.

你可能感兴趣的:(ffmpeg)