400-123-4657
行业资讯
您当前的位置: 首页 > 新闻动态 > 行业资讯

如何选择适合的硬件加速设备进行ffmpeg视频编码测试:Nvidia显卡与英特尔Quick_sync核显指南

时间:2025-03-12

测试平台:笔记本电脑i7-9750h,GTX1650,16GB内存,Win10,ffmpeg

测试文件:Input.mp4(Douyu客户端记录,AVC,10M,1080P60FPS),INPUT.ASS(DOUYU客户端记录)

以下测试需要支持硬件加速或支持Intel Quick_sync核心图形加速的NVIDIA图形卡

(建议将n张卡在笔记本电脑及以后的7系GTX745、750、750TI和GTX850M中。首次引入NVENC硬件加速编码的编码是在第一代kepler架构图形卡的第一代,几乎是GK104的GK104 CORES,是启动的范围,是范围的范围。 GTX650及以上)

(在第二代核心周期中引入了Intel Quick_sync核心图形硬件加速技术,即在i3-2xxx之后具有核心图形的U

1。视频转编码

1.1使用CPU转码

首先,让我们看看一个软编码的示例(libx264,使用CPU,选择慢速预设以确保质量)

ffmpeg -i input.mp4 -c:v libx264 -b 8M -preset slow -c:a copy output_x264.mp4

执行此操作后,CPU已满载,而转码速率为0.67倍。 CPU性能和散热速度极大地限制了转码速度。

1.2使用NVIDIA GPU处理的硬件加速反编码

以下是使用NVIDIA图形卡加速的硬件加速编码(预设慢,H264_NVENC编码器背后的视频参数从NVIDIA官方文档中复制)

(我个人推荐GTX1650SUPER或RTX3050或更高版本。在某些版本的GTX1650(TU117版本)中,NVENC编码器使用上一代的Volta Encoder而不是本应在16系列中使用的Turing Encoder

ffmpeg -vsync 0 -hwaccel cuvid -c:v h264_cuvid -i input.mp4 -c:a copy -c:v h264_nvenc -preset slow -profile high -b:v 8M -bufsize 8M -maxrate 10M -qmin 0 -g 250 -bf 2 -temporal-aq 1 -rc-lookahead 20 -i_qfactor 0.75 -b_qfactor 1.1 output-h264-nvenc-8M.mp4

目前,系统CPU使用率为9%,转码率为3.18倍。

如何同时将分辨率切换到1080p:在-i面前添加 - 分辨率1920x1080(n卡的硬件加速度特殊)

为什么要提高解决方案?当前,比利比利(Bilibili)的720p压缩策略的代码速率非常低,这会导致非常模糊的图片……为了保持图像质量,需要将纵向分辨率提高到720以上。您可以自己设置。如果水平方向大于垂直方向,则可以使用在冒险岛上常用的1366x768。上载时,将通过1080p处理。我将其直接设置为1920x1080。

1.3使用Intel Core Graphics Quick_sync硬件加速转码

ffmpeg -c:v h264_qsv -vsync 0 -i input.mp4 -c:v h264_qsv -preset slow -profile high -b:v 8M -bufsize 8M -maxrate 12M output-h264-qsv.mp4

目前,系统CPU使用率为18%,速度为3.71倍,CPU核心图形接近满载。

上述输出视频的图像质量似乎没有显着差异,但是我尚未仔细比较细节。

1.4批次NVIDIA GPU硬件加速转码

使用PowerShell的for-object将文件夹中的所有内容进行批处理转码,然后将它们输出到输出文件夹($ _指的是所传递的每个内容,而$ a是我的自定义变量来存储文件名)

按并保持轮班并右键单击需要转码的文件夹 - 在此处打开PowerShell窗口

mkdir output;dir .|foreach-object {if ($_.Extension -eq ".mp4"){$a=$_.BaseName;ffmpeg -c:v h264_cuvid -vsync 0 -i $_.Name -c:v h264_nvenc -preset slow -profile high -b:v 8M -bufsize 8M -maxrate 12M -qmin 0 -g 250 -bf 2 -temporal-aq 1 -rc-lookahead 20 -i_qfactor 0.75 -b_qfactor 1.1 output-$a-h264-nvenc-8M.mp4}}

这将在文件夹中转码所有.mp4文件

可以定制输出名称,但不要强调$ a的左侧和右侧。

如何同时将分辨率转换为1080p:在-i面前添加 - 分辨率1920x1080

1.5批量Intel Core Graphics Quick_sync硬件加速转码

在与1.4中相同的操作中,请使用Baidu设置视频输出参数(因为我也复制了它)

dir .|foreach-object {if ($_.Extension -eq ".mp4"){$a=$_.BaseName;ffmpeg -c:v h264_qsv -vsync 0 -i $_.Name -c:v h264_qsv -preset slow -profile high -b:v 8M -bufsize 8M -maxrate 12M output-$a-h264-qsv-8M.mp4}}

2。Douyu弹幕硬包装

2.1使用纯CPU

ffmpeg -i input.mp4 -vf ass=input.ass -c:v libx264 -b 8M -preset slow -c:a copy  output_pure_soft.mp4

CPU满载,速率0.653倍,总时间160秒

2.2 CPU解码,GPU(NVIDIA)编码

ffmpeg -i input.mp4 -vf 'ass=input.ass' -c:v h264_nvenc -preset slow -profile high -b:v 8M -bufsize 8M -maxrate 12M -qmin 0 -g 250 -bf 2 -temporal-aq 1 -rc-lookahead 20 -i_qfactor 0.75 -b_qfactor 1.1 output_softDecode_hwEncode.mp4

CPU使用率上升至约35%,GPU满载(解码器无负载),速率3倍,总时间35秒

2.3 GPU(NVIDIA)解码和编码(建议)

ffmpeg -c:v h264_cuvid -vsync 0 -i input.mp4 -vf 'ass=input.ass' -c:v h264_nvenc -preset slow -profile high -b:v 8M -bufsize 8M -maxrate 12M -qmin 0 -g 250 -bf 2 -temporal-aq 1 -rc-lookahead 20 -i_qfactor 0.75 -b_qfactor 1.1 output-h264-nvenc-ass.mp4

CPU使用率略有增加,图形卡已满载,速度为2.92倍,总时间也为35秒。

2.4 GPU(Intel Quick_sync)解码和编码)

ffmpeg -c:v h264_qsv -vsync 0 -i input.mp4 -vf 'ass=input.ass' -c:v h264_qsv -preset slow -profile high -b:v 8M -bufsize 8M -maxrate 12M output-h264-qsv-ass.mp4

CPU的使用率略有上升,核心图形使用率已提高到50%以上,速率为2.81倍,需要37秒

2.5批次硬包屁股弹幕(NVIDIA)

将视频和屁股字幕文件放在同一文件夹中,然后在那里打开PowerShell窗口

(如果录制的视频格式不是.mp4,则只需更改“ .mp4”位置,如果将其更改为相应的位置)

dir .|foreach-object {if ($_.Extension -eq ".mp4"){$a=$_.BaseName;ffmpeg -c:v h264_cuvid -vsync 0 -i $_.Name -vf "ass=$a.ass" -c:v h264_nvenc -preset slow -profile high -b:v 8M -bufsize 8M -maxrate 12M -qmin 0 -g 250 -bf 2 -temporal-aq 1 -rc-lookahead 20 -i_qfactor 0.75 -b_qfactor 1.1 burn-in_ass_$a.mp4}}

2.6批次硬包屁股弹幕(Intel Quick_sync)

dir .|foreach-object {if ($_.Extension -eq ".mp4"){$a=$_.BaseName;ffmpeg -c:v h264_qsv -vsync 0 -i $_.Name -vf "ass=$a.ass" -c:v h264_qsv -preset slow -profile high -b:v 8M -bufsize 8M -maxrate 12M burn-in_ass_$a.mp4}}

本文未指定许可协议。

地址:广东省广州市天河区88号   电话:400-123-4657   传真:+86-123-4567
版权所有:Copyright © 2002-2025 亿博电竞 版权所有 非商用版本      ICP备案编号:粤IP**********
亿博电竞·(中国)集团