FFmpeg——视频处理工具安装以及简单命令学习。

FFmpeg 是一个免费、开源且高度可定制的多媒体处理工具,它是一个强大的跨平台框架,用于处理音频、视频、多媒体流和图像。FFmpeg 的主要功能包括解码、编码、转码、流处理、多路复用、分离、合并、过滤等,支持多种音视频格式,包括但不限于MP4、AVI、MKV、MP3、H.264、H.265、AAC 等。

前往官网下载 Download FFmpeg

官方文档:ffmpeg Documentation(具体还有很多功能,可以查看官方文档学习)

安装

windows:

将下载的压缩包,解压缩

将\bin目录加到环境变量,添加后在黑窗口,查看是否有ffmpeg命令;

这样安装就ok了。

基础命令

1. 转码视频格式:

ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
  • -i input.mp4:指定输入文件为input.mp4,这是要重新编码的源视频文件。
  • -c:v libx264:指定使用libx264编码器来进行视频编码。libx264是一种高效的H.264视频编码器,通常提供高质量的视频压缩。
  • -c:a aac:指定使用AAC编码器进行音频编码。AAC是一种常见的音频编码格式,它在维持高音质的同时提供了较小的文件大小。
  • output.mp4:指定输出文件的名称为output.mp4,这是重新编码后的视频文件的保存位置。

2. 转码音频格式:

ffmpeg -i input.mp3 -c:a aac -b:a 256k output.m4a
  • -i input.mp3:指定输入文件为input.mp3,这是要重新编码的源音频文件。
  • -c:a aac:指定使用AAC编码器进行音频编码。这将重新编码音频文件为AAC格式。
  • -b:a 256k:指定音频的目标比特率为256Kbps。这将控制新生成的AAC文件的音频质量和文件大小。
  • output.m4a:指定输出文件的名称为output.m4a,这是重新编码后的音频文件的保存位置。

3. 剪辑视频:

ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 -c:v copy -c:a copy output.mp4
  • -i input.mp4:指定输入文件为input.mp4,这是要进行剪切操作的源视频文件。
  • -ss 00:01:00:这是用来指定开始时间点的选项。在这里,-ss后面的时间戳00:01:00表示从视频的1分钟处开始剪切。
  • -t 00:00:30:这是用来指定持续时间的选项。在这里,-t后面的时间戳00:00:30表示截取30秒的视频。
  • -c:v copy:这部分表示视频流将保持不变,不进行重新编码。 -c:v copy 意味着视频流会被直接复制到输出文件中,无需重新压缩视频。
  • -c:a copy:这部分表示音频流也将保持不变,不进行重新编码。 -c:a copy 意味着音频流会被直接复制到输出文件中,无需重新编码音频。
  • output.mp4:指定输出文件的名称为output.mp4,这是剪切后的视频文件的保存位置。

4. 合并多个视频

ffmpeg -i input1.mp4 -i input2.mp4 -filter_complex "concat=n=2:v=1:a=1" -c:v libx264 -c:a aac output.mp4
  • -i input1.mp4:指定第一个输入文件为input1.mp4,这是要合并的第一个视频文件。
  • -i input2.mp4:指定第二个输入文件为input2.mp4,这是要合并的第二个视频文件。
  • -filter_complex "concat=n=2:v=1:a=1":这是使用-filter_complex选项来应用复杂的滤镜图。在这里,concat=n=2:v=1:a=1 是一个复合滤镜,它告诉FFmpeg合并两个输入视频文件,n=2表示两个输入,v=1表示合并视频流,a=1表示合并音频流。
  • -c:v libx264:指定使用libx264编码器进行视频编码。这将重新编码合并后的视频。
  • -c:a aac:指定使用AAC编码器进行音频编码。这将重新编码合并后的音频。
  • output.mp4:指定输出文件的名称为output.mp4,这是合并后的视频文件的保存位置。

5. 改变分辨率

ffmpeg -i input.mp4 -vf "scale=1280:720" output.mp4
  • -i input.mp4:指定输入文件为input.mp4,这是要进行分辨率调整操作的源视频文件。
  • -vf "scale=1280:720":这是使用 -vf(视频滤镜)选项来应用视频滤镜。在这里,scale=1280:720 是一个视频滤镜,它告诉FFmpeg将视频重新缩放为1280x720像素的分辨率。
  • output.mp4:指定输出文件的名称为output.mp4,这是调整分辨率后的新视频文件的保存位置。

6. 同时转换多个视频文件

ffmpeg -i input1.ts -i input2.ts -i input3.ts -c:v libx264 -c:a aac output1.mp4 -output2.mp4 -output3.mp4

