ffmpeg工具调研

1.   工具简介

ffmpeg是一个非常强大的工具,使用它可以转换视频格式,包括视频容器格式、视频编码格式。可以更改视频的其他的参数,比如帧率-每秒播放的帧数,视频的大小-尺寸等等。这里所说的视频,包括了视频和音频。另外,它还可以将图片转换为视频。

2.   工具安装

Windows下安装包地址:https://ffmpeg.zeranoe.com/builds/win64/static/

下载安装包直接解压即可使用。

如图,其中bin目录为ffmpeg可执行程序所在目录,可设置环境变量,以方便后续使用命令。

Linux下安装较Windows稍微复杂,需安装转码器。

详见:Linux下ffmpeg的完整安装 - wanghetao - 博客园

命令行下执行ffmpeg–version  提示如下:

说明安装成功。

3.   常用帮助命令

可用的bitffmpeg–bsfs

可用的编解码器:ffmpeg–codecs

可用的解码器:ffmpeg–decoders

可用的编码器:ffmpeg–encoders

可用的过滤器:ffmpeg–filters

可用的视频格式:ffmpeg–formats

可用的声道布局:ffmpeg–layouts

可用的licenseffmpeg–L

可用的像素格式:ffmpeg–pix_fmts

可用的协议:ffmpeg-protocals

4.   ffmpeg命令使用语法

命令格式:

   ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]

   ffmpeg [[options][`-i' input_file]]... {[options] output_file}...

    1、参数选项:

   (1) -an: 去掉音频

   (2) -acodec: 音频选项,一般后面加copy表示拷贝

   (3) -vcodec:视频选项,一般后面加copy表示拷贝

    2、格式:

   (1) h264: 表示输出的是h264的视频裸流

   (2) mp4: 表示输出的是mp4的视频

   (3)mpegts: 表示ts视频流

如果没有输入文件,那么视音频捕捉(只在Linux下有效,因为Linux下把音视频设备当作文件句柄来处理)就会起作用。作为通用的规则,选项一般用于下一个特定的文件。如果你给–b 64选项,改选会设置下一个视频速率。对于原始输入文件,格式选项可能是需要的。缺省情况下,ffmpeg试图尽可能的无损转换,采用与输入同样的音频视频参数来输出。(by ternence.hsu)

格式详见:ffmpeg命令详解(转) - AllenChou - 博客园

5.   常用功能/命令

5.1.  视频容器转换

ffmpeg -i input.avi out.mp4    将input.avi转为out.mp4

ffmpeg -i input.avi -b:v 640k output.mp4  将input.avi转为out.mp4 并设置视频的码率为640kbps

另外,可将视频转为MP3、swf、gif等

5.2.  提取音频

ffmpeg -i input.mp4 -acodec aac -vn out.aac

5.3.  为视频添加logo

左上角:  ffmpeg -i 3.mp4 -i logo.png -filter_complex overlay pair1.mp4

右上角:  ffmpeg -i 3.mp4 -i logo.png -filter_complex overlay=W-w pair2.mp4

左下角:    ffmpeg -i 3.mp4 -i logo.png -filter_complexoverlay=0:H-h  pair3.mp4

右下角:    ffmpeg -i 3.mp4 -i logo.png -filter_complex overlay=W-w:H-h pair4.mp4

删除logo

语法:  -vfdelogo=x:y:w:h[:t[:show]]

    x:y 离左上角的坐标

    w:h  logo的宽和高

    t: 矩形边缘的厚度默认值4

    show:若设置为1有一个绿色的矩形,默认值0.

ffplay -i pair1.mp4 -vfdelogo=x=1:y=1:w=220:h=91:show=0   预览

ffmpeg -i pair1.mp4 -vf delogo=x=1:y=1:w=220:h=91outaa.mp4

5.4.  视频文件截图

ffmpeg -i 3.mp4 -t 10 -pix_fmt rgb24 a.gif  从视频中生成GIF图片

ffmpeg -i 3.mp4 -vframes 30 -y -f gif a.gif  把视频的前30帧转换成一个Gif

ffmpeg -ss 00:00:45 -i 3.mp4 image.jpg    从视频指定时间截取一张图片  

ffmpeg -i 3.mp4 -f image2 -vf fps=fps=1out%d.png    每隔1秒截一张图

ffmpeg -i 3.mp4 -f image2 -vf fps=fps=1/20out%d.png    每隔20秒截一张图

6.   结论

已测试。可实现常规视频格式间的转换;视频到音频的转换;视频图片的截取;视频水印的增加、删除。

<div id="page_end_html">
    <script src="http://www.kailing.pub/Home/Tpl/default/Public/assets/l2dwidget.min.js"></script>
	  <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script>
      L2Dwidget.init({
        "model": {
          // 小可爱(女)
		  //jsonPath: "https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json",
		  // 小可爱(男)
		  //jsonPath: "https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json",
          // 摇头猫
		  jsonPath: "https://unpkg.com/live2d-widget-model-hijiki/assets/hijiki.model.json",
		  // 初音
		  //jsonPath: "https://unpkg.com/live2d-widget-model-z16@1.0.5/assets/z16.model.json",
		  //萌娘
		  //jsonPath: "https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json",
		  //帅哥
		  //jsonPath: "https://unpkg.com/live2d-widget-model-chitose@1.0.5/assets/chitose.model.json",
          "scale": 1
        },
        "display": {
          "position": "right",   // 设置猫咪的上下左右位置
          "width": 100,
          "height": 200,
          "hOffset": 0,
          "vOffset": 0
        },
        "mobile": {
          "show": true,
          "scale": 0.5
        },
        "react": {
          "opacityDefault": 0.7,   // 设置猫咪的透明度
          "opacityOnHover": 0.2
        }
      });
      window.onload = function() {
        $("#live2dcanvas").attr("style", "position: fixed; opacity: 0.7; left: 70px; bottom: 0px; z-index: 1; pointer-events: none;")
      }
    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值