FFmpeg使用显卡进行转码硬件加速的记录,以及和软压的比较

1. 环境

操作系统:Windows 10
FFmpeg版本:20171204
显卡:GTX 965M

2. 过程

最近是有比较多的压制需求,使用libx265软压的速度实在是慢的受不了,所以还是希望能用显卡硬压起码速度快一点。之前有人跟我提过硬压质量似乎不及软压,但是决定还是试一试。在ffmpeg官网找到硬压的相关信息
由于我用的是windows,所以驱动基本没有特别配置。而且windows版的ffmpeg也是参数配置好的,所以这方面没有考虑太多。linux平台可能需要配置一下参数啥的。
压制分为两步,先是对视频解码再编码。ffmpeg在两步都提供了硬件加速方案。
在官网给出的例子是基于h264的,h265的硬件参数啥的可以用:

ffmpeg -codecs | sls cuvid (备注:sls是powershell的命令,类似于linux下的grep命令)

可以看到这条:

DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_qsv hevc_cuvid ) (encoders: libx265 nvenc_hevc hevc_nvenc hevc_qsv )

解码器提供了hevc, hevc_qsv, hevc_cuvid; 编码器提供了libx265, nvenc_hevc, hevc_nvenc, hevc_qsv,但是这个nvenc_hevc其实已经作废了,你用它的话他会提示你自动给你转到hevc_nvenc
解码器的这三个用法我是不太懂有啥区别,也没去做太多研究,因为在实践中使用硬解的话是没办法同时硬压字幕的,会报错,况且硬解对于整体压制速度并没有太大提升,所以就抛弃硬解了。
编码器的部分,libx265就是软压,hevc_qsv似乎是英特尔的集显硬压,具体看这里。那么留给n卡的只有hevc_nvenc可以用了。
使用这条命令来查看该方法的参数:

ffmpeg -h encoder=hevc_nvenc

可以得到可用参数,我们这里探究的是-cq参数,给出的描述是:

-cq <float> E..V.... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)

我感兴趣的原因是它和libx265,也就是软压的-crf参数很类似。所以接下来都是在其他参数不考虑的情况下对不同cq的对比。

3. 不同cq值的对比

我用的是谍影重重5的预告片压制测试,原视频数据如下:

Format                      : MPEG-4
Format profile              : QuickTime
Codec ID                    : qt   2005.03 (qt  )
File size                   : 35.6 MiB
Duration                    : 30 s 30 ms
Overall bit rate            : 9 938 kb/s
Encoded date                : UTC 2016-02-08 06:40:30
Tagged date                 : UTC 2016-02-08 06:40:30
Writing library             : Apple QuickTime 7.7.3

在使用命令
ffmpeg -i original.mov -c:v hevc_nvenc -cq X cqx.mp4
进行测试后。结果如下:
Libx265 (软压)

Format                      : MPEG-4
Format profile              : Base Media
Codec ID                    : isom (isom/iso2/mp41)
File size                   : 5.53 MiB
Duration                    : 30 s 70 ms
Overall bit rate            : 1 544 kb/s
Writing application         : Lavf58.2.103

-cq 0(默认)

Format                      : MPEG-4
Format profile              : Base Media
Codec ID                    : isom (isom/iso2/mp41)
File size                   : 8.21 MiB
Duration                    : 30 s 70 ms
Overall bit rate            : 2 290 kb/s
Writing application         : Lavf58.2.103

-cq 1

Format                      : MPEG-4
Format profile              : Base Media
Codec ID                    : isom (isom/iso2/mp41)
File size                   : 8.21 MiB
Duration                    : 30 s 70 ms
Overall bit rate            : 2 290 kb/s
Writing application         : Lavf58.2.103

-cq 10

Format                      : MPEG-4
Format profile              : Base Media
Codec ID                    : isom (isom/iso2/mp41)
File size                   : 8.21 MiB
Duration                    : 30 s 70 ms
Overall bit rate            : 2 290 kb/s
Writing application         : Lavf58.2.103

-cq 20

Format                      : MPEG-4
Format profile              : Base Media
Codec ID                    : isom (isom/iso2/mp41)
File size                   : 8.21 MiB
Duration                    : 30 s 70 ms
Overall bit rate            : 2 290 kb/s
Writing application         : Lavf58.2.103

-cq 30

Format                      : MPEG-4
Format profile              : Base Media
Codec ID                    : isom (isom/iso2/mp41)
File size                   : 8.20 MiB
Duration                    : 30 s 70 ms
Overall bit rate            : 2 286 kb/s
Writing application         : Lavf58.2.103

-cq 35

Format                      : MPEG-4
Format profile              : Base Media
Codec ID                    : isom (isom/iso2/mp41)
File size                   : 5.52 MiB
Duration                    : 30 s 70 ms
Overall bit rate            : 1 539 kb/s
Writing application         : Lavf58.2.103

-cq 38

Format                      : MPEG-4
Format profile              : Base Media
Codec ID                    : isom (isom/iso2/mp41)
File size                   : 4.06 MiB
Duration                    : 30 s 70 ms
Overall bit rate            : 1 132 kb/s
Writing application         : Lavf58.2.103

-cq 41

Format                      : MPEG-4
Format profile              : Base Media
Codec ID                    : isom (isom/iso2/mp41)
File size                   : 3.06 MiB
Duration                    : 30 s 70 ms
Overall bit rate            : 855 kb/s
Writing application         : Lavf58.2.103

-cq 51

Format                      : MPEG-4
Format profile              : Base Media
Codec ID                    : isom (isom/iso2/mp41)
File size                   : 1.41 MiB
Duration                    : 30 s 70 ms
Overall bit rate            : 392 kb/s
Writing application         : Lavf58.2.103

对比视频在这里

4. 结论

可以看到cq在1到30的变化并不大,在41以上画面基本上是没办法看了。在和libx265的默认软压对比后,-cq值落在35到40之间是比较好的选择。
在后续的实际应用中,我在压制画面动作较少的视频,如交响乐视频的情况下,-cq 37是一个对于我来说比较好的选择。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342