『Node.js』FFmpeg与Node.js (1) 初识FFmpeg与视频知识

前言

产品中有canvas制作的动画。需要把这个动画绘制一个视频的需求。
经过调研,决定使用FFmpeg来生成视频。

FFmpeg是什么?

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源程序。

其中的Tools

  • ffmpeg:该项⽬提供的⼀个⼯具,可⽤于格式转换、解码或电视卡 即时编码等;
  • ffsever:⼀个 HTTP 多媒体即时⼴播串流服务器;
  • ffplay:是⼀个简单的播放器,使⽤ffmpeg 库解析和解码,通过 SDL显示;
  • ffprobe: 简单的多媒体码流分析器;

视频知识

为了选择正确的视频格式,还需要了解一些视频知识。

  • 常见封装格式
  • 常见编码格式
  • 码率

常见封装格式

封装格式就是视频文件的后缀,常见如下:

  • AVI 微软推出的视频封格式,比较旧而且占有空间大。
  • WMV 微软新推出的视频格式,缺点兼容差。
  • MOV 苹果推出的视频封装格式,优秀。
  • MP4 动态图像专家组(MPEG)推出的视频封装格式,跨平台兼容性好,是视频封装格式的首选

常见编码格式

视频编码可以分为帧内压缩和帧间压缩

  • 帧内压缩是对每一帧进行压缩,适合编辑时使用

    • ProRes 苹果开发的有损影片压缩技术
    • DNxHD Avid
    • GoPro Cineform
  • 帧间压缩是通过对多帧画面比较来进行压缩,文件大小较小,适合输出。

    • H.264(MPEG4)网络传播最佳
    • H.265(HEVC)未普及
    • VP9谷歌研发,与H.265争夺下一代视频编码之王

码率

8bits等于1byte,即1Mbps等于0.125MB/s。码率就是1秒内包含的视频信息,码率决定了视频的大小,也决定了视频的质量。

未完待续!

你可能感兴趣的:(node.js,ffmpeg)