镭速可以支持视频预览,在测试过程中需要大量不同格式的视频,如果直接去找各种格式的视频不太现实,所以就会用到一个视频格式转换的工具ffmpeg,本文将介绍ffmpeg的基本使用方法。FFmpeg 是一个免费开源的音视频处理工具,可以进行音视频转码、剪辑、合并、分割等操作。它不仅功能强大,而且跨平台,适用于各种操作系统,包括 Windows、Linux 和 macOS。
介绍ffmpeg工具之前先了解一些视频处理的基本概念
1.概念
1.1容器
视频文件本身是一个容器(container),包含视频、音频和可能的字幕等内容。常见的容器格式通常可以通过文件的后缀名来识别。
查看ffmpeg支持的容器可以使用 ffmpeg -formats 命令查看。
1.2 编码格式
视频和音频需要进行编码才能保存成文件。不同的编码格式(CODEC)具有不同的压缩率,从而导致文件大小和清晰度的差异。
常见的视频编码格式:h.264、h.265、mpeg-2、mpeg-4。
常见音频编码格式:MP3、AAC
1.3 编码器
编码器(encoders)是用来实现特定编码格式的库文件。只有安装了相应格式的编码器,才能进行该格式的视频/音频编码和解码。以下是一些常见的内置于 FFmpeg 的视频编码器。
libx264:最流行的开源 H.264 编码器
NVENC:基于 NVIDIA GPU 的 H.264 编码器
libx265:开源的 HEVC 编码器
libvpx:谷歌的 VP8 和 VP9 编码器
libaom:AV1 编码器
3.ffmpeg常用命令
3.1查看本地的视频信息
ffmpeg -i 查看的视频
fps:表示平均帧率,总帧数除以总时长(以s为单位)。
tbr :表示帧率,该参数倾向于一个基准,往往tbr跟fps相同。
tbn: 表示视频流
tbc : 表示视频流
yuv420p: 电视行业的颜色编码方法
avc1:mp4视频格式封装的avc1编码格式(是不带起始码的H264编码格式)
acc:音频编码格式(Advanced Audio Coding,高级音频编码)
3.2转FPS
Ffmpeg --i 待转视频 -r 帧数 转换后的视频
3.3视频格式转换
比如一个avi文件,想转为mp4,或者一个mp4想转为avi。
ffmpeg -i input.avi output.mp4
ffmpeg -i input.mp4 output.avi
3.4提取音频
ffmpeg -i test.mp4 -acodec copy -vn output.aac
上面的命令,默认mp4的audio codec是aac,如果不是,可以都转为最常见的aac。
ffmpeg -i test.mp4 -acodec aac -vn output.aac
提取视频
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
3.5视频剪切
参数:-ss表示开始切割的时间 、-t表示要切多少。
下面就是从15秒开始,切5秒钟出来,下面的命令,可以从时间为00:00:15开始,截取5秒钟的视频。
Ffmpeg -ss 00:00:15 -t 00:00:05 -i D:\otherVedio\IOSvedio2.mp4 D:\otherVedio\IOSvedio2-截取3秒.avi
或者
ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4
3.6码率转换
-b:v主要是控制平均码率。
比如一个视频源的码率太高了,有10Mbps,文件太大,想把文件弄小一点,但是又不破坏分辨率。
ffmpeg -i input.mp4 -b:v 2000k output.mp4
3.7视频编码格式转换
比如一个视频的编码是MPEG4,想用H264编码
ffmpeg -i input.mp4 -vcodec h264 output.mp4
3.8分辨率转换
Ffmpeg -- i 原视频文件 -s 360x640 新视频文件
以上只是简单介绍了ffmpeg的简单用法,测试过程中主要用于转换不同编码格式、不同分辨率、不同码率等的视频文件。总之,ffmpeg 是一个非常强大的音视频处理工具,具备处理各种音视频格式、进行剪辑和编辑、音频处理、视频编解码、流媒体传输、视频分析和处理等多种功能,适用于各种音视频处理需求。