这个命令将依次处理每个输入文件(input1.ts、input2.ts 和 input3.ts),为每个输入文件分别创建一个输出文件(output1.mp4、output2.mp4 和 output3.mp4)。每次 -i 后面的输入文件都会对应一个 -c:v(视频编码器选项)和 -c:a(音频编码器选项),以确定每个输出文件的编码方式。

拼接视频方法

  1. 方法一:FFmpeg concat 协议

    对于 MPEG 格式的视频,可以直接连接:

    ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg

    对于非 MPEG 格式容器,但是是 MPEG 编码器(H.264、DivX、XviD、MPEG4、MPEG2、AAC、MP2、MP3 等),可以包装进 TS 格式的容器再合并。在新浪视频,有很多视频使用 H.264 编码器,可以采用这个方法

    ffmpeg -i input1.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input1.ts

    ffmpeg -i input2.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input2.ts

    ffmpeg -i input3.flv -c copy -bsf:v h264_mp4toannexb -f mpegts input3.ts

    ffmpeg -i "concat:input1.ts|input2.ts|input3.ts" -c copy -bsf:a aac_adtstoasc -movflags +faststart output.mp4

    保存 QuickTime/MP4 格式容器的时候,建议加上 -movflags +faststart。这样分享文件给别人的时候可以边下边看。

  2. 直接备注分辨率

    ffmpeg -i begin.mp4 -i mid.mp4 -i end.mp4 -filter_complex "[0:v]scale=1920:1080[0v];[1:v]scale=1920:1080[1v];[2:v]scale=1920:1080[2v];[0v][0:a][1v][1:a][2v][2:a]concat=n=3:v=1:a=1[v][a]" -map "[v]" -map "[a]" -c:v libx264 -c:a aac output.mp4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/265941.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[Angular] 笔记 7:模块

Angular 中的模块(modules) 是代码在逻辑上的最大划分,它类似于C, C# 中的名字空间: module 可分为如下几种不同的类型: 使用模块的第一个原因是要对代码进行逻辑上的划分,第二个非常重要的原因是为了实现懒惰加载(lazy loading)&…

OpenHarmony南向之Audio

音频架构 Audio驱动框架基于HDF驱动框架实现,包含内核态(KHDF),和用户态(UHDF), 对北向提供音频HDI接口 音频框架图 驱动架构主要由以下几部分组成。 HDI adapter:实现Audio HAL层…

Gradle - 安装、环境变量、配置国内源、常用命令

目录 一、Gradle 1.1、安装&环境变量 1.2、配置国内源 1.3、Gradle 项目文件介绍 1.4、Gradle 中的常用指令 一、Gradle 1.1、安装&环境变量 a)从 Gradle 官网下载对应的版本:Gradle | Releases 这里以 8.0 版本为例,下载附带…

01背包详解,状态设计,滚动数组优化,通用问题求解

文章目录 0/1背包前言一、0/1背包的状态设计1、状态设计2、状态转移方程3、初始状态4、代码实现5、滚动数组优化二维优化为两个一维二维优化为一个一维,倒序递推 二、0/1背包的通用问题求最大值求最小值求方案数 0/1背包 前言 0/1包问题,作为动态规划问…

什么是MVC?MVC框架的优势和特点

目录 一、什么是MVC 二、MVC模式的组成部分和工作原理 1、模型(Model) 2、视图(View) 3、控制器(Controller) 三、MVC模式的工作过程如下: 用户发送请求,请求由控制器处理。 …

少儿编程:从兴趣到升学的关键之路

随着科技的飞速发展,计算机编程已经逐渐渗透到我们生活的方方面面。对于新时代的少儿来说,掌握编程技能不仅可以开拓视野,提高思维能力,还可能成为他们未来升学和就业的重要砝码。6547网将探讨如何将少儿编程从兴趣培养成一种有力…

谷歌推大语言模型VideoPoet:文本图片皆可生成视频和音频

Google Research最近发布了一款名为VideoPoet的大型语言模型(LLM),旨在解决当前视频生成领域的挑战。该领域近年来涌现出许多视频生成模型,但在生成连贯的大运动时仍存在瓶颈。现有领先模型要么生成较小的运动,要么在生…

图像识别与人工智能到底是何关系?有何区别?

图像识别是人工智能领域的一个重要应用领域,它利用人工智能技术和算法来分析和理解图像内容。图像识别是使计算机能够模拟和理解人类视觉系统的能力,并从图像中提取出有用的信息和特征。 人工智能在图像识别中扮演着至关重要的角色,主要体现…

【Sass】网易云动画播放器

