谷姐:我们都是谷歌迷
We are all Google fans

8.8元搭建一个高性价比的GPU视频转码平台-2life.top

Rate this post

吃灰的腾讯云服务器可以再利用
简述
因为我的一个课程网站的视频需要对MP4、MKV、AVI等格式的视频转码切片成TS格式,HLS格式天然适合流媒体传输,相较于MP4文件,视频经过转码切片成为m3u8、ts文件之后,用户在拖拽进度条以及观看时只会下载之后的几个小文件,最常见的切片方式是5秒一个ts文件。当一个用户打开MP4链接进行播放时会短时间下载大量后续内容(可能达到几分钟的时长甚至更高),而如果是m3u8链接则顶多会下载后续四五个ts文件,对于中长视频平台来说,hls协议是有效利用服务器带宽的方式。
正好最近618,腾讯云很多服务都有优惠活动。不考虑云厂商提供的转码服务,服务器转码对于我来说主要有两种方案:
第一种:CVM的CPU转码,这个需要消耗大量CPU算力,而众所周知各大云厂商的CPU核心价格是多么离谱,正价买根本买不起。不考虑。
第二种:GPU服务器转码+轻量服务器存储。虽然GPU服务器单价比CVM服务器贵的不止一点两点,但是正好GPU服务器有自由卡,小项目用用足够了,而且很便宜。

