ffmpeg 常用命令格式

ffmpeg 是一个非常强大的音视频转换工具,目前还在摸索学习阶段,本文记录一下目前用过的几条命令。

ffmpeg 音视频格式转换


基础命令

# 获取帮助
ffmpeg -help

# 支持的格式
ffmpeg -formats

# 支持的解码
ffmpeg -decoders

# 支持的编码
ffmpeg -encoders

# 支持的协议
ffmpeg -protocols

# 隐藏开头的广告信息
ffmpeg -hide_banner

# 精简格式输出
ffmpeg -loglevel quiet

自动将 VOB 格式视频转换为 mp4 格式,并将音量调高两倍

ffmpeg -i 1.vob -af "volume=2" 1.mp4;

使用 libx265 编码格式将 avi 视频转换为 mp4 视频

ffmpeg -i 1.avi -c:v libx265 -preset medium -crf 22 -c:a copy 1.mp4;

编辑视频的meta信息

ffmpeg -i 1.avi -c: copy -metadata title="标题" -metadata comment="备注" 1.mp4;
  • -c:v libx265 使用 libx265 编码
  • -preset medium 预设画质为 medium
  • -crf 22 设置画质等级
  • -c:a copy 直接拷贝音频

以下20条命令收集自网络,点此查看原文

提取视频中的音频

# 该命令从输入视频中提取音频并将其保存为 AAC 格式。
ffmpeg -i input.mp4 -vn -acodec copy output.aac

转换视频为 GIF

ffmpeg -i input.mp4 -vf "scale=320:-1:flags=lanczos,palettegen" -y palette.pngffmpeg -i input.mp4 -i palette.png -filter_complex "scale=320:-1:flags=lanczos[x];[x][1:v]paletteuse" -y output.gif

提取视频帧

# 该命令从输入视频中提取每秒钟的一帧,并将这些帧保存为 PNG 格式的图像文件。
ffmpeg -i input.mp4 -r 1 -f image2 output-%03d.png

提取某一帧

# 该命令从输入视频中提取第30秒的一帧,并将这些帧保存为 PNG 格式的图像文件。
ffmpeg -i input.mp4 -ss 00:00:30 -frames:v 1 output-30.png

调整视频大小

# 该命令将输入视频的分辨率调整为 640x360 并将输出保存为 MP4 格式。
ffmpeg -i input.mp4 -vf scale=640:360 output.mp4

添加水印

# 该命令在输入视频的左上角添加一个水印,并将输出保存为 MP4 格式。
ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4

调整音频音量

# 该命令将输入音频的音量调整为原来的 2 倍,并将输出保存为 MP3 格式。
ffmpeg -i input.mp3 -af "volume=2" output.mp3

压缩视频

# 该命令将输入视频压缩为分辨率为 640x? 的视频,并使用 H.264 编码器进行编码。压缩质量由 CRF 参数控制,值越小压缩质量越高。Preset 参数控制编码速度,值越小编码速度越快,但压缩质量可能会降低。
ffmpeg -i input.mp4 -vf "scale=640:-1" -c:v libx264 -crf 23 -preset veryfast -c:a copy output.mp4

添加字幕

# 该命令将输入视频与字幕文件结合,将字幕文件编码为 mov_text 格式,将输出保存为 MP4 格式。
ffmpeg -i input.mp4 -i subtitle.srt -c:v copy -c:a copy -c:s mov_text -metadata:s:s:0 language=eng output.mp4

旋转视频

# 该命令将输入视频逆时针旋转 90 度,并将输出保存为 MP4 格式。
ffmpeg -i input.mp4 -vf "transpose=1" -c:a copy output.mp4

修改视频的帧率

# 该命令将输入视频的帧率修改为 30 帧每秒,然后使用 H.264 编码器进行编码。
ffmpeg -i input.mp4 -r 30 -c:v libx264 -crf 23 -preset veryfast -c:a copy output.mp4

裁剪视频

# 该命令从输入视频的第 10 秒开始裁剪,裁剪时长为 20 秒,然后将裁剪后的视频保存为 MP4 格式。
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:20 -c copy output.mp4

合并多个视频文件

# 该命令将多个 MP4 格式的视频文件合并为一个文件,并将其保存为 MP4 格式。
ffmpeg -f concat -safe 0 -i list.txt -c copy -y output.mp4

