介绍

FFmpeg是一款跨平台的开源音视频处理工具,支持对视频和音频进行编码解码转换剪切合并添加水印等多种操作。它是一个命令行工具,可以在Linux、Windows和Mac等操作系统上使用。

FFmpeg由法国程序员Fabrice Bellard创建,它最初是一个简单的MPEG视频解码器。随着时间的推移,FFmpeg得到了越来越多的贡献者和开发者的加入,它逐渐成长为一个功能强大的音视频处理工具。

FFmpeg支持多种音视频格式,包括常见的MP4、AVI、FLV、MOV、MP3、AAC等格式。它使用libavcodec库进行音视频编解码,使用libavformat库进行音视频封装和解封装,使用libavfilter库进行音视频过滤和处理。

FFmpeg有着非常广泛的应用领域。它可以用于视频编辑视频转码视频剪辑视频处理视频流媒体等领域。许多流行的媒体播放器和视频编辑软件都使用了FFmpeg的编解码器和库。

安装

# 安装
brew install ffmpeg
# 查看版本
ffmpeg -version
# 更新
brew upgrade ffmpeg

常见用法

视频剪切

ffmpeg -i ./in.mp4 -vcodec copy -acodec copy -ss 00:00:20 -to 00:05:30 ./out.mp4

设置视频大小

ffmpeg -i ./sea.mp4 -fs 19M output.mp4

删除视频中的音频

ffmpeg -i in.mp4 -map 0:0 -vcodec copy -acodec copy out.mp4

设置分辨率

ffmpeg -i video_1920.mp4 -vf scale=640:360 video_640.mp4 -hide_banner

设置视频的宽高比

ffmpeg -i video_320x180.mp4 -vf scale=320:240,setdar=4:3 video_320x240.mp4 -hide_banner

视频倒放,无音频

ffmpeg -i in.mp4 -filter_complex [0:v]reverse[v] -map [v] -preset superfast out.mp4

视频倒放,音频不变

ffmpeg -i in.mp4 -vf reverse out.mp4

音频倒放,视频不变

ffmpeg -i in.mp4 -map 0 -c:v copy -af "areverse" out.mp4

音视频同时倒放

ffmpeg -i in.mp4 -vf reverse -af areverse -preset superfast out.mp4

抽取音频

ffmpeg -i 3.mp4 -vn -y -acodec copy 3.aac
ffmpeg -i 3.mp4 -vn -y -acodec copy 3.m4a

提取视频或者叫做删除音频

ffmpeg -i Life.of.Pi.has.subtitles.mkv -vcodec copy -an videoNoAudioSubtitle.mp4
ffmpeg -i output.mp4 -c:v copy -an input-no-audio.mp4

为无声的视频添加音频

ffmpeg -i ../out/4in1.mp4 -i ./3.aac -vcodec copy -acodec copy output.mp4

合并多个视频

ffmpeg -i "concat:input1.mp4|input2.mp4" -c copy output.mp4

镜像视频

# 水平镜像
ffmpeg -i input.mp4 -vf "hflip" output.mp4
# 垂直镜像
ffmpeg -i input.mp4 -vf "vflip" output.mp4
# 同时水平和垂直
ffmpeg -i input.mp4 -vf "hflip,vflip" output.mp4

滤镜

  • 调节亮度:使用brightness滤镜,值越大亮度越高,反之亮度越低。

      ffmpeg -i input.mp4 -vf "brightness=0.2" output.mp4
    
  • 调节对比度:使用contrast滤镜,值越大对比度越高,反之对比度越低。

      ffmpeg -i input.mp4 -vf "contrast=1.5" output.mp4
    
  • 调节锐化:使用unsharp滤镜,值越大锐化效果越明显。

      ffmpeg -i input.mp4 -vf "unsharp=5:5:-0.5:5:5:-0.5" output.mp4
    
  • 调节高光:使用highpass滤镜,值越大高光越明显。

      ffmpeg -i input.mp4 -vf "highpass=f=10" output.mp4
    
  • 调节色温:使用colorbalance滤镜,值越大色温越暖,反之色温越冷。

      ffmpeg -i input.mp4 -vf "colorbalance=rs=0.5:gs=0.5:bs=0.8" output.mp4
    
  • 饱和度(saturation): 使用eq=saturation进行调节,值范围为-100到100,0为默认值。

      ffmpeg -i input.mp4 -vf eq=saturation=1.5 output.mp4
    
  • 色调(hue): 使用hue进行调节,值范围为-180到180,0为默认值。

      ffmpeg -i input.mp4 -vf hue=h=30 output.mp4
    
  • 色相(tone): 使用colorbalance进行调节,值范围为0到1,0为默认值。

      ffmpeg -i input.mp4 -vf colorbalance=hs=-0.5 output.mp4
    
  • 去噪(denoise): 使用nlmeansbm3d进行调节,值范围为0到100,0为默认值。

      ffmpeg -i input.mp4 -vf "noise=alls=100:allf=t,eq=brightness=-0.1:contrast=1.1,hqdn3d=5:5:5:5" output.mp4
    
  • 模糊(blur): 使用boxblurgblur进行调节,值范围为1到100,1为默认值。

      ffmpeg -i input.mp4 -vf "boxblur=10:1" output.mp4
    

多个滤镜可以组合使用,用逗号分隔,例如:

ffmpeg -i input.mp4 -vf "brightness=0.2,contrast=1.5,unsharp=5:5:-0.5:5:5:-0.5" output.mp4

高级用法

使用ffmpeg修改视频,如果有多条命令,请将输入的input.mp4和输出的output.mp4名称连贯起来,方便我直接复制粘贴,具体需要的操作如下:

  1. 删除视频第6-12秒
  2. 镜像视频
  3. 替换背景音乐为Advertime.mp3
  4. 调节亮度0.1,对比度1.2,锐化设置5:5:2

ffmpeg

ffmpeg -i input.mp4 -ss 0.5 -to $(ffprobe -i input.mp4 -show_entries format=duration -v quiet -of csv="p=0")-0.5 -vf "hflip,boxblur=2,eq=brightness=0.1:contrast=2,unsharp=5:5:2" -an output.mp4
Copyright © d4m1ts 2023 all right reserved,powered by Gitbook该文章修订时间: 2023-04-18 10:08:40

results matching ""

    No results matching ""