linux 显卡转码,ffmpeg用GPU转码

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

有些视频编码太屌,播放起来对CPU消耗巨大,而在电视上或者电视盒子上看视频,编码就需要合适,楼主用的FireTV Stick,用起KODI确实吃力,放些编码太强的视频是不行的,所以就想到了先在电脑上转码,其实转码最专业的莫过于ffmpeg,但是因为是命令行工具,一开始偷懒不想用,于是试了Handbrake,也是开源,不过也只是把ffmpeg包转一下而已,转一个105分钟的视频为mp4竟然用了一个多小时,而且楼主的电脑配置还是挺不错,i5-6600K 16G DDR4 3200MHZ GTX970 +500G ssd. 这样依然用了一个多小时,真是在逗我。主要原因还是CPU利用率太低了,于是想到既然是视频相关,为什么不能用GPU呢,毕竟论能力GPU还是比CPU强大,于是发现确实有这种东西,却是很新的技术,最后还是逃不过ffmpeg.

平台

GPU转码,自然要分是谁的GPU,包括NVDIA的NVENC,之前叫CUDA.

AMD的VEC

Intel的QSV

不过ffmpeg貌似只支持NVENC和QSV,AMD的还没有支持。博主的是GTX970便NVENC为例。

前提驱动版本要求,Linux: >=367.35,Windows: >=368.69. 还是非常新的。

ffmpeg支持,编译时不要--disable-nvenc

编译ffmpeg

ffmpeg官网是不提供编译好的windows版的,而是由zeranoe编译的,博主未试。大家可以试试。也可以用cygwin,不过楼主还是自己编译了。

毕竟是开源的东西,在windows编译比较麻烦,就在linux上cross compile,已经有人做了一键编译脚本,在github上。直接放在linux运行就行了,编译需要硬盘空间10G.

转换

编译完成后拷贝到windows,并放到自己的PATH,可以在CMD或者PowerShell运行。具体的参数嘛,可是有些麻烦,因为你先要了解视频编码的各种知识,具体看官方的手册。

mp4编码必是主流,也是好用,这是我用的参数,自行调整1ffmpeg -i input_video -c:v h264_nvenc -profile:v high -level 4.1 -preset fast -b:v 7M -pix_fmt yuv420p output.mp4

上面的参数适合1080P视频,效果颇是不错,还可以用-r限制fps,比如-r 24。-c:v h264_nvenc是用NVENC进行编码,-pix_fmt yuv420p 对第十代(GTX10xx)之前都是必须的,和颜色编码相关,因为ffmpeg默认使用yuv444p,然而这只在第十代之后支持,所以不限定就会报错。

转换105分钟视频只用了大概18分钟,相比之前的一个多小时真是太快了。

添加字幕

如果想在转换过程中添加字幕,若输出格式为mp4,可以添加-f ass(or srt) -i subtitle_file -c:s mov_text,若输出格式为mkv,可以添加-i subtitle_file -c:s copy,如果想给一个视频只加字幕(mp4),可以使用:1ffmpeg -i input_video -f ass(or srt) -i subtitle_file -c:v copy -c:a copy -c:s mov_text output.mp4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值