ubuntu使用FFmpeg做音频、视频转码和转换操作

  1. 安装ffmpegsudo apt-get install ffmpeg

ffmpeg官网: https://www.ostechnix.com/install-ffmpeg-linux/

  1. ffmpeg命令的典型语句:
ffmpeg [全局选项] {[输入文件选项] -i 输入_url_地址} ...
 {[输出文件选项] 输出_url_地址} ...
  1. 常用命令

    1. 获取音频、视频文件信息

      ffmpeg -i video.mp4ffmpeg -i video.mp4 -hide_banner

    2. 转换视频格式

      ffmpeg -i video.mp4 video.avi

      如果你想维持你的源视频文件的质量,使用 -qscale 0 参数:

      ffmpeg -i input.webm -qscale 0 output.mp4

      检查 FFmpeg 的支持格式的列表,运行:

      ffmpeg -formats

    3. 将视频转成音频

      ffmpeg -i input.mp4 -vn output.mp3

      对输出文件使用各种各样的音频转换编码选项,如:

      ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 output.mp3

      说明

      -vn 表面我们已经在输出文件中禁止视频录制

      -ar 设置输出文件的音频频率 通常是22050HZ 44100HZ 48000HZ

      -ac 设置音频通道的数目

      -ab 表明音频比特率

      -f 输出文件格式

    4. 更改视频文件的分辨率

      设置视频的分辨率为1280*720

      ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4

      ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4

    5. 压缩视频文件

      ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4

      减小视频文件的大小,视频质量会损失。如 24 太有侵略性,可以降低 -crf 值到或更低值。

      你也可以通过下面的选项来转换编码音频降低比特率,使其有立体声感,从而减小大小。

      -ac 2 -c:a aac -strict -2 -b:a 128k

    6. 压缩音频文件,如: 将文件压缩为128kbpsffmpeg -i input.mp3 -ab 128 output.mp3

      音频的比特率列表有:

      • 96kbps
      • 112kbps
      • 128kbps
      • 160kbps
      • 192kbps
      • 256kbps
      • 320kbps
    7. 去掉视频中的声音

      ffmpeg -i input.mp4 -an output.mp4

      -an表示没有音频录制

    8. 获取视频文件中的音频,命令转换所给定媒体文件为音频文件

    ffmpeg -i input.mp4 -vn output.mp3

    或 使用-ab指定输出文件的比特率

    ffmpeg -i input.mp4 -vn -ab 320 output.mp3

    1. 从视频中提前图像,从一个视频文件中创建一个相册.

      ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.png

      说明:

      -r 设置帧速度。即,每秒提取帧到图像的数字。默认值是 25。

      -f 表示输出格式,即,在我们的实例中是图像。

      image-%2d.png 表明我们如何想命名提取的图像。在这个实例中,命名应该像这样image-01.png、image-02.png、image-03.png 等等开始。如果你使用 %3d,那么图像的命名像 image-001.png、image-002.png 等等开始。

    2. 裁剪视频

      ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4

      说明:

      input.mp4 源视频文件。

      filter:v 表示视频过滤器。

      crop 表示裁剪过滤器。

      w 我们想自源视频中裁剪的矩形的宽度。

      h 矩形的高度。

      x 我们想自源视频中裁剪的矩形的 x 坐标 。

      y 矩形的 y 坐标。

      比如说你想要一个来自视频的位置 (200,150),且具有 640 像素宽度和 480 像素高度的视频,命令应该是:

      ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4

    3. 转换一个视频的具体部分

      有时,你可能想仅转换视频文件的一个具体的部分到不同的格式。以示例说明,下面的命令将转换所给定视频input.mp4 文件的开始 10 秒到视频 .avi 格式。

      ffmpeg -i input.mp4 -t 10 output.avi

      在这里,我们以秒具体说明时间。此外,以 hh.mm.ss 格式具体说明时间也是可以的。

    4. 设置视频的屏幕高宽比

      ffmpeg -i input.mp4 -aspect 16:9 output.mp4

      通常使用的高宽比:

      • 16:9
      • 4:3
      • 16:10
      • 5:4
      • 2:21:1
      • 2:35:1
      • 2:39:1
    5. 根据开始和结束时间裁剪一段视频文件

      ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 50 output.mp4

      -s 表示视频剪辑的开始时间。在我们的示例中,开始时间是第 50 秒。

      -t 表示总的持续时间。

      ffmpeg -i audio.mp3 -ss 00:01:54 -to 00:06:53 -c copy output.mp3

原文来自: https://zhuanlan.zhihu.com/p/67878761

posted @ 2020-07-01 15:21  小小奛人  阅读(2356)  评论(0编辑  收藏  举报