简介 仿网易云播放动画 效果图 sass src/assets/style/musicPlay.sass // TODO 音乐播放器动画 // ? 动画停止class >>> .muscic-play-stop // HTML结构 // <div class"music-play"> // <div class"bg-primary"></div>…

二级分销的魅力:无限裂变创造十八亿的流水

有这么一个团队&#xff0c;仅靠这一个二级分销&#xff0c;六个月就打造了十八亿的流水。听着是不是很恐怖&#xff1f;十八亿确实是一个很大的数字&#xff0c;那么这个团队是怎么做到的呢&#xff1f;我们接着往下看。 这是一个销售减脂产品的团队。不靠网店&#xff0c;不…

运行游戏显示缺少d3dx9_42.dll怎么办,三步即可完美解决

在我们使用电脑玩游戏&#xff0c;工作的时候&#xff0c;偶尔会遇到一些错误提示&#xff0c;其中之一就是缺少d3dx9_42.dll。这个错误通常出现在运行某些游戏或应用程序时&#xff0c;它表示计算机缺少了DirectX 9组件中的d3dx9_42.dll文件。为了解决这个问题&#xff0c;下面…

【接口测试】Postman(三)-变量与集合

一、变量 ​ 变量这个概念相信大家都不陌生&#xff0c;因此在这里我们不介绍了。主要说一下在Postman中有哪几类变量&#xff0c;主要包括以下四类&#xff1a; Global&#xff08;全局&#xff09; Environment&#xff08;环境&#xff09; Local&#xff08;本地&#xf…

python打开opencv图像与QImage图像及其转化

目录 1、Qimage图像 2、opencv图像 3、python打开QImage图像通过Qlabel控件显示 4、python打开QImage图像通过opencv显示 5、python打开opencv图像并显示 6、python打开opencv图像通过Qlabel控件显示 1、Qimage图像 QImage是Qt库中用于存储和处理图像的类。它可以存储多种…

微软官方镜像下载大全(windows iso 官方镜像)

原本只是想下一个Windows Server 2022中文版的镜像&#xff0c;后面发现要么就是慢得一批的某盘&#xff0c;要么就是磁力&#xff0c;我想直接下载简简单单&#xff0c;找了一圈没有找到。官网下载需要注册、登录乱七八糟&#xff0c;最终终于找到下载方法了&#xff0c;适用于…

大型语言模型,MirrorBERT — 将模型转换为通用词汇和句子编码器

大型语言模型&#xff0c;MirrorBERT — 将模型转换为通用词汇和句子编码器 一、介绍 BERT 模型在现代 NLP 应用中发挥着基础作用&#xff0c;这已不是什么秘密。尽管它们在下游任务上表现出色&#xff0c;但大多数模型在没有微调的情况下在特定问题上并不是那么完美。从原始预…

(一)深入理解Mysql底层数据结构和算法

什么是索引 索引是帮助MySQL高效获取数据的排好序的数据结构 数据结构有哪些 数据结构模拟网站&#xff1a;Data Structure Visualization 二叉树 不适合做自增ID的数据结构。如下示意图&#xff0c;假设采用二叉树作为表自增主键ID的数据存储结果如下&#xff1a;当查询i…

BUG记录——drawio出现“非绘图文件 (error on line 7355 at column 83: AttValue: ‘ expected)”

BUG现象 drawio出现“非绘图文件 (error on line 7355 at column 83: AttValue: ’ expected)”&#xff0c;如下图&#xff1a; 解决办法 这只是我自己摸索到的解决办法并不一定适用于所以人&#xff0c;对我是适用的。 首先用记事本打开损坏的drawio文件&#xff0c;如下 …

服务器经常死机怎么办?如何处理

关于服务器死机这一话题相信大家是不会陌生的&#xff0c;平时在使用服务器的过程中&#xff0c;或多或少都是会有遇到过。轻则耽误业务开展&#xff0c;重则造成数据丢失&#xff0c;相信每个人都不想碰到服务器死机的情况。下文我也简单的介绍下服务器死机的原因以及对应的预…

多个磁盘做软件raid并解决分区aligned对齐问题

centos 服务器验证创建软件raid10数据盘&#xff0c;该机器缺少raid硬件。只能做软件raid。 /dev/sdd至/dev/sdm共10块8T磁盘&#xff0c;做raid10&#xff1b; 步骤如下&#xff1a; &#xff08;第一步&#xff09;创建raid10 事先不需要对单个磁盘做分区 10个相同数据盘创…

第11章 GUI Page417~418 步骤五 支持方框 使用宏定义

运行效果&#xff1a; 原来的创建item的方式&#xff1a; 使用宏定义的方式&#xff1a;