• ffmpeg使用经验


    1、工作要使用ffmpeg将视频转换成H264格式,网上查到的很多使用方法都是如下:

    ffmpeg -i input.mov -c:v libx264 -crf 12 output.mov

    -i后面表示输入的视频流;

    -c:v后面表示要转换的格式;

    -crf表示视频的压缩程度,数字越大压缩程度越大,输出的视频也就越小,默认是18;

    但是这样转出来的视频暂停之后快进会有延迟,造成画面卡顿的感觉,而且按帧播放不流畅;

    google了很多资料才知道,这是因为关键帧之间缺少控制,需要加上下面两个参数

    -g 2 -keyint_min 2
     
    因此完整的命令如下:
    ffmpeg -i input.mov -c:v libx264 -g 2 -keyint_min 2 -crf 12 output.mov

    2、替换视频中的某一帧

      业务中有一个功能:需要实现将视频中的一帧替换为用户上传的图片,但ffmpeg并没有实现这个功能的参数,

    后来想到只要图片尺寸与视频一样大,那就可以用加水印的方式实现,如将视频第三帧替换为输入图片,整理后的命令如下:

    ffmpeg -i input.mov -i input.jpg -filter_complex "[0:v][1:v]overlay=enable='between(n,2,2)'" -acodec copy output.mp4

    -i input.mov  输入的视频流;

    -i input.jpg  输入的图片;

    -filter_complex 是最关键的,但是具体什么意思我现在也忘了;

    "[0:v][1:v]overlay=enable='between(n,2,2)'"  这里的冒号一定不能少,括号中的两个数字表示第几帧到第几帧,从0计数,使用是直接替换数字就可以了;

    -acodec copy  表示拷贝音频;

  • 相关阅读:
    存储函数
    Laravel的请求声明周期
    哪只猴子可以当大王
    有多少苹果用来分赃
    SqlDataAdapter使用小结
    主键与外键
    SQL server 操作相关
    C# 窗体相关知识
    C#中winform DataGridView常用修改点
    maven 坐标获取方式
  • 原文地址:https://www.cnblogs.com/chaofan-/p/9578950.html
Copyright © 2020-2023  润新知