zoukankan      html  css  js  c++  java
  • 关于音视频剪辑ffmepg 工具的使用笔记

    yum安装方法:https://www.cnblogs.com/wpjamer/p/ffmpeg.html

    ffmpeg 安装命令 :https://www.cnblogs.com/scfhao/p/5390238.html

    ffmpeg 命令: https://www.jianshu.com/p/ddafe46827b7

    ffmpeg 合并视频:https://www.jianshu.com/p/cf1e61eb6fc8

    全面介绍:https://www.jianshu.com/p/ddafe46827b7

    水印参数:https://blog.csdn.net/danielpei1222/article/details/51873798

    最强攻略:https://blog.csdn.net/newchenxf/article/details/51384360

    brew install ffmepg 方法:

    https://blog.csdn.net/qq_36261644/article/details/88726364

    合并:
    ffmpeg -f concat -i list.txt -c copy hecheng.mp4


    转换成1280*720

    ffmpeg -i jiagdian.mp4 -vf scale=1280:720 output.mp4

    输出视频的分辨率 -s就是分辨率
    ffmpeg -i input_file -vcodec h264 -s 1280x720 output_file


    压缩比例:

    ffmpeg -i output.mp4 -b:v 2000k -bufsize 4000k -maxrate 2500k output1.mp4

    那么,什么是码率?很简单:
    bitrate = file size / duration
    比如一个文件20.8M,时长1分钟,那么,码率就是:
    biterate = 20.8M bit/60s = 20.8*1024*1024*8 bit/60s= 2831Kbps
    一般音频的码率只有固定几种,比如是128Kbps,
    那么,video的就是
    video biterate = 2831Kbps -128Kbps = 2703Kbps。

    说完背景了。好了,来说ffmpeg如何控制码率。
    ffmpg控制码率有3种选择,-minrate -b:v -maxrate
    -b:v主要是控制平均码率。
    比如一个视频源的码率太高了,有10Mbps,文件太大,想把文件弄小一点,但是又不破坏分辨率。
    ffmpeg -i input.mp4 -b:v 2000k output.mp4
    上面把码率从原码率转成2Mbps码率,这样其实也间接让文件变小了。目测接近一半。
    不过,ffmpeg官方wiki比较建议,设置b:v时,同时加上 -bufsize
    -bufsize 用于设置码率控制缓冲器的大小,设置的好处是,让整体的码率更趋近于希望的值,减少波动。(简单来说,比如1 2的平均值是1.5, 1.49 1.51 也是1.5, 当然是第二种比较好)
    ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4

    -minrate -maxrate就简单了,在线视频有时候,希望码率波动,不要超过一个阈值,可以设置maxrate。
    ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4
    ————————————————

    添加logo
    ffmpeg -i jingdian.mp4 -i jk2_index.png -filter_complex '[1:v]scale=109:36[s];[0:v][s]overlay=40:30' output4.mp4


    ffmpeg -i jingdian.mp4 -i jk2_index.png -filter_complex overlay=2 output3.mp4


    去掉水印: 模糊处理掉,然后再加上自己的水印

    ./ffmpeg -i input.mp4 -vf delogo=0:0:220:90:100:1 output.mp4


    命令行工具:

    将视频 MP4 转化为 GIF
    ffmpeg -i small.mp4 small.gif
    转化视频中的一部分为 GIF
    ffmpeg -t 3 -ss 00:00:02 -i small.webm small-clip.gif
    从视频中第二秒开始,截取时长为3秒的片段转化为 gif

    转化高质量 GIF
    默认转化是中等质量模式,若要转化出高质量的 gif,可以修改比特率

    ffmpeg -i small.mp4 -b 2048k small.gif
    视频属性调整
    缩放视频尺寸
    ffmpeg -i big.mov -vf scale=360:-1 small.mov
    注意 sacle 值必须是偶数,这里的 -1 表示保持长宽比,根据宽度值自适应高度。

    如果要求压缩出来的视频尺寸长宽都保持为偶数,可以使用 -2

    加倍速播放视频
    ffmpeg -i input.mov -filter:v "setpts=0.5*PTS" output.mov
    定义帧率 16fps:

    ffmpeg -i input.mov -r 16 -filter:v "setpts=0.125PTS" -an output.mov
    慢倍速播放视频
    ffmpeg -i input.mov -filter:v "setpts=2.0PTS" output.mov
    静音视频(移除视频中的音频)
    ffmpeg -i input.mov -an mute-output.mov
    -an 就是禁止音频输出

    将 GIF 转化为 MP4
    ffmpeg -f gif -i animation.gif animation.mp4
    也可以将 gif 转为其他视频格式

    ffmpeg -f gif -i animation.gif animation.mpeg

    ffmpeg -f gif -i animation.gif animation.webm
    获取 GIF 的第一帧图片
    使用 ImageMagick 可以方便第提取 gif 图片的第 N 帧图像。

    安装 ImageMagick

    brew install imagemagick
    提取第一帧

    convert 'animation.gif[0]' animation-first-frame.gif
    通过 [0] 就可以提取出 gif 的第一帧图像。

  • 相关阅读:
    谈谈图片上传及canvas压缩的流程
    前端应该懂得初级Web分析指标
    java OPENCV 连通域, Imgproc.findContours 例子,参数说明
    [学习opencv]高斯、中值、均值、双边滤波
    Opencv 图像叠加 添加水印
    帧间提取水印
    opencv mat 转灰度图
    编写一条sql命令,sql删除没有中文的表
    使用JavaCV/OpenCV抓取并存储摄像头图像
    周掌柜
  • 原文地址:https://www.cnblogs.com/iifeng/p/11521118.html
Copyright © 2011-2022 走看看