美文网首页
树莓派使用硬件加速视频转码

树莓派使用硬件加速视频转码

作者: speculatecat | 来源:发表于2019-06-27 17:57 被阅读0次

现在随着智能设备普及以及宽带的升级,越来越的的视频素材在不断的产生。无论是我们自己拍摄的视频,还是从网上收集来的电影、电视剧,并不是全部都值得我们保存最高清的版本。打个比方,比如你下载了一个 1080P 甚至是 4K 的电影视频,看完了之后,觉得这个电影值得收藏,但又不至于非常喜欢。一个 1080P 2个小时左右的视频可能大概有 5G 左右,如果将其压缩到 720P,那么视频文件大小可能会减少一半有多(具体还视码率及多个参数影响)。而且视频质量的观感并不会降低太多。

然而,使用我们的电脑进行转码,虽然说有很多现成的软件,但是转码的时候一般会占用很多的CPU资源,导致影响我们的日常使用。另一方面,如果需要对大量视频进行转码,如一套几十集的连续剧,那么长时间开启电脑转码也会浪费不少电。

如果能用一套低功耗的系统,就能完成这一目的,那是最好不过的。但是,目前能达到这一要求的设备,其实并不多。本来 NAS 非常适合这项工作,然而,中低端的群晖的性能都非常一般,并不适合用来转码。而带转码功能的群晖,价格非常高。当然,也可以使用类似 J3455 J4105 J5005 等低功耗集成平台,组装一台 NAS,或者买一个蜗牛星际的矿渣(J900)。如果配置一套这样的系统,先不论软硬件安装配置的问题,这样一通操作下来,还不如直接用电脑来进行转码。

最近树莓派4已经开卖了,新的树莓派有千兆网卡、还有USB3.0 ,而且性能还有大幅的提高。所以现在树莓派 I/O 慢,网络传输慢的问题基本都解决了,再加上树莓派的能耗低,自然就成了转码的首选。

由于树莓派4还没发货,所以先用我手上的树莓派3B来进行测试。

树莓派使用默认的 ffmpeg 进行转码,是使用 CPU 进行转码的,效率是非常低的。我们可以通过使用源码编译的方式来安装 ffmpeg,就可以使用硬件加速转码了。在具体配置之前,先来看效果的对比。这里我使用了一段一分多种的 Sony 大法广告视频作为素材进行转码,源视频为 1080P 3000kbpps 码率的视频,然后使用树莓派3B 对其转码成 720p 2000kbpps 码率的视频,同时使用 i5 4570 进行对比。

FFMPEG default(raspberrypi 3B) convert start ...
Convert used : 0:08:26.437337 s
FFMPEG omx(raspberrypi 3B) convert start ...
Convert used : 0:02:59.920381 s
FFMPEG default(i5 4570) convert start ...
Convert used : 0:00:40.825523 s

可以看到,树莓派使用硬件加速转码可以提速接近4倍,但是,和电脑的 i5 相比,差不多慢了3倍多。然而,树莓派满载的功耗也不过10W左右,我的这个i5平台满载转码功率差不多100多W,所以,使用树莓派来完成一些不要紧的转码任务,还是有一定可行性的。

下面,介绍一下树莓派使用硬件加速进行转码的配置

# 更新软件源
sudo apt-get update
sudo apt-get install git
# 依赖安装
sudo apt-get install libomxil-bellagio-dev
# x264 安装
git clone git://git.videolan.org/x264.git
cd x264
./configure --disable-shared --enable-static --enable-strip --disable-cli
 make -j4
 sudo make install
