美文网首页
mac环境ffmpeg压缩,关键帧,批量处理

mac环境ffmpeg压缩,关键帧,批量处理

作者: Trigger_o | 来源:发表于2021-08-10 10:17 被阅读0次

    压缩视频

    ffmpeg -i video.mp4 -b:v 1000k -s 1920x1080 video.small.mp4
    

    修改码率比较直接,直接和文件大小成正比,1000k指的是码率1Mb/s,分辨率可以修改视频画幅大小

    插入关键帧

    ffmpeg -i video.mp4 -c:v libx264 -preset superfast -x264opts keyint=60 -acodec copy -f mp4 video.frame.mp4
    

    有时候会出现视频seek不准的情况,拖动进度条无法准确定位,会往回弹,这种情况经常是因为缺少关键帧;
    这个命令是每隔60帧插入一个关键帧

    批量处理

    find ./ -name '*.mp4' -exec sh -c 'ffmpeg -i "$0" -c:v libx264 -preset superfast -x264opts keyint=100 -acodec copy -f mp4 "${0%%.mp4}.small.mp4"' {} \;
    
    可以用find来实现,"./"是包含子路径的,"*.mp4"是文件名,单引号内是具体的命令;
    "${0%%.mp4}.small.mp4"是输出的文件名;
    "${0%%.mp4}"这一段是Linux的字符串操作,这里是从第0个字符开始保留,删除".mp4",然后拼上".small.mp4";
    可以指定路径比如"finish/${0%%.mp4}.small.mp4";
    

    优化关键帧
    插入关键帧会使文件大小激增,使用这个命令可以优化关键帧

    ffmpeg -i 1.mp4 -keyint_min 60 -g 60 -sc_threshold 0 1.frame.mp4
    
      -keyint_min为最小帧间隔;-sc_threshold这ffmpeg的自动优化选项,为了使码率均衡,设置0不启用
    

    设置帧速率

    -r 24 
    
    帧率设置为24
    

    组合技

    ffmpeg -i 1.mp4 -r 24 -b:v 500k -s 1280x720 -c:v libx264 -preset superfast -x264opts keyint=24 -acodec copy 1.frame.mp4
    
    帧率24,500k码率,1280x720尺寸,每24帧插入一个关键帧
    

    mov转MP4

    find ./ -name '*.mov' -exec sh -c 'ffmpeg -i "$0" -vcodec libx264 -preset fast -crf 20 -y -vf "scale=1280:-1" -acodec libmp3lame -ab 128k "${0%%.mov}.mp4"' {} \;
    
    -crf 20是质量,scale=1280:-1是尺寸
    

    相关文章

      网友评论

          本文标题:mac环境ffmpeg压缩,关键帧,批量处理

          本文链接:https://www.haomeiwen.com/subject/ngjxbltx.html