视频转码

  1. $ ffmpeg -i input.mp4 -c:v h264_qsv output.mp4

列出编、解码器

  1. $ ffmpeg -encoders # 列出编码器
  2. $ ffmpeg -decoders # 列出解码器

列出 dshow 设备

  1. $ ffmpeg -list_devices true -f dshow -i dummy

录制屏幕和混音

  1. $ ffmpeg -f gdigrab -i desktop -f dshow -i audio="virtual-audio-capturer" -f dshow -i audio="麦克风 (Realtek Audio)" -filter_complex amix=inputs=2:duration=first:dropout_transition=0 -c:v h264_qsv -r 50 -b:v 5000k output.mp4
  2. # -c:v 指定编码器,v为高质量
  3. # h264_qsv h264编码,intel qsv硬件加速
  4. # -r 指定fps
  5. # -b:v 指定bitrate
  6. # -filter_complex amix=inputs=2:duration=first:dropout_transition=0 将两个音频混流

播放视频

  1. $ ffplay input.mp4

查看视频信息

  1. $ ffmpeg -i input.mp4 # 查看视频编码信息
  2. $ ffprobe -hide_banner -show_streams -v error -select_streams v -print_format json -i input.mp4 # 查看视频详细信息

音视频分离/合并

  1. $ ffmpeg -i input.mp4 -vcodec copy -an output.mp4 # 去掉视频中的音频
  2. $ ffmpeg -i input.mp4 -acodec copy -vn output.mp3 # 提取视频中的音频
  3. $ ffmpeg -y i input.mp4 i input.mp3 vcodec copy acodec copy output.mp4 # 音视频合并
  4. # -an 去掉音频
  5. # -vn 去掉视频
  6. # -y 覆盖输出文件
  7. # -vcodec 指定视频编码器,copy 表示与原视频相同
  8. # -acodec 指定音频编码器
  9. # -vcodec copy -acodec copy 可以简化为 -c copy

剪切视频

  1. $ ffmpeg -ss 0:0:30 -t 0:1:0 -i input.mp4 -c copy output.mp4
  2. # -ss 开始时间
  3. # -t 持续时间

合并视频

  1. $ ffmpeg -f concat -i filelist.txt -c copy output.mp4

其中,filelist.txt 文件的内容:

  1. file ./input1.mp4
  2. file ./input2.mp4
  3. file ./input3.mp4

视频/音频变速

  1. $ ffmpeg -i input.mp4 -filter:v setpts=0.5*PTS output.mp4 # 视频变速
  2. $ ffmpeg -i input.mp3 -filter:a atempo=2.0 output.mp3 # 音频变速