ffmpeg

[toc]

ffmpeg下载与配置

ffmpeg官网

image-20230722105015769

image-20230722105037916

image-20230722105115515

将下载下来的ffmpeg解压并且重命名为ffmpeg

image-20230722105352399

我习惯将该文件夹迁移到C:\Program Files文件夹内,然后在环境变量里写入C:\Program Files\ffmpeg\bin

image-20230722105603885

然后在cmd输入下面指令就能看到详细信息

1
ffmpeg -version

image-20230722110016567

ffmpeg简介

ffmpeg/ffplay/ffprobe区别

ffmpeg: Hyper fast Audio and Video encoder 超快音视频编码器(类似爱剪辑)

ffplay: Simple media player 简单媒体播放器

ffprobe: Simple multimedia streams analyzer 简单多媒体流分析器

帮助命令

1
ffmpeg -h

image-20230722110633308

播放视频

1
ffplay "视频名字.规格"

查看视频详细参数

1
ffprobe "视频名字.规格"

转码(转换格式、编码)

转格式

tsmp4

1
ffmpeg -i "input.ts" output.mp4

其他的也这样

转编码

查看编码器

1
ffmpeg -codecs

image-20230722123100557

MP4封装:H264视频编码+AAC音频编码

WebM封装:VP8视频编码+Vorbis音频编码

OGG封装:Theora视频编码+Vorbis音频编码

flac转mp3

由于我的监听耳机线烧了,我只能用蓝牙耳机(HUAWEI FreeBuds pro 2)听,细节还是在的,但是我没办法很准确说出来,得更加准确的监听耳机和音乐播放软件才能更好进行对比

1
ffmpeg -i "米津玄师 - Lemon.flac" "米津玄师 - Lemon.mp3"

也可以使用下面参数,不用默认也可:

采样率:-ar 44100

指定音频比特率:-ab 320k

指定声道数:-ac 2

1
2
3
4
5
6
7
8
9
Audio options:
-aframes number set the number of audio frames to output #设置输出音频帧数
-aq quality set audio quality (codec-specific) #设置音频质量
-ar rate set audio sampling rate (in Hz) #设置音频采样率(Hz)
-ac channels set number of audio channels #设置声道数,1为单声道,2为立体声
-an disable audio #取消音频输出
-acodec codec force audio codec ('copy' to copy stream) #指定音频编解码器(“复制”到复制流)
-vol volume change audio volume (256=normal) #设置录制音量大小
-af filter_graph set audio filters #设置音频滤镜

4K转1080P

懒得写了,没有4K的AV。。。

合并提取

视频去掉音频

1
ffmpeg -i "input.mp4" -vcodec copy -an output.mp4

保持原本编码格式:copy

静音:-an

视频中截取音频

1
ffmpeg -i "input.mp4" -vn -acodec copy output.m4a

剔除视频:-vn

保持原本编码格式:copy

提取的音频和提取的视频合并

1
ffmpeg -i output.m4a -i output.mp4 -c copy out.mp4

mp4提取mp3

1
ffmpeg -i "input.mp4" -q:a 0 -map a "input.mp3"

音频截取

截取1分到1分10秒这段音频

1
ffmpeg -i "input.mp3" -ss 00:01:00 -t 10 -acodec copy output.mp3

保持原本编码格式:copy

画面截取

截取视频画面第5秒的画面

1
ffmpeg -i "input.mp4" -ss 5 -vframes 1 img.jpg

设置要编码多少帧:-vframes

视频打上水印(有点难。。。没实现)

在视频左上方添加水印

1
ffmpeg -i "input.mp4" -i img.jpg -filter_complex "overlay=20:20" out.mp4

视频转gif

1
ffmpeg -i "input.mp4" -ss 5 -to 20 -s 640x320 -r 15 out.gif