Skip to content

ffmpeg常见命令

1.基本信息查询命令

  1. -version 显示版本
  2. -demuxers 显示可用的demuxers
  3. -muxers 显示可用的muxers
  4. -devices 显示可用设备
  5. -codecs 显示所有编解码器
  6. -decoders 显示所有的解码器
  7. -encoders 显示所有的编码器
  8. -bsfs 显示比特流filter
  9. -formats 显示可用的格式
  10. -protocols 显示可用的协议
  11. -filters 显示可用的过滤器
  12. -pix_fmts 显示可用的像素格式
  13. -sample_fmts 显示可用的采样格式
  14. -layouts 显示channel名称
  15. -colors 显示识别的颜色名称

2.录制命令

windows 录制视频桌面(无声)

bash
ffmpeg -f gdigrab -i desktop -pix_fmt yuv420p out.mp4

3.分解/复用命令

多媒体视频转换

  • 将out.mp4转化为out.flv
bash
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv
  • 分离视频

ffmpeg -i .\out.mp4 -an -vcodec copy out.h264

  • 分离声音

  • ffmpeg -i .\out.mp4 -acodec copy -vn out.mp3

4.处理原始数据命令

提取YUV数据

bash
ffmpeg -i .\out.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv

ffmpeg [输入文件]-i .\out.mp4 [不要声音]-an [原始格式]-c:v rawvideo [像素格式]-pix_fmt yuv420p [输出文件]out.yuv

提取PCM数据

bash
ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm

ffmpeg [输入文件]-i out.mp4 [去视频]-vn [声音采样率]-ar 44100 [声道]-ac 2 [格式]-f s16le [输出文件]out.pcm

5.裁剪与合并命令

视频裁剪

bash
ffmpeg -i input.mp4 -ss 00:00:00 -t 1 out.ts

ffmpeg [输入文件]-i input.mp4 [开始时间]-ss 00:00:00 [持续时间]-t 1 [输出文件]out.ts

视频合并

bash
 ffmpeg.exe -f concat -i inputs.txt concat.flv

inputs.txt file filename

text
file 1.mp4
file 2.mp4

6.图片/视频转换命令

视频转图片

bash
ffmpeg -i .\tmp.mp4 -r 1 -f image2 image-%3d.jpeg

ffmpeg [输入视频]-i .\tmp.mp4 [帧率]-r 1 [格式]-f image2 [输出文件]image-%3d.jpeg

图片转视频

bash
ffmpeg -i image-%3d.jpeg out.mp4

7.直播相关命令

直播推流

bash
ffmpeg.exe -re -i .\out.flv -c copy -f flv rtmp://server/live/streamName

直播拉流

bash
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv

8.各种滤镜命令

滤镜入门

裁剪视频

bash
ffmpeg -i .\out.mp4 -vf crop=in_w-400:in_h-200 -c:v libx264 -c:a copy out.mp4