ffepeg的基础命令

基础命令

前提:

  • 在执行下面的命令时,需要创建一个文件夹,命名不限
  • 通过终端进入该目录(以桌面为例)
    • cmd 启动终端
    • cd Desktop 进入桌面
    • mkdir {filename} 创建一个文件夹
    • cd {filename} 进入创建的文件夹
  • 下方所有的命令均在该状态下执行,视频等文件也会生成在该文件夹下
  1. 水印&字幕的去除
    • 定义:
      • 去除视频中需要隐藏的信息,比如字幕或水印
      • 在格式中,用(x,y,w,h)四个值描述其具体位置,用(x, y)来描述水印矩形区域的左上角坐标,用(w, h)描述水印矩形区域的宽度和高度,在进行坐标的量取的,可借助工具snipaste
      • show表示是否显示矩形框,如果为0表示不显示,如果为1表示显示,此时会在我们所选的区域显示一个绿色的矩形框,show的默认值为0
    • 格式:
      • ffmpeg -i {需要处理的视频名,后面用input_file代替} -vf delogo=x={x}:y={y}:w={w}:h={h}:show={?} {输出的视频,后面用output_file_video代替}
    • 实例:
      • ffmpeg -i 1.mp4 -vf delogo=x=100:y=320:w=500:h=30:show=1 tt.mp4
  2. 字幕的添加
    • 定义:
      • 进行字幕的添加
      • 文件准备ass文件
        • 首先创建一个后缀为.srt的文件,已经提供该文件,可参考格式
          • srt文件说明
            • 定义:
              • 每个字幕有四部分组成
                • 字幕序号
                • 字幕显示的起始时间和结束时间
                • 字幕内容,可多行
                • 空白行(表示本字幕段结束)
        • 执行如下命令,将.srt文件更换成.ass文件
          • ffmpeg -i {需要替换的srt文件名}.srt -y {最后生成的ass文件名}.ass
          • eg: ffmpeg -i 1.srt -y 1.ass
        • 添加硬字幕
          • ffmpeg -i {input_file}.mp4 -vf ass={最后生成的ass文件名}.ass -y {output_file_audio}.mp4
          • eg: ffmpeg -i 3.mp4 -vf ass=1.ass -y 04.mp4
    • 格式:同上(添加硬字幕)
    • 实例:同上(添加硬字幕)
  3. 分离视频流
    • 定义:
      • 在视频(有视频流和音频流)中,只提取出视频流,保存为另外一个视频
    • 格式:
      • ffmpeg -i {input_file} -vcodec copy -an {output_file_audio}
    • 实例
      • 可直接在终端输入如下命令,回车即可
      • ffmpeg -i 1.mp4 -vcodec copy -an 2.mp4
  4. 分离音频流
    • 定义:
      • 在视频(有视频流和音频流)中,只提取出音频流,保存为另外一个音频
    • 格式:
      • ffmpeg -I {input_file} -acodec copy -vn {output_file_audio}
    • 实例:
      • ffmpeg -i 1.mp4 -acodec copy -vn 3.mp4
  5. 指定分辨率
    • 定义:
      • 改变视频的宽高
    • 格式:
      • ffmpeg -i {input_file} -s {宽(像素)x高} {output_file_audio}
    • 实例:
      • ffmpeg -i 1.mp4 -s 320x240 4.mp4
  6. 格式转换
    • 定义:
      • 将视频格式进行切换,例如将mp4文件转换为flv
    • 格式:
      • ffmpeg -i {input_file} -acodec aac {output_file_audio}
    • 实例:
      • ffmpeg -i 1.mp4 -acodec aac 5.flv
  7. 剪切视频
    • 定义:
      • 从一个长视频中,裁剪出一个短视频
      • 格式中,存在两个时间,第一个为开始时间,例如0:0:03,第二个时间为持续时间,例如0:0:06,也就是从视频的第三秒开始取,取到第九秒结束
    • 格式:
      • ffmpeg -ss {开始时间} -t {持续时间} -i {input_file} -vcodec copy -acodec copy {output_file_audio}
    • 实例:
      • ffmpeg -ss 0:0:03 -t 0:0:06 -i 1.mp4 -vcodec copy -acodec copy 6.mp4
  8. 视频的合并
    • 定义:
      • 将多个视频进行合并
      • 在视频的同级目录(也就是上方创建的文件夹)下,创建一个txt文件,文件名可自定义,eg:video.txt
      • 在里面进行添加文本,范本如下:
        file 1.mp4
        file 2.mp4
      • 也就是合并视频1.mp4和2.mp4,如果还有多个视频,可继续向下添加,合并的视频顺序,从前往后进行合并
    • 格式:
      • ffmpeg -f concat -i {自定义的txt文件名} -c copy {output_file_audio}
    • 实例:
      • 文件 video.txt
        file 1.mp4
        file 2.mp4
      • ffmpeg -f concat -i video.txt -c copy 7.mp4

进阶可以参考文档 https://blog.csdn.net/n88Lpo/article/details/115499454 - 可以修改字幕的样式等,可以学习一下

原文地址:https://www.cnblogs.com/luckyqh/p/15551746.html