# ffmpeg 编码安装
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
PREFIX=/usr/local
./configure --enable-gpl    --enable-version3 --enable-nonfree --enable-static --disable-shared --prefix=$PREFIX --disable-opencl --disable-thumb --disable-pic --disable-stripping --enable-small --enable-ffmpeg --enable-ffplay --enable-ffprobe --disable-doc --disable-htmlpages --disable-podpages --disable-txtpages --disable-manpages --disable-everything --enable-libx264 --enable-encoder=libx264 --enable-decoder=h264 --enable-encoder=aac --enable-decoder=aac --enable-encoder=ac3 --enable-decoder=ac3 --enable-encoder=rawvideo --enable-decoder=rawvideo --enable-encoder=mjpeg --enable-decoder=mjpeg --enable-demuxer=concat --enable-muxer=flv --enable-demuxer=flv --enable-demuxer=live_flv --enable-muxer=hls --enable-muxer=segment --enable-muxer=stream_segment --enable-muxer=mov --enable-demuxer=mov --enable-muxer=mp4 --enable-muxer=mpegts --enable-demuxer=mpegts --enable-demuxer=mpegvideo --enable-muxer=matroska --enable-demuxer=matroska --enable-muxer=wav --enable-demuxer=wav --enable-muxer=pcm* --enable-demuxer=pcm* --enable-muxer=rawvideo --enable-demuxer=rawvideo --enable-muxer=rtsp --enable-demuxer=rtsp --enable-muxer=rtsp --enable-demuxer=sdp --enable-muxer=fifo --enable-muxer=tee --enable-parser=h264 --enable-parser=aac --enable-protocol=file --enable-protocol=tcp --enable-protocol=rtmp --enable-protocol=cache --enable-protocol=pipe --enable-filter=aresample --enable-filter=allyuv --enable-filter=scale --enable-libfreetype --enable-indev=v4l2 --enable-indev=alsa --enable-omx --enable-omx-rpi --enable-encoder=h264_omx --enable-mmal --enable-hwaccel=h264_mmal --enable-decoder=h264_mmal
make -j4
sudo make install

如果没有出现异常,即可以使用硬件加速进行转码。使用方法如下:

ffmpeg -i <inputfile> -s <1280x720 {分辨率设置}> -c:v h264_omx -b:v <码率设置 如 2000k> <outputfile>

当然,目前树莓派3B 用来做转码任务,还是存在不少问题。比如,文件传输速度慢,一般上传的速度只有3~5M一秒,传输一个5G的文件要等待非常长的时间,当文件转码完成后,还需要下载回来,又需要漫长的等待。此外,虽然使用了硬件加速,转码速度有所提升,但是,经我测试,将一个两个半小时的1080P视频转成一个720P的视频,需要用到接近6个小时,同样的任务在 I5 平台上只需要 1 个小时。当然,这些问题都将会在树莓派4中得到提升。至于具体会提升多少,待买到新机器到手后再进行测试。

相关文章

  • 树莓派使用硬件加速视频转码

    现在随着智能设备普及以及宽带的升级,越来越的的视频素材在不断的产生。无论是我们自己拍摄的视频,还是从网上收集来的电...

  • 树莓派上手资料

    树莓派开箱上手教程树莓派下载资料使用手机连接树莓派1使用手机连接树莓派2树莓派实验室无显示屏启动树莓派 如何用pu...

  • 使用GPU硬件加速FFmpeg视频转码

    本文内容包括: 在Linux环境下安装FFmpeg 通过命令行实现视频格式识别和转码 有Nvidia显卡的情况下,...

  • 树莓派技术网站导航

    树莓派官网 安装 树莓派Mac OS X下安装系统开启ssh登陆 使用教程 树莓派实验室树莓派吧树莓派中文站 项目...

  • 树莓派串口配置及minicom的安装

    1.树莓派串口配置:树莓派串口默认用于终端调试,如需使用串口,则需要修改树莓派设置。执行如下命令进入树莓派配置:s...

  • 树莓派系统烧录和环境配置

    最近开始学习树莓派wiringPi库的使用,首先就是树莓派的系统烧录和环境配置~ 树莓派简介 Raspberry ...

  • 树莓派资源整理汇总(2018年10月14日更新)

    本文收集了树莓派使用过程中经常需要用到的资源,主要包括树莓派系统镜像、树莓派硬件介绍、树莓派GPIO引脚编号、树莓...

  • 树莓派资源整理

    本文收集了树莓派使用过程中经常需要用到的资源,主要包括树莓派系统镜像、树莓派硬件介绍、树莓派GPIO引脚编号、树莓...

  • 树莓派资源整理汇总(2020年2月18日更新)

    本文收集了树莓派使用过程中经常需要用到的资源,主要包括树莓派系统镜像、树莓派硬件介绍、树莓派GPIO引脚编号、树莓...

  • 树莓派Docker上安装Mysql

    树莓派Docker上安装Mysql 在树莓派上官方mysql镜像无法使用,因为树莓派的架构为arm这里使用的映像是...

网友评论

      本文标题:树莓派使用硬件加速视频转码

      本文链接:https://www.haomeiwen.com/subject/thfdcctx.html