Skip to main content

FFMPEG

命令别名

alias ffmpeg="ffmpeg -hide_banner -loglevel info"
alias ffprobe="ffprobe -hide_banner -loglevel quiet"
alias ffplay="ffplay -hide_banner -loglevel info"

FFMPEG

提取音频

ffmpeg -i /path/of/input -vn -b:a 320k -ar 48k -q:a 0 -c:a copy /path/of/output
ffmpeg -i /path/of/input -vn -b:a 320k -ar 48k /path/of/output
ffmpeg -i /path/of/input -vn -b:a -q:a 0 /path/of/output
参数说明

-vn: no video
-c:a xxx: codec of audio,音频编码/格式,-c:a copy 是指不涉及音频的编解码,速度会很快
-q:a x: 质量,分布范围为 0~6,其中 0 表示高质量音频,6表示低质量音频
-b:a xxx: 音频的码率,-b:a 320k 是指定音频码率为 320kb/s
-ar xxx: 音频的采样频率,-ar 48k 是指定音频的采样频率为 48kHz
建议 -q:a-b:a, -ar 不同时使用。指定 -c:a copy 会忽略 -q:a, -b:a, -ar

音频音量调整

# 音量调整为当前音量的 0.5 倍
ffmpeg -i /path/of/input -filter:a "volume=0.5" -b:a 320k -ar 48k /path/of/output
# 音量调整为当前音量的 1.5 倍
ffmpeg -i /path/of/input -filter:a "volume=1.5" -b:a 320k -ar 48k /path/of/output
# 使用 decibel 来调节音量,调高 10dB
ffmpeg -i /path/of/input -filter:a "volume=10dB" -b:a 320k -ar 48k /path/of/output
# 使用 decibel 来调节音量, 调低 5dB
ffmpeg -i /path/of/input -filter:a "volume=-5dB" -b:a 320k -ar 48k /path/of/output
参数说明

-filter:a xxx: 音频过滤器,"volume=xxx" 是指定音量调整 其他参数见 提取音频

提取视频

ffmpeg -i /path/of/input -an -c:v copy /path/of/output
参数说明

-an: no audio -c:v xxx: codec of video,视频编码/格式,-c:v copy 指不涉及视频的编解码,速度会很快

分割音视频

ffmpeg -ss 01:42:35 -t 00:02:39 -i /path/of/input -vn -c:a copy /path/of/output
ffmpeg -ss 01:42:35 -t 00:02:39 -i /path/of/input -an -c:v copy /path/of/output
参数说明

-ss: 开始时间
-t: 截取时长
-vn: no video
-an: no audio
-c:a xxx: codec of audio,音频编码/格式,-c:a copy 指不涉及音频的编解码,速度会很快
-c:v xxx: codec of video,视频编码/格式,-c:v copy 指不涉及视频的编解码,速度会很快

音频 & 视频合并

ffmpeg -i /path/of/input/video -i /path/of/input/audio -c:v copy -c:a copy /path/of/output

音频元数据

ffmpeg -vn -i /path/of/input -map 0:a -c:a aac -metadata artist="artist" -metadata title="title" -metadata album="album" /path/of/output
参数说明

-map 0:a: 仅保留音频(不含专辑封面等数据)
不建议指定音频质量参数,对音质提升有限

提取视频帧

ffmpeg -i 001.mov -r 60 -qscale:v 2 ./image/0_%05d.jpg
参数说明

-r: 帧率
-qscale:v: 图片质量

音频 & 视频拼接

ffmpeg -f concat -safe 0 -i /path/of/concat.txt -c:v copy -c:a copy /path/of/output
  • concat.txt
file /path/of/file0
file /path/of/file1
file /path/of/file2

FFPROBE

查看文件信息

ffprobe -i /path/of/input
ffprobe -i /path/of/input -show_streams -pretty -print_format flat -select_streams a:0

FFPLAY

播放文件

ffplay -i /path/of/input