ffmpeg 视频教程,ffmpeg使用教程,FFmpeg视频处理入门教程(新手必看)

ffmpeg 视频教程,ffmpeg使用教程,FFmpeg视频处理入门教程(新手必看)

主要介绍FFmpeg视频处理入门课程,功能强大,应用广泛。它是许多音视频格式的标准编解码实现,具有一定的参考价值。感兴趣的朋友可以参考一下。

目录

I、概念1.1容器1.2编码格式1.3编码器II、FFmpeg III的使用格式、常用命令行参数IV、常用用法4.1查看文件信息4.2转换编码格式4.3转换容器格式4.4调整比特率4.5变换)4.6提取音频4.7添加音轨4.8截图4.9剪辑4.10添加音频V的封面、参考链接FFmpeg是视频

它功能强大,用途广泛,广泛应用于视频网站和商业软件(如Youtube和iTunes)。它也是许多音频和视频格式的标准编码/解码实现。

FFmpeg本身是一个庞大的工程,包含很多组件和库文件,其命令行工具是最常用的一个。介绍FFmpeg命令行如何处理视频,比桌面视频处理软件更简洁高效。

如果还没有安装,可以先按照官方文档完成安装。

一、概念

在介绍FFmpeg的用法之前,我们需要了解一些视频处理的基本概念。

1.1 容器

视频文件本身其实就是一个容器,里面有视频和音频,可能还有字幕等内容。

常见的容器格式如下。一般来说,视频文件的后缀反映了它的容器格式。

MP4MKVWebMAVI

以下命令查看FFmpeg支持的容器。

$ ffmpeg-格式

1.2 编码格式

视频和音频都需要编码后才能保存为文件。不同的编解码器,不同的压缩率,会导致文件大小和清晰度的差异。

常用的视频编码格式如下。

262

264

265

以上所有编码格式都是有版权的,但是可以免费使用。此外,还有几种不受版权保护的视频编码格式。

VP8

VP9

AV1

常用的音频编码格式如下。

MP3文件

加气混凝土

以上都是有损编码格式,编码后会丢失一些细节,换取压缩后文件更小。无损编码格式压缩的文件比较大,这里就不介绍了。

以下命令可以查看FFmpeg支持的编码格式,包括视频编码和音频编码。

$ ffmpeg-编解码器

1.3 编码器

编码器是实现某种编码格式的库文件。只有安装了某种格式的编码器,才能实现该格式的视频/音频的编码和解码。

这里有一些内置在FFmpeg中的视频编码器。

Libx264:最流行的开源H.264编码器NVENC:基于NVIDIA GPU的H.264编码器libx265:开源HEVC编码器libvpx: Google的VP8和VP9编码器libaom:AV1编码器

音频编码器如下。

lib fdk-AAC AC

以下命令可以查看已安装的FFmpeg编码器。

$ ffmpeg-编码器

二、FFmpeg 的使用格式

FFmpeg的命令行参数很多,可以分为五个部分。

$ ffmpeg {1} {2} -i {3} {4} {5}

在上面的命令中,五个部分的参数如下。

全局参数输入文件参数输入文件输出文件参数输出文件

当参数过多时,ffmpeg命令可以写成多行,以便于查看。

$ ffmpeg

[全局参数]

[输入文件参数]

-I[输入文件]

[输出文件参数]

[输出文件]

下面是一个例子。

$ ffmpeg

-y #全局参数

-c: alifbdk _ AAC-c: vlibx264 #输入文件参数

-I input.mp4 #输入文件

-c:v libvpx-vp9 -c:a libvorbis #输出文件参数

Output.webm #输出文件

上面的命令将mp4文件转换成webm文件,这两种文件都是容器格式的。输入mp4文件的音频编码格式为aac,视频编码格式为H.264:输出webm文件的视频编码格式为VP9,音频格式为Vorbis。

如果没有指定编码格式,FFmpeg会自己判断输入文件的编码。因此,上述命令可以简单地编写如下。

$ ffmpeg-I input . avi output.mp4

三、常用命令行参数

FFmpeg常用的命令行参数如下。

-c:指定编码器-c copy:直接复制,不需要重新编码(这样更快)-c:v:指定视频编码器-c:a:指定音频编码器-i:指定输入文件-an:删除音频流-vn:删除视频流-preset:指定输出视频质量,会影响文件生成速度。有以下可用值:超快、超快、非常快、更快、快、中等、慢、慢、非常慢。-y:不经确认输出时直接覆盖同名文件。

