一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

学习目标 了解 FFmpeg 学习 FFmpeg 工具的下载及环境配置 了解 FFmpeg 工具的使用方式 了解 FFmpeg play 的使用方法 了解 FFmpeg paly 的音量设置、窗口设置、音量设置等设置方法 一、了解 FFmpeg

FFmpeg 是一个音视频处理的工具,通过 FFmpeg 可以对视频进行旋转、缩小、添加水印、截图、添加马赛克、直播推流、转化音频等操作。

在使用 FFmpeg 前需要了解一些专业术语,例如容器、媒体流、数据帧(包)、编解码器、复用、解复用这些概念释义如下:

容器:容器是指一种特定格式的多媒体文件,例如 mp4、flv 文件等; 媒体流:媒体流一般是指时间轴上的连续的数据,这些数据是需要连续的,如一段音频数据、一段视频数据等; 数据帧:数据帧是指媒体流中的最小处理单元,例如很多张图片组成一段连续的视频,每一帧则是每一张图片; 编解码器:指对一个数据流进行变换的程序; 复用:把不同的流根据某种容器(mp4、flv)的规则集合在一起成为一个文件称为 复用; 解复用:解复用则是与复用相反,把一个文件中不同的流解析出来称之为 解复用; 二、下载及环境配置

在使用 FFmpeg 前我们需要下载 FFmpeg 工具以及对其配置环境,方便接下来的使用及开发。

2.1 下载

首先进入官网 https://ffmpeg.org/download.html 后,找到 Windows 下(本教程使用 win 作为基础开发环境),随后点击 win 图标:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

之后再点击 Windows build ****:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

随后找到对应的文件:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6 随后下载完毕后解压,解压之后的文件夹打开发现有一个bin目录,进入bin 目录后发现有如下 exe 工具:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

2.2 环境配置

下载 FFmpeg 工具之后,我们需要配置对应的环境变量,使其具备在 系统 中可直接进行调用。首先我们需要把当前 bin 目录作为一个系统环境目录,打开编辑系统环境窗口:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6 在系统环境中找到 path:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

随后复制对应的 bin 目录到 path 之中:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

配置这个目录目的是将该目录放到 path 后,当使用一些“工具” 或其他东西时,系统将会在已配置的目录下循环对应的“工具” 并执行对应的操作,例如我配置完毕后,打开 cmd 输入 FFmpeg -version 查看对应的 FFmpeg 版本,此时结果如下:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6 若没有配置,将会找不到命令。

三、FFmpeg play 初尝试

3.1 简单使用 FFmpeg 的 play 播放器

在使用 FFmpeg 的其他功能前,我们先从 FFmpeg 的 play 播放器入手,了解 FFmpeg 的使用方式,为之后的使用奠定基础。FFmpeg有一个 play 播放器,通过这个播放器我们可以播放对应的视频。

使用这个播放器我们需要使用命令行形式调用,在 dos 窗口中切换到对应目录下(当然你可以直接指定文件),在此切换到到视频文件目录是为了方便接下来的操作:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6 接着,我们可以通过 dir 查看当前目录下的文件内容:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

当前目录下有一个 jsgd 的 mp4 文件,在此我们通过 ffplay 命令可通过 FFmpeg 的播放器播放当前的视频文件:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

enter 键确认后,将会弹出播放窗口:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6 此时在 dos 窗口中我们可以观察到对应的播放信息:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6 播放时,可以按 esc 键对应的退出播放。

3.2 FFmpeg play 播放器的一些指令操作

接着我们了解一下这个 play 播放器如何进行操作,我们可以使用 ffplay -help 对这个 ffplay 播放器的所有指令进行查看:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

不过此时输出的内容过多,并不方便查看,我们可以通过命令 ffplay -help > ffplayHelp.txt 将输出的信息存储到对应的文本文件下:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

该命令会将对应的输出信息保存到指定的文件之中:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6 在此打开,我们可以看到很多的帮助信息,在此我们先拉到最下面(这部分是播放时可通过某些按键发出指令进行操作的部分):

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6 此处的帮助信息是对应操作 ffplay 播放器的一些手动指令,这些按键指令对应如下的表功能(在此我做了翻译):