[腾讯云618抢购会场](https://curl.qcloud.com/8ROUqACx),服务器低至18元起,买一台赠一台。CDN流量包 6.18元100GB(0.06元/GB)。
[腾讯云老用户续费专区](https://curl.qcloud.com/bYRNmbn8),CVM续费最低3折起,轻量服务器续费最低3.5折起,轻量服务器-境外续费最低6折起。

## GPU服务器购买及驱动安装
GPU我们选择的是腾讯云的GPU计算型GN7,8C32G,内网带宽可达3Gbps,GPU为1颗NVIDIA T4,这里建议先去购买GPU自由卡,最低8.8元可得200元GPU现金卷用来抵扣GPU服务器费用(按量付费及竞价实例)

[GPU自由卡](https://curl.qcloud.com/Z7eUMIb1)
购买后请注意现金卷的有效期。
配置:
GPU计算型GN7

我们在选择腾讯云GPU实例时可以直接选择开机后安装显卡驱动。

我这里选择的是Ubuntu 20.04,驱动选择的是支持自动安装的最新版本
带宽可以选择按流量计费,毕竟我们选择的是竞价实例,用的时候再开机配置一下就行。然后将视频转码完成之后就需要将数据通过内网传输到同地域的CVM服务器/COS/轻量服务器中,下载流量也不收费,数据交换以及SSH产生的上传流量费用就几乎可以忽略不计了。
如果是通过CVM或者轻量服务器来存储数据的话,我们本机上也可以不用考虑额外的数据盘。
只要存储服务器上有足够的硬盘容量即可。
PS:购买后可以先在控制台查看一下服务器的CPU或者是流量使用情况,等GPU驱动安装完成之后再登陆进行下一步操作即可。
顺便装上cuda工具
安装完成之后查看一下版本信息
```
apt install nvidia-cuda-toolkit
nvcc --version
```

## 安装ffmpeg
想要ffmpeg能够利用显卡来加速压制编码就需要自定义安装。可以事先想好自己需要什么库然后配置好之后再编译。

先安装ffnvcodec

    mkdir ~/nvidia && cd ~/nvidia/
    git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
    cd nv-codec-headers && make install

然后下载 ffmpeg 源码
ffmpeg可以从官网下载或者从GitHub上下载

    cd ~/nvidia/

    # 官网
    git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg/

    #Github
    git clone https://github.com/FFmpeg/FFmpeg.git ffmpeg/

    #Gitee 国内源,不是最新的版本
    git clone https://gitee.com/mirrors/ffmpeg.git ffmpeg/

安装依赖

    apt install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev

配置ffmpeg 以及开启NVIDIA GPU 硬件加速功能

    cd ~/nvidia/ffmpeg/

    ./configure --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --prefix=/usr --extra-version=3ubuntu5 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared

你可以根据自己的需求进行配置,如果只需要GPU支持只需要前面几项就行,到--extra-ldflags=-L/usr/local/cuda/lib64 (含)
编译

    make -j $(nproc)

查看ffmpeg是否配置编译成功

    ls -l ffmpeg
    ./ffmpeg


## 使用NVIDIA GPU 加速
使用ffmpeg的时候只需要加上`-hwaccel cuda`这个参数即可

    ./ffmpeg -hwaccel cuda

比如将一个MKV视频文件转成X264编码的MP4文件

    ./ffmpeg -hwaccel cuda -i input.mkv -c:v h264 output.mp4 #开启GPU加速

CPU转码

cuda 加速效果

速度加快了9.6倍,相当的快了,可以极大减少视频转码的时间

FFMPEG转码相关可以看我以往的文章。这里仅仅对CPU以及GPU转码速度对比。
1、[ffmpeg一行代码给视频 添加文字水印,图片水印,定时水印](https://2demo.top/348.html)
2、[ffmpeg 多分辨率切片](https://2demo.top/335.html)
3、[ffmpeg MP4 高清视频压制参数H.264格式,文件大小只需50%](https://2demo.top/340.html)
4、[ffmpeg快速无损合并两个视频文件bash脚本](https://2demo.top/175.html)
数据存储
由于我们使用的是GPU竞价模式,有可能会被收回实例,而且我们也不需要一直开着实例,只要有需求的时候再开实例即可,配置完之后也可以对实例进行快照制作自定义镜像,这样下次我们再次创建实例的时候就不需要进行其他配置了。因此我们需要保证数据在其他服务器上或者是转码完成之后上传到COS之中。这样就能用一台CVM/轻量服务器/COS +竞价GPU实例达成一个廉价的GPU实例的效果了。
我主要使用CVM/轻量服务器 (下面称之为存储端),COS可玩性不高,无非就是转码完成之后上传到COS之中即可,不过多介绍。注意CVM/轻量服务器都需要和GPU服务器在同一地域,这样才能做到内网互通。轻量服务器需要用到内网互联,直接在轻量服务器后台点内网互联,然后再关联一下CVM的VPC即可。
安装sshfs
sshfs是linux下一款十分好用的文件系统客户端。大部分情况下不需要任何配置就可以直接将一台linux服务器的文件夹挂载至另一台服务器上。需要注意的是sshfs在数据传输的过程之中需要对数据加密解密,所以会占用部分CPU性能,存储端也不建议使用太低的配置。建议2C以上,由于硬盘读写速度的限制以及GPU转码速度的限制,2C 6133的CPU性能是足够的。

    apt install sshfs -y

挂载远程文件系统
对于要挂载的远程目录,ssh用户需要能够访问它。使用形式

    sshfs [user@]host:[remote_directory] mountpoint [options]#假设存储端的内网IP为10.0.1.3,存储端数据存放在/home/ffmpeg,要挂载到GPU服务器的/root/ffmpeg上。
    sshfs ffmpeg@10.0.1.3:/home/ffmpeg /root/ffmpeg

热议
推荐楼 chxin 昨天21:37

完全没有必要用腾讯云,直接甲骨文ARM足够了,不够的话多申请(买)几个甲骨文也够了

2楼 BGL 昨天21:30

感谢分享。

3楼 山本大意失仙人 昨天21:31

感谢分享

4楼 Unique 昨天21:32

mark帮顶

5楼 a692830 昨天21:33

感谢分享

6楼 叫我ams就好了 昨天21:36

暂时用不上,不过还是感谢分享

8楼 Faxlok 昨天21:45

最近也需要GPU,但是我刚刚算了下,你讲的GPU,我按最低价格GN7vw的0.49/h,200元免费券,也就是这200块大概也就能用17天。我感觉colab pro会更好,一个月60多rmb,虽然不是全天都能用,但是真的够便宜,而且colab是免费的

9楼 2life.top 昨天21:46

完全没有必要用腾讯云,直接甲骨文ARM足够了,不够的话多申请(买)几个甲骨文也够了 ...

ARM转码?那得等到天荒地老了,主要是甲骨文容易翻车啊。我这转码之后可以直接怼到云硬盘和COS里,我现在6台轻量挂着同一块云硬盘,静态文件分发很舒服。流量也够用

10楼 人穷器短 昨天21:50

真是真的雕麻花腾面临肿大危机

12楼 2life.top 昨天21:52

最近也需要GPU,但是我刚刚算了下,你讲的GPU,我按最低价格GN7vw的0.49/h,200元免费券,也就是这200块大 ...

colab也的确便宜,不过我这套方案也是临时用的,200块代金券我是用不完的,而且数据方面我这转码之后直接就能用了,十分舒服,colab还得占用GD空间,没办法直接给国内用户。海外客户群体搞个colab+GD目录就够了

13楼 没有的 昨天21:58

这腾讯云着实给你玩明白了

14楼 Faxlok 昨天22:00

colab也的确便宜,不过我这套方案也是临时用的,200块代金券我是用不完的,而且数据方面我这转码之后直接 ...

在理

15楼 2life.top 昨天22:13

这腾讯云着实给你玩明白了

嘻嘻,什么叫做变废为宝啊

16楼 1121744186 昨天22:21

来个ffmpeg.exe win的编译教程

17楼 chxin 昨天22:47

ARM转码?那得等到天荒地老了,主要是甲骨文容易翻车啊。我这转码之后可以直接怼到云硬盘和COS里,我 ...

4核Arm还行吧,2500k码率1080p大概0.5-0.7x速度,好在我有5台还行吧,最主要的是免费啊,你这一个月要花不少钱啊

18楼 cyberspace 昨天22:50

只能爽一个月吗,之后咋办

19楼 chxin 昨天22:53

最近也需要GPU,但是我刚刚算了下,你讲的GPU,我按最低价格GN7vw的0.49/h,200元免费券,也就是这200块大 ...

colab只能临时用用吧,长时间开着下载/上传速度就会被莫名奇妙的限制,转码速度大概8x-30x不等,前期挺快的,后期就只有k80(8-10x速度)可用,而且你开1-2小时就会给你强行断开了,之前一个月转码了1500+个共6T文件,60块钱要啥自行车

20楼 omega 昨天22:53

这么好的帖子一定要收藏,多谢楼主分享

22楼 2life.top 昨天23:01

4核Arm还行吧,2500k码率1080p大概0.5-0.7x速度,好在我有5台还行吧,最主要的是免费啊,你这一个月要花不 ...

我就是嫌弃转码速度太慢了,不然我直接上轻量分布式转码都行。

申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。

未经谷姐允许不得转载:谷姐靓号网 » 8.8元搭建一个高性价比的GPU视频转码平台-2life.top
分享到: 生成海报

热门文章

评论 抢沙发

评论前必须登录!

立即登录   注册

买Google Voice认准【谷姐靓号网】

Google Voice靓号列表Google Voice自助购买
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活