hetzner centos8 下编译ffmpeg+h264_qsv
友情提醒.请购买hz 独服CPU 6700以上的.比这CPU还老的那就别看了.不支持~~
先测试下机器上是否带有核显 命令为:lspci |grep VGA
然后去github下载最新的linux版本Media Sdk
下载地址为:https://github.com/Intel-Media-SDK/MediaSDK/releases
点击位置如下图所示
然后拉到底部
获取sdk下载地址 使用wget下载到服务器内
接下来就是解压mediastack.tar.gz了
然后安装所需的编译环境.
我是参考的这个https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
或者直接使用
1 | yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel libass-devel redhat-lsb |
这得花点时间..
等全部软件安装好.就可以开始安装mediasdk了
进入到我们解压后的mediastack文件夹
然后使用sh install_media.sh 进行安装
咔咔咔.安装好后.会提示叫你重启机器
安装完毕后.去下载intel维护的定制版ffmpeg.地址为:https://github.com/Intel-FFmpeg-Plugin/Intel_FFmpeg_plugins/wiki
然后创建一个文件命名为 libmfx.pc .命令代码是 vi libmfx.pc
复制下面的代码进去
1 2 3 4 5 6 7 8 9 10 | prefix=/opt/intel/mediasdk exec_prefix=/opt/intel/mediasdk/ libdir=${prefix}/lib64/includedir=${prefix}/include/ Name: libmfx Description: mfx Version: 1.0.0 Cflags: -I${includedir} Libs: -L${libdir} -lmfx -ldl -lstdc++ -lrt -lva -lva-drm Libs.private: -lstdc++ -ldl |
然后复制一份libmfx.pc到/usr/lib64/pkgconfig目录下 代码为: cp libmfx.pc /usr/lib64/pkgconfig
把pc文件加入到packet config搜索路径中
1 2 3 4 5 6 | vi /etc/profile export MFX_HOME=/opt/intel/mediasdk/export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/ source /etc/profile |
接下来就是编译ffmpeg了
进入到intel_ffmpeg_plugins目录下
执行
1 | ./configure --prefix=$HOME/build --disable-x86asm --enable-libmfx --enable-libass |
这步执行的时间是真的久慢慢等吧..
最后 使用
1 | make&make install |
如果编译失败那就使用下面的命令
1 2 3 | ./configure --disable-x86asm --enable-libmfx --enable-libass make -j4 make install |
安装ffmpeg
找个视频文件测试ffmpeg是否安装成功
进入到intel_ffmpeg_plugins目录下.执行下面代码进行测试
1 | ./ffmpeg –c:v h264_qsv –i input.file –b:v 2M -preset veryfast –c:v h264_qsv out.file |
送上一条切流媒体的命令 功能不少.设置crf了.然后还设置分段为7秒.具体参数自行谷歌
1 | ./ffmpeg -c:v h264_qsv -i input.file -c:v h264_qsv -global_quality 30 -look_ahead 1 -forced-idr 1 -force_key_frames "expr:gte(t,n_forced*1)" -c:a aac -strict -2 -f hls -hls_list_size 0 -hls_time 8 -hls_flags split_by_time -f hls out.m3u8 |
最后可以把ffmpeg加到环境变量中方便使用
1 2 3 4 | vi /etc/profile PATH=$PATH:/root/Intel_FFmpeg_pluginsexport PATH |
保存退出
1 2 | # source /ect/profile 设置生效 # ffmpeg -version 查看版本 |