ffmpeg基本操作

  1. 视频trim
    ffmpeg -ss 00:00:01 -to 00:01:20 -i input.mp4 -c copy output.mp4
    -ss后面是开始时间,-to后面是结束时间
  2. 视频2倍速播放
    ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" output.mp4

保证原始质量

ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" -c:v libx264 -crf 18 -preset slow -c:a aac -b:a 192k output.mp4

  1. 视频crop
    ffmpeg -i input.mp4 -vf "crop=w:h:x:y" output.mp4
    w,h对应output的大小,x,y为crop的起点
  2. 合并视频
    先创建一个文本文件filelist.txt:

file 'input1.mkv'
file 'input2.mkv'
file 'input3.mkv'

然后:

ffmpeg -f concat -i filelist.txt -c copy output.mkv

注意:使用 FFmpeg concat 分离器时,如果文件名有奇怪的字符,要在 filelist.txt中转义。

  1. 将 6 个视频合并到一个窗口以2x3 的网格布局播放,并以最长的视频时长为准
    ffmpeg
    -i 1.MOV -i 2.MOV -i 3.MOV -i 4.MOV -i 6.MOV -i 7.MOV
    -filter_complex "
    [0:v]scale=360:640[v0];
    [1:v]scale=360:640[v1];
    [2:v]scale=360:640[v2];
    [3:v]scale=360:640[v3];
    [4:v]scale=360:640[v4];
    [5:v]scale=360:640[v5];
    [v0][v1][v2][v3][v4][v5]xstack=inputs=6:layout=0_0|360_0|720_0|0_640|360_640|720_640[outv]"
    -map "[outv]" -c:v libx264 -preset veryfast -crf 23 output2.mp4

  2. 视频文件downsample
    ffmpeg -i input.mp4 -vf "scale=iw/2:ih/2" output.mp4
    ffmpeg -i input.mp4 -vf "scale=1280:720" output.mp4
    保持宽高比:ffmpeg -i input.mp4 -vf "scale=640:-1" output.mp4

  3. 视频静音
    ffmpeg -i input.mp4 -c:v copy -an output.mp4

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ffmpeg h.265压缩ffmpeg -f rawvideo -vcodec rawvideo -pix_fm...
    Persistently阅读 5,577评论 0 0
  • 官方文档:ffmpeg Documentation[https://ffmpeg.org/ffmpeg.html]...
    fitmos阅读 3,928评论 0 0
  • ffmpeg主要组成部分 1、libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生...
    旁界001阅读 148,811评论 11 76
  • 在C++编程中与FFmpeg相关的开发涵盖了视频、音频处理的多种应用场景,包括编码、解码、转码、流媒体处理、滤镜应...
    汉堡克阅读 8,491评论 0 6
  • 目录 help命令使用 流选择选项 视频封装解封装 3.1 视频格式转换 3.2 分离/合并视频音频流 3.3 截...
    smallest_one阅读 15,211评论 3 16