ffmpeg编译,支持QSV,CUDA

一、配置环境                    

    1、下载工具

     2、编译库(64位)
            a、在系统开始菜单中启动MSYS2 MSYS,在终端中执行以下升级操作:

pacman –Syu
/* 重新启动MSYS2 MSYS */
pacman -Su
pacman –S gcc
pacman –S mingw-w64-x86_64-toolchain
pacman –S mingw-w64-i686-toolchain
pacman –S base-devel
pacman –S vim
pacman –S nasm
pacman –S make


            c、修改mfx_dispatch/Makefile.am文件,把libintel_gfx_api-x86.a和libintel_gfx_api_x64.a修改为以.la为后缀;           

            b、拷贝mfx_dispatch和ffmpeg至msys2/home目录下;

            d、打开msys64位的命令行窗口,通过命令进入mfx_dispatch目录,进行以下操作:

autoreconf -i
./configure --host=x86_64-w64-mingw32 --prefix=/usr/local
make -j
make install 

             e、编译nv-codec-headers,编译之后会自动放在/usr/local下

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
sudo make install

            f、输入命令  export PKG_CONFIG_PATH=path,path是mfx和nv-codec-headers编译之后的路径

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

             g、编译ffmpeg

./configure --prefix=/usr/local/ffmpeg --arch=x86_64 --enable-shared --enable-libmfx --enable-encoder=h264_qsv --enable-decoder=h264_qsv --enable-cuda --enable-cuvid --enable-nvenc
make -j8
make install


    备注:在执行make -j8时,如果报错了,如下图,则需要在./configure命令的后面添加关联libmfx的头文件目录和库文件目录,如:--extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib。            f、通过msys64位的命令行窗口进入ffmpeg目录,进行以下操作:

    3、注意事项


a、2中的c,如果不修改,会出现编译不通过的情况;
b、编译过程中要注意32位和64位;
c、export PKG_CONFIG_PATH指定的路径一定要正确,否则在编译ffmpeg会出现libmfx not found.

d、编译ffmpeg命令中,网上很多帖子说了要加  --disable-demuxers( 注意使用硬解码的时候应该关闭多路复解),但在编译中发现,加了这条指令后,avformat_open_input无法打开音视频流(error:-1094995529),如果没加则能正常使用。

        
            

ps:上述是编译64位ffmpeg-qsv库,如果要编译32位的只需要修改编译mfx的命令和ffmpeg的命令,将64位的改为32位。(其实也可以直接打开msys 32位,来编译,这样默认就是32位,可以不用指定编译器)
libmfx编译:

autoreconf -i
./configure --host=i686-w64-mingw32 --prefix=/usr/local
make -j
make install


备注:Linux 编译时:./configure --prefix=/usr/local/ffmpegx86 --enable-shared --extra-cflags="-m32" --extra-ldflags="-m32" --extra-cxxflags="-m32"
 ffmpeg编译:


 

./configure --prefix=/usr/local/ffmpeg --arch=x86 --enable-shared --enable-libmfx --enable-encoder=h264_qsv --enable-decoder=h264_qsv
make -j8
make install

CentOS

#安装nv-codec-headers
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
 
 
cd nv-codec-headers
 
sudo make
 
sudo make install
 
 
#安装x265
wget http://ftp.videolan.org/pub/videolan/x265/x265_2.6.tar.gz
 
tar -xvf x265_2.6.tar.gz
 
cd x265_v2.6/build/linux/
 
sh ./make-Makefiles.bash
 
make
 
make install
 
#下载ffmpeg
 
 
 
#编译ffmpeg
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" 

./configure --prefix=/usr/local/ffmpeg --enable-ffplay --enable-cuda --enable-cuvid --enable-nvenc --enable-gpl  --enable-libfreetype  --enable-libx264 --enable-nonfree --extra-cflags=-I/usr/local/nvida/include --extra-ldflags=-L/usr/local/nvida/lib64
 
sudo make
 
sudo make install

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ffmpeg的硬件加速功能可以通过使用qsv(Quick Sync Video)实现。qsv是Intel提供的一种硬件加速技术,它可以利用集成在Intel处理器中的GPU来加速视频解码和编码的过程。使用qsv可以大大提高ffmpeg处理视频的效率。 要启用ffmpegqsv硬件加速功能,可以按照以下步骤进行操作: 1. 首先,确保你的Intel处理器支持Quick Sync Video技术。你可以在Intel的官方网站上查找你的处理器型号,以确定它是否支持qsv。 2. 然后,你需要编译ffmpeg时启用qsv支持。在配置ffmpeg时,添加--enable-libmfx参数来启用libmfx库,这是与qsv配套的库。编译和安装ffmpeg后,你的ffmpeg就具备了qsv硬件加速的能力。 3. 在使用ffmpeg时,你需要使用适当的命令行参数来启用qsv硬件加速。例如,你可以使用-vcodec参数指定使用qsv进行视频编码,或使用-decoder参数指定使用qsv进行视频解码。具体的命令行参数可以根据你的需求和具体的视频处理任务进行调整。 总结来说,要搭建ffmpegqsv硬件加速调试环境,你需要确保你的处理器支持qsv技术,并在编译ffmpeg时启用qsv支持。然后,在使用ffmpeg时,使用适当的命令行参数来启用qsv硬件加速。通过这样的设置,你就可以利用qsv硬件加速来提高ffmpeg的视频处理效率了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [FFmpeg硬件加速](https://blog.csdn.net/u012117034/article/details/123470108)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值