我的 FFmpeg 常用命令收集

3 minutes read
FFmpegVideoCLI

FFmpeg 简介

FFmpeg 是处理音视频的强大开源工具集,支持几乎所有格式的编解码、转换和处理。本文整理了最常用的FFmpeg命令行操作。

流媒体下载

下载m3u8流媒体

适用于下载视频流并保存为MP4格式:

ffmpeg -i https://example.com/index.m3u8 -c copy -bsf:a aac_adtstoasc video.mp4

参数解析:

  • -c copy 使用无损复制模式
  • -bsf:a aac_adtstoasc 将ADTS头转换为ASC,解决某些播放器兼容性问题

视频压缩技巧

调整帧率压缩

降低视频帧率可有效减小文件大小:

# 视频压缩为20帧
ffmpeg -i video.mp4 -r 20 out.mp4

限制文件大小

直接指定输出文件的最大体积:

# 设置文件最大尺寸为15MB
ffmpeg -i video.mp4 -fs 15MB out.mp4

调整码率

通过设置视频码率控制质量与大小的平衡:

# 码率指定为1.5MB/s
ffmpeg -i video.mp4 -b:v 1.5M out.mp4

码率说明:

  • -b:v 指定视频的码率
  • -b:a 指定音频的码率
  • 值如1.5M表示1.5Mb/s的比特率

视频裁剪

从视频中提取特定时间段:

ffmpeg -ss 01:00:00 -t 01:00:06 -i video.mp4 -vcodec copy -acodec copy out.mp4

参数说明:

  • -ss 指定开始时间点
  • -t 指定需要的持续时长
  • -vcodec copy -acodec copy 无损复制视频和音频流

视频缩放

按比例缩放

# 宽度750,高度自适应
ffmpeg -i video.mp4 -vf scale=750:-1 out.mp4

指定宽高缩放

# 宽度750,高度为1280
ffmpeg -i video.mp4 -vf scale=750:1280 out.mp4

视频旋转

视频翻转

# 垂直翻转(上下颠倒)
ffmpeg -i video.mp4 -vf "vflip" out.mp4
 
# 水平翻转(左右镜像)
ffmpeg -i video.mp4 -vf "hflip" out.mp4

角度旋转

# 顺时针旋转90度
ffmpeg -i video.mp4 -vf "transpose=1" output.mp4
 
# 逆时针旋转90度
ffmpeg -i video.mp4 -vf "transpose=2" output.mp4
 
# 顺时针旋转90度后并垂直翻转
ffmpeg -i video.mp4 -vf "transpose=3" output.mp4
 
# 旋转45度
ffmpeg -i video.mp4 -vf "rotate=PI/4" output.mp4

transpose参数值含义:

  • 0: 逆时针旋转90度并垂直翻转
  • 1: 顺时针旋转90度
  • 2: 逆时针旋转90度
  • 3: 顺时针旋转90度后并垂直翻转

格式转换

提取视频缩略图

# 提取视频第一帧作为缩略图
ffmpeg -i vid_max1.mp4 -ss 0 -vframes 1 vid1.jpg

视频转WEBP动图

ffmpeg -i ./input.mp4 -vcodec libwebp -filter:v fps=fps=12 -lossless 0 \
  -compression_level 3 -q:v 60 -loop 1 -preset picture -an -s 720:1280 output.webp

参考资料

On this page

Scroll to top