zoukankan      html  css  js  c++  java
  • FFmpeg常用命令

    作为一个图像算法工程师,有时候也要处理视频。再经过算法处理之前,可能要对视频进行抽帧、格式转换、裁剪、合并等操作,虽然网络上有很多视频处理软件,但是要么是要收费、要么是不好用。其实作为程序员,可以用鼎鼎大名的开源工具FFmpeg来做视频的编辑处理。

    在我看来,FFmpeg是最强大的视频编辑处理开源工具,没有之一。其官网是http://ffmpeg.org/,在官网可以下载FFmpeg的源码,也可以下载编译好的、直接运行的可执行文件,大多数人只需要用它就行了,这里是windows 64位可执行文件下载地址。

    下载将得到一个压缩包,目录结构如下:

    1576120598946520.png

    bin里面有三个可执行文件,分别是ffmpeg.exe、ffplay.exe和ffprobe.exe,doc目录是html文档,打开其中的ffmpeg.html就可以查看ffmpeg.exe的使用方法。ffmpeg的功能非常多,本文列举一些常用的命令。执行命令的方法是:以windows为例,进入到上图的bin目录中,按住Shift键,点击鼠标右键,选择“在此处打开命令窗口”,然后输入命令,回车,即可执行。

    1. 格式转换

    命令:ffmpeg -i testfile.mp4 -codec copy testfile.flv

    命令解析:

    -i,指定输入视频路径;

    -codec copy,填上该参数可以省去解码和编码的过程,使视频格式转换更快,如果加上这个参数时有报错,可以把这个参数去掉;

    testfile.flv,是输出视频路径;

    2. 视频裁剪

    命令:ffmpeg -i testfile.mp4 -ss 00:01:10 -t 10 testfile_v2.mp4

    命令解析:

    -i,指定输入视频路径;

    -ss,表示拖动到某一个时间位置,格式为:时:分:秒;

    -t,表示限制从输入文件读取数据的时长,单位为 s;

    testfile_v2.mp4,输出视频路径;

    3. 视频合并

    命令:ffmpeg -f concat -i input.txt testmerge.mp4

    命令解析:

    -f,指定输入或输出的file format,concat是format的其中一种,表示合并

    -i,指定数据的数据源,input.txt 指定了两个文件的路径,格式为 file absolutefilepath,如下所示:

    file D: estfile_1.mp4

    file D: estfile_2.mp4

    testmerge.mp4,输出视频路径;

    常见问题解决

    (1)视频格式转换时,报错Too many packets buffered for output stream

    原因是有些视频数据有问题,导致视频处理过快,容器封装时队列溢出,解决办法是增加容器封装队列大小,比如在命令之后增加一个参数

    -max_muxing_queue_size 1024

    作者:ModelArts大赛

  • 相关阅读:
    查找具有特定属性的元素 (XPath-LINQ to XML)
    Docker环境中部署DzzOffice 1.2.5.2
    如何使用DockerHub官方的mysql镜像
    以Tomcat+Mysql为例,实现Docker多容器连接
    基于Ubuntu 14.04构建mysql5.6 Docker镜像
    如何让Docker容器随宿主机的启动而自动启动
    Docker 常用命令
    基于Ubuntu 14.04构建tomcat7镜像
    Dockerfile的书写规则及指令使用方法
    Ubuntu14.04 安装Oracle JDK
  • 原文地址:https://www.cnblogs.com/2020-zhy-jzoj/p/13165086.html
Copyright © 2011-2022 走看看