ffmpeg 常用命令格式

2023-10-17  本文已影响0人  O无为学长O

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;

以下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

播放控制快捷键:

命令参数

参数 含义
-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
上一篇下一篇

猜你喜欢

热点阅读