一些ffmpeg的常用指令。ffmpeg document and ffmpeg filters Document

目录

格式转换

ffmpeg -i input.avi output.mp4  # 把avi格式视频转换为mp4,-i 指定输入
ffmpeg -i input.ava output.mp3  # 音频格式转换

视频裁剪

注意这里的意思是画面大小的剪裁,不是时间轴,时间轴的剪裁在后文。

ffmpeg -i inputFile -filter:v "crop=w=1920:h=1080:x=0:y=0" outputFile
  • -filter:v 表示在视频通道使用过滤器,v即video channel
  • crop 即剪裁,该过滤器最多指定4个参数,其中w和h分别表示输出的宽和长;x和y指定裁剪的位置,x=0:y=0即表示从视频左上角开始裁剪,不指定xy时默认以原视频中心点为中心进行裁剪。

按比例剪裁

ffmpeg -i inputFile -filter:v "crop=w=1/2*in_w:h=1/2*in_h" outputFile
  • 实现的功能是长宽剪裁为原来的一半。
  • in_w 即 input width,in_h同理。

视频缩放

用法与剪裁类似,不同的是这次使用scale过滤器。

ffmpeg -i inputFile -filter:v "scale=w=1920:h=1080" outputFile

按比例缩放:

ffmpeg -i inputFile -filter:v "scale=w=1/2*in_w:h=1/2*in_h" outputFile

定比缩放:

ffmpeg -i inputFile -filter:v "scale=w=1920:h=-1" outputFile
  • 把w和h其中一个置为-1,如上h=-1,则h的值随w按原视频长宽比例变化。

视频旋转

使用过滤器rotate。

ffmpeg -i inputFile -filter:v "rotate=90\*PI/180" outputFile
  • rotate的值为旋转度数,需要弧度值,我们可以通过乘PI/180的方式来赋值,如上表示顺时针旋转90度。

让视频随时间轴进行旋转

ffmpeg -i inputFile -filter:v "rotate=2*PI*t/10" outputFile 
  • 旋转周期为10s。也可以为其指定初相角,rotate=PI/2+2*PI*t/10

音量调整

ffmpeg -i inputFile -filter:a "volume=2" outputFile 
  • -filter:a 表示在音频通道上使用过滤器,参数值 a 即 audio channel
  • volume=2 表示调用音量过滤器并设置输出音量为原音量的2倍

示例:

ffmpeg -i input.wav -filter:a "volume=3" output.mp3  # 音量放大三倍,并转化格式为MP3
ffmpeg -i input.wav -filter:a "volume=0.5" output.mp3  # 音量减小为原来的1/2

声道调整

ffmpeg -i inputFile -filter:a "channelmap=0-1|1-0" outputFile
  • channelmap即声道映射,0表示左声道,1表示右声道。
  • channelmap=0-1|1-0 表示把左声道映射到右声道,右声道映射到左声道,即左右声道互换。

以上内容来自一个ffmpeg入门教程,可以看出,其最核心的莫过于各种过滤器的使用,这是ffmpeg的强大之处,也是ffmpeg各种用法的基础思路。以下是杂记。

others

  1. 拼接视频

    ffmpeg -f concat -i fileList.txt -c copy outputFile
    
    • fileList.txt中写入要拼接的文件,格式如下:

      file 'video1.wmv'
      file 'video2.wmv'
      
  2. 时间轴剪裁

    ffmpeg -i inputFile -ss start -t duration outputFile
    
    • start是开始时间,格式为00:10:10或者简单的秒数610
    • duration是持续时间,格式同上
  3. 加速

    ffmpeg wiki

  4. 提取音频

    ffmpeg -i video_name.mp4 -vn -y -acodec copy music_name.aac 从视频中提取音频