按键指令 功能 q, ESC 退出 f 切换到全屏 m 开关静音 q, ESC 退出 9、0 分别减少和增加音量 /, * 分别减少和增加音量 a 循环当前节目中的音频通道 v 循环视频通道 t 循环播放当前节目中的字幕通道 c 循环项目 w 循环播放视频过滤器或显示模式 left/right 前进或后退10秒 down/up 前进或后退1分钟 page down/page up 前进或后退10分钟 right mouse click 右键在屏幕上拖动可以对应的拖动播放进度条 left double-click 左键双击全屏 s 逐帧播放

此时我们可以尝试以上所述命令对 ffplay 的作用。

3.3 FFmpeg play 播放设置

音量设置

在使用 ffplay 时还可以通过对应的命令提前设置播放参数。例如播放时,可能音量过大对用户并不友好,此时我们可以在播放前就设置对应的播放音量,此时需要使用 volume 参数,在我们导出的 help 文本中,可以查找后看到对应的参数:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

此时 volume 再 help 帮助中,所描述的是 “ 设置初始音量(从-900到0)(默认为0)”,那么此时我们设置一个 0 试试是否静音:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

此时再次输入命令后,enter 执行 视频并没有任何声音,测试成功。(由于音频无法用文本形式感知音量大小,在此也不再截图)

指定播放窗口大小

在使用 FFmpeg 时,若播放设备分辨率有局限,那么可以设置对应的 x、y 指定播放大小,例如命令:ffplay -x 400 -y 400 jsgd.mp4 。该命令设置视频大小为 400*400,此时输入命令后,播放窗口如下:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

其他设置参数

除了指定大小之外,还有以下命令(不限于)可以指定对应播放形式:

命令 功能 fs 全屏启动 an 禁用音频 vn 禁用视频只有音频 sn 禁用字幕 ss pos 指定位置开始播放,其中 pos 是定位的秒数位置 t duration 设置视频、音频的播放长度 video_size size 帧尺寸设置 nodisp 关闭图形化显示窗口(播放但不显示视频) noborder 播放无边框 loop number 设置播放循环次数 showmode mode 设置显示模式(0显示视频 1显示音频波形 2显示音频频谱) window_title title 设置窗口标题 vf filtergraph 设置视频滤镜 af filtergraph 设置视频滤镜 autoexit 播放完毕自动退出

例如 静音命令的使用命令为 :ffplay -x 400 -y 400 -an jsgd.mp4 。此时你使用命令播放视频后,视频将会静音播放。

若你禁用视频,则会只播放音频,命令为:ffplay -x 400 -y 400 -vn jsgd.mp4 ,播放效果如下:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

如果你想从某个位置(秒数)开始播放视频,那么此时直接使用 ss 命令定位到对应的秒数即可,命令为: ffplay -x 400 -y 400 -ss 60 jsgd.mp4,播放效果如下:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6 不过你可能对于长视频的秒数并不感冒,那么此时还可以对应的指定多少分多少秒(格式为:00:05:15)进行播放,例如命令 ffplay -x 400 -y 400 -ss 00:05:15 jsgd.mp4 ,播放效果如下:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6 若你只想播放一个视频固定时间,例如你指向播放10秒,那么此时可以使用 -t 命令,命令如:ffplay -x 400 -y 400 -ss 00:05:15 -t 10 jsgd.mp4,运行命令后,播放 10 秒后将会结束;

若你想指定多少分钟,但并不好计算时间,也可以使用时间格式进行指定的播放时间,例如:ffplay -x 400 -y 400 -ss 00:05:15 -t 00:00:05 jsgd.mp4:

一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6

总结

本章节主要讲解了 FFmpeg 工具的安装和使用。由于本章节是第一章,主要通过 ffplay 学习 FFmpeg 工具的使用方法,并且学习了 ffplay 对视频文件的播放设置,通过本章节的学习为之后 FFmpeg 的使用奠定基础。

免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:一、FFmpeg 的初尝试《FFmpeg 音视频开发基础入门到实战》-ffmpeg音视频开发实战6 https://www.yhzz.com.cn/a/9564.html

上一篇 2023-04-20 16:32:29
下一篇 2023-04-20 16:35:01

相关推荐

联系云恒

在线留言: 我要留言
客服热线:400-600-0310
工作时间:周一至周六,08:30-17:30,节假日休息。