四、常见用法

以下是FFmpeg的一些常见用法。

4.1 查看文件信息

要查看视频文件的元信息,如编码格式和比特率,只能使用-i参数。

$ ffmpeg-I input.mp4

上面的命令会输出很多冗余信息,加上-hide_banner参数,只能显示元信息。

$ ffmpeg-I input.mp4-隐藏_横幅

4.2 转换编码格式

转码是指将视频文件从一种编码转换为另一种编码。比如编码器libx264一般用于H.264编码,你只需要指定输出文件的视频编码器。

$ ffmpeg-I[input . file]-c:v libx 264 output.mp4

下面是如何用H.265代码写的。

$ ffmpeg-I[input . file]-c:v libx 265 output.mp4

4.3 转换容器格式

传输指的是将视频文件从一个容器传输到另一个容器。下面是如何把mp4写到webm。

$ ffmpeg-I input.mp4-c复制输出. webm

在上面的例子中,只旋转了容器,内部编码格式保持不变,所以使用-c copy指定直接复制,不需要转码,速度更快。

4.4 调整码率

速率转换是指改变编码的比特率,通常用于降低视频文件的音量。以下示例指定最小码率为964K,最大码率为3856K,缓冲区大小为2000K。

$ ffmpeg

-我是input.mp4

-min rate 964k-maxrate 3856k-bufsize 2000k

output.mp4

4.5 改变分辨率(transsizing)

以下是将视频分辨率从1080p更改为480p的示例。

$ ffmpeg

-我是input.mp4

-vf标度=480:-1

output.mp4

4.6 提取音频

有时,需要从视频中提取音频(demuxing),可以这样写。

$ ffmpeg

-我是input.mp4

-vn -c:副本

输出. aac

在上面的例子中,-vn表示删除视频,-c:a copy表示不改变音频编码直接复制。

4.7 添加音轨

复用是指给视频添加外部音频,如背景音乐或旁白。

$ ffmpeg

-I input . AAC-I input.mp4

output.mp4

在上面的例子中,有两个输入文件,音频和视频,FFmpeg将它们合并成一个文件。

4.8 截图

下面这个例子是从指定时间开始连续截图一个1秒的视频。

$ ffmpeg

-y

-我是input.mp4

-ss 00:01:24 -t 00:00:01

output_=。使用jpeg文件交换格式存储的编码图像文件扩展名

如果只需要剪切一张图片,您可以指定只剪切一帧。

$ ffmpeg

-第01章第23节第45分

-i输入

-vframes 1 -q:v 2

output.jpg

在上面的例子中,-vframes 1指定只截取一帧,-q:v 2表示输出画质,一般在1到5之间(1为最高画质)。

4.9 裁剪

剪切是指从原始视频中剪切出一个片段,作为新视频输出。您可以指定开始时间(start)、持续时间(duration)或结束时间(end)。

$ ffmpeg-ss[开始]-I[输入]-t[持续时间] -c复制[输出]

$ ffmpeg-ss[开始]-I[输入]-to[结束]-c copy[输出]

下面是一个实际的例子。

$ ffmpeg-ss 00:01:50-I[输入] -t 10.5 -c复制[输出]

$ ffmpeg-ss 2.5-I[输入]-到10 -c拷贝[输出]

上面的例子,-c copy就是直接拷贝,不改变音视频的编码格式,这样会快很多。

4.10 为音频添加封面

有些视频网站只允许上传视频文件。如果你想上传一个音频文件,你必须给音频加一个封面,把它变成视频,然后再上传。

以下命令可以将音频文件转换成带封面的视频文件。

$ ffmpeg

-回路1

-我cover.jpg-我输入. mp3

-c:v libx264 -c:a aac -b:a 192k最短

output.mp4

在上面的命令中,有两个输入文件,一个是封面图像cover,另一个是音频文件input . MP3-loop 1参数表示图片无限循环,而-shortest参数表示音频文件结束,输出视频结束。

五、参考链接

FFmpeg libav教程

数字视频简介

FFmpeg编码和编辑课程

使用FFMpeg制作幻灯片

在Linux中使用ffmpeg的完整指南

以最简单的方式为视频添加字幕

这篇关于FFmpe视频处理入门课程的文章就到此为止(新手必看)。更多相关FFMPE介绍内容,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

ffmpeg 视频教程,ffmpeg使用教程,FFmpeg视频处理入门教程(新手必看)