编译ffmpeg with gpu

本文记录了在Windows 10环境下,使用mingw编译ffmpeg并结合GPU(CUDA)进行视频转码的步骤,旨在提升转码速率。过程中参考了相关教程,并强调了配置中需要注意的三个关键点:复制video_sdk头文件、添加配置参数(--enable-nvenc --enable-nonfree)以及正确设置额外的cflags和ldflags路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译环境: 系统:window10

     工具:mingw


最近在做视频流转码的工作, 想提高转码速率, 想把gpu利用进来

本来打算用cuda video sdk 来做,发现只能视频部分的,不能做音频,

所以直接用ffmpeg来转码, 用gpu来加速,之前没做过出了一些问题,把过程记录一下。


-----------------------------------------------------------------------------------------------------------------------------

参考下边两个人的教程:

windows上的ffmpeg可以参考:http://blog.chinaunix.net/uid-20718335-id-2980793.html

Gpu部分主要参考了:http://www.cnx-software.com/2016/01/04/faster-h-265hevc-video-encoding-with-nvidia-gtx960-gpu-and-ffmpeg/


-------------------------------------------------------------------------------------------------------------------------------

具体过程: 以后补充

需要注意的三个部分:


1. 将video_sdk 的头文件拷贝到对应的msys目录下 

### 配置 FFmpeg 使用 GPU 加速 #### 准备工作 确保系统满足基本需求,包括操作系统为 Windows 10 和拥有 NVIDIA GeForce GTX 或更高系列显卡。安装最新的 CUDA SDK 及其配套的驱动程序对于实现 GPU 加速至关重要[^4]。 #### 下载预编译二进制文件 访问 Gyan Dev 提供的 FFmpeg 构建页面获取已集成 NVENC 支持的 FFmpeg 版本。该网站提供多种不同配置选项,默认构建通常已经包含了必要的硬件编码器支持[^2]。 #### 设置环境变量 解压缩下载好的 FFmpeg 文件包至指定目录,并将 `bin` 子目录路径添加到系统的 PATH 环境变量中以便命令行全局调用 FFmpeg 工具集[^3]。 #### 测试 GPU 编码功能 打开命令提示符窗口并输入如下指令来验证是否成功启用了 GPU 加速: ```bash ffmpeg -hide_banner -hwaccels ``` 如果一切正常,则应看到列表里含有 `cuda`, 表明当前安装能够利用 NVIDIA 的 GPU 来执行任务[^1]。 #### 应用实例:视频转码加水印 下面给出一段 Python 脚本来展示如何使用带有 GPU 加速特性的 FFmpeg 对视频进行高效处理的同时添加静态图片作为水印: ```python import os input_video = "input.mp4" output_video = "output_with_watermark.mp4" watermark_image = "logo.png" command = f'ffmpeg -i {input_video} -vf "movie={watermark_image}[wm];[in][wm] overlay=main_w-overlay_w-10:main_h-overlay_h-10" -c:v h264_nvenc -preset fast -b:v 5M {output_video}' os.system(command) ``` 这段脚本会读取名为 `input.mp4` 的源视频,在右下角位置叠加一张称为 `logo.png` 的图像作为水印,最后输出经过重新编码后的高质量 MP4 文件 `output_with_watermark.mp4`。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值