ffmpeg 随笔

作者: zidea | 来源:发表于2020-08-09 20:56 被阅读0次

ffmpeg 的名称来自 MPEG 音视频标准,前面 ff 为 fast forward 用来记录、转换数字音频、视频。并能将其转换为流的计算机应用程序。

现在大部分主流的视频网站都是基于 ffmpeg 进行开发的。ffmpeg 可以用于开发视频播放器、录屏器以及直播,ffmpeg 可以满足大部分对音视频的需求。

我们需要理解一些基本概念,理解好这些基本概念有助于我们更好运用

  • 容器(container/file)
  • 流媒体(stream)
  • 数据帧/数据包(frame/packet)
  • 编解码器(codec)
  • 复用(mux)
  • 解复用(demux)

先介绍几种常见的视频音频编码格式

音频视频编码器

  • MP4
    • H264 视频编码
    • ACC 音频编码
  • WebM 封装
    • VP8 视频编码
    • Vorbis 音频编码
  • OGG 封装
    • Theora 视频编码
    • Vorbis 音频编码
ffmpeg -i ml_003.mov -acodec libmp3lame -ar 44100 -ab 320k -ac 2 output.mp3
  • acodec a 是 audio 的缩写,acodec 是用来指定音频编码器

  • ar 用来指定音频采样率 (a)

  • ab 指定音频的比特率 (rate)

  • ac 指定输出通道数 c(channel)

  • preset

    • ultrafast
    • superfast
    • veryfast
    • faster
    • fast
    • medium
    • slow
    • slower
    • veryslow
    • placebo
  • s 修改视频尺寸

  • pix_fmt 视频格式

  • vcodec libx264: 需要查表进行选择

  • present medium

  • profile:v high

  • level:v 4.1

  • crf 23: Constant Rate Factor 恒定速率因子模式,数值越小质量越高数值越大质量越大

  • acodec aac

  • ar 44100

  • ac 2: 音频通道数

  • b:a 128k

所谓码率控制就是决定为每一帧画面分配多少比特数。一共支持 3 种码率控制

  • qp(Constant Quantizer) 恒定量化器模式: 所谓量化器就是利用特殊算法将画质转化数值,让后就可以通过控制这些数值来控制画质,并不推荐我们去手动设置画质,0 表示无损画质
ffmpeg -i input -vcodec libx264 -preset ultrafast -qp 0 output.mkv
ffmpeg -i input -vcodec libx264 -preset veryslow -qp 0 output.mkv
  • crf (Constant Rate Factor) 恒定速率因子模式: 就是一个浮动的 qp 模式,按照特定标准,根据人肉眼的特点给予每一帧画面不同量化参数,某一些画面高一点或者低一点,只要人无法区分即可。
  • b (bitrate) 固定目标码率模式,这种模式下视频码率和文件体积都是确定的。适

相关文章

网友评论

    本文标题:ffmpeg 随笔

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