ffmpeg视频常用命令

  1. 视频压缩
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4
  1. 视频转动方向
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4

0:逆时针旋转90度并垂直翻转,这是默认值。

1:顺时针旋转90度。

2:逆时针旋转90度。

3:顺时针旋转90度并垂直翻转。

  1. 音量增大
ffmpeg -i input.wav -af "volume=2" output.wav
  • Replace volume=X with a suitable number. For example 0.5 will half, 2 will double the volume.
  1. 去除水印
1. 查看文件信息ffmpeg -i xxx.mp4
  1. 制作gif文件
//从第2s开始截取10秒数据 -r 15 一秒15帧. 
ffmpeg -ss 1 -t 10 -i 20200408.mp4 -s 360x640 -r 15 output2.gif
  1. 播放 rtsp - tcp 流
ffplay -rtsp_transport tcp rtsp://192.168.1.8:554/onvif1
  1. 缩放图片
ffmpeg -i home.png -s 540x1200 hometiny.png

  1. 视频转码 flv -> mp4
ffmpeg -i flv.flv -vcodec copy out.mp4
ffmpeg -i flv.flv -vcodec copy -acodec aac out.mp4
ffmpeg -i out.ogv -vcodec h264 out.mp4
ffmpeg -i input.flv -codec copy output.mp4
高级
ffmpeg -i flv.flv -c:v libx264 -crf 19 -strict experimental filename.mp4

张瑞推荐参数:
ffmpeg -i flv.flv -c:v copy -c:a aac -ab 128k -ar 44100 3.mp4

  • 命令行
     String[] commands = new String[8];
          commands[0] = "ffmpeg";
          commands[1] = "-i";
          commands[2] = inputPath;
          commands[3] = "-vcodec";
          commands[4] = "copy";
          commands[5] = "-acodec";
          commands[6] = "copy";
          commands[7] = outputPath;
    
  1. 下载直播流保存到本地mp4文件. ```java ffmpeg -i rtsp://@192.168.241.1:62159 -vcodec copy -acodec copy -f mp4 -r 15 C:/DB_Videos/111.mp4

ffmpeg -rtsp_transport tcp -i rtsp://116.62.177.94:5555/rtsp/deb77464-a4b6-42d7-86bf-bc6d73f29189 -vcodec copy -acodec aac -f mp4 -y D:/111.mp4


10. 播放tcp的rtsp数据 
```shell 
ffplay -rtsp_transport tcp  rtsp://47.108.81.159:5555/rtsp/00716e06-e3bf-4a53-bd2e-96e3256f96f8 
  • 调整视频速率
  1. 视频的倍速播放与慢速播放
    • 通过使用 av filter 中的 setpts 来实现:
      ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv
      
  • 如果担心会出现丢帧的情况,可以使用 -r 指定输入帧数,如果源视频是30fps,我们想4倍播放:
    ffmpeg -i input.mkv -r 120 -filter:v "setpts=0.25*PTS" output.mkv
    
  1. 音频的倍速播放与慢速播放
    • 通过 av filter 中的 atempo 来实现:
      ffmpeg -i input.mkv -filter:"atempo = 2.0" -vn output.mkv
      
    • atempo filter 配置区间在0.5和2.0之间,如果需要更高倍,可以使用多个 atempo filter 串在一起来实现
ffmpeg -i input.mkv -filter:"atempo=2.0,atempo=2.0" -vn output.mkv
  1. 同时对视频和音频倍速播放:
ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv

Android移动端如何使用ffmpeg命令

GitHub - jdpxiaoming/FFmpegTools: use ffmpege as the binary file use commands params to run main funcition , picture and videos acitons as you licke.

ffmprobe视频信息分析

  • 分析视频帧信息
ffprobe -show_frames We_Are_Young.mp4 > frames.info
  • 统计I帧数量
keyframe=1 : key frame
pict_type=I : I-frame

cat frames.info | grep “pict_type=I” |wc -l
  • 统计视频帧数量
cat frames.info | grep “media_type=video” |wc -l
ffprobe -show_format -show_streams filename
  • 转换视频颜色格式为yuv420p(默认yuvj422p)
ffmpeg -rtsp_transport tcp -i rtsp://47.108.81.159:5555/rtsp/1bac7b77-8a39-425b-9e2f-c2d66d441aef -pix_fmt yuv420p t.mp4