#-f concat是指合并
#-safe 为了避免权限报错
#-c copy 一定要指定,不然会重新封装,数据文件就会变大。

# list.txt 的文件内容格式:
file '1.mp4'
file '2.mp4'
file '3.mp4'

分离视频的音频和视频流

# 该命令将输入视频的音频流和视频流分别保存为 MP3 和 MP4 格式的文件。
ffmpeg -i input.mp4 -vn audio.mp3ffmpeg -i input.mp4 -an -vcodec copy video.mp4

合并音频和视频

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental output.mp4
# 如果视频中已经包含了音频,这个时候还可以替换视频中的音频,使用下面命令行。
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental-map 0:v:0 -map 1:a:0 output.mp4

拼接音频文件

# 该命令将两个 MP3 格式的音频文件拼接为一个文件,并将其保存为 MP3 格式。
ffmpeg -i "concat:input1.mp3|input2.mp3" -acodec copy output.mp3

裁剪音频

# 该命令从输入音频的第 30 秒开始裁剪,裁剪时长为 2 分钟,然后将裁剪后的音频保存为 MP3 格式。
ffmpeg -i input.mp3 -ss 00:00:30 -t 00:02:00 -acodec copy output.mp3

ffmplay 音视频文件播放


播放 1.mp4 文件

ffmplay 1.mp4

播放控制快捷键:

  • 退出播放:q键、ESC键
  • 全屏切换:f键(进入或退出全屏)
  • 暂停:p键、空格键
  • 静音切换:m键
  • 改变音量:9键减少音量、0键增加音量
  • 循环切换音频流:a键
  • 循环切换视频流:v键
  • 循环切换字幕流:t键
  • 循环切换节目:c键
  • 循环切换过滤器或显示模式:w键
  • 逐帧播放:s键
  • 快进后退10秒:left键(←)后退10秒,right键(→)前进10秒;
  • 快进后退60秒:down键(↓)后退60秒,up键(↑)前进60秒;

命令参数

参数 含义
-x width-y height 强制显示宽高,用于调整窗口大小
-video_size size 设置帧尺寸,仅适用于没有包含帧大小的视频
-pixel_format format 设置像素格式
-fs 以全屏模式启动
-an 禁用音频
-vn 禁用视频
-sn 禁用字幕
-ss pos 设置开始播放的位置
pos 可以是数字,比如 -ss 100 表示从100秒的位置开始播放
pos 也可以是hour:min:second 的格式,比如 -ss 00:01:50 表示从1分50秒的位置开始播放
-t duration 设置播放视频的长度,即持续时间
duration 的格式与上面的 pos 相同
-bytes 设置按字节进行定位拖动
-seek_interval interval 自定义左右键拖动间隔,以秒为基本单位,默认为10秒
-nodisp 关闭图形化显示窗口,不显示视频
-noborder 设置无边框窗口
-volume vol 设置起始音量
-f fmt 强制使用设置的格式进行解析
-window_title title 设置窗口标题,默认为输入文件名
-loop number 设置播放循环次数
-showmode mode 设置显示模式,默认为0 显示视频
0 显示视频 1 显示音频波形 2显示音频频谱
-vf filtergraph 设置视频滤镜
-af filtergraph 设置音频滤镜
高级命令参数
-stats 统计信息包括现实流持续时间、编解码参数、流的当前位置等
-sync type 设置同步类型
type 分为audiovideoexternal等类型
-ast index 播放流索引为index的音频流
-vst index 播放流索引为index的视频流
-sst index 播放流索引为index的字幕流
-autoexit 设置视频播放完毕自动退出
-codec:media_specifier codec_name 强制使用设置的多媒体解码器
-codec:v h264_qsv表示强制视频采用h264_qsv进行解码
-acodec codec_name 强制使用设置的音频解码器进行音频解码
-vcodec codec_name 强制使用设置的视频解码器进行视频解码
-scodec codec_name 强制使用设置的字幕解码器进行字幕解码
-infbuf 不限制输入缓冲区大小
尽可能快地从输入中读取尽可能多的数据,禁用时需采用 -noinfbuf

ffprobe 音视频信息查看


查看 1.mp4 文件信息

ffprobe -i 1.mp4
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容