Serverless 实现视频压缩与格式转换

在 Serverless 架构的应用案例中,有这样一个非常实在的应用:视频的处理。

腾讯云的函数计算平台对这个领域的描述:

视频应用、社交应用等场景下,用户上传的图片、音视频的总量大、频率高,对处理系统的实时性和并发能力都有较高的要求。例如:对于用户上传的视频短片,我们可以使用多个云函数对其分别处理,对应不同的清晰度(1080p、720p等),以满足不同场景下用户的需求,适应移动网络带宽较小且不稳定的特性。

在阿里云的函数计算也有相关的描述:

所以可以看到视频的压缩/转码等操作,在Serverless架构下确实是一个很好的典型"应用"。那么有了这样的一个"典型"应用,我们应该如何实现它呢?

准备开始ffmpeg

在百科上可以看到这样的描述:

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。 FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。这个项目最早由Fabrice Bellard发起,2004年至2015年间由Michael Niedermayer主要负责维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward"。

而在实际生产生活中,ffmpeg确实也是一个非常好的工具,我们可以通过这个工具来进行图像的压缩/转码等操作。

通过ffmpeg的官网,我们可以看到不同的操作系统,有着不同的文件供我们选择:

也就是说,我们如果要在云函数中使用这个模块,那么我们就要有这样一个模块是在云函数所在的环境下可以运行起来的,根据云函数的文档可以看到:

也就是说,我们要有一个在CentOS操作系统下可以使用的ffmpeg,接下来,我们就准备这个文件:

  1. 在CentOS操作系统上,下载源码包:wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gz
  2. 解压并进入目录:tar -zxvf ffmpeg-3.1.tar.gz && cd ffmpeg-3.1
  3. 编译安装: ./configure && make && make install

在进行./configure操作的时候,可能出现yasm/nasm not found or too old. Use --disable-yasm for a crippledbuild错误。

yasm是汇编编译器,ffmpeg为了提高效率使用了汇编指令,如MMX和SSE等。所以系统中未安装yasm时,就会报错误,此时可以安装yasm编译器来解决:

  1. 下载wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
  2. 解压并进入目录:tar zxvf yasm-1.3.0.tar.gz && cd yasm-1.3.0
  3. 编译安装:./configure && make &&am
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值