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

学习目标

  • 了解 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 图标:

在这里插入图片描述
之后再点击 Windows build ****:
在这里插入图片描述
随后找到对应的文件:
在这里插入图片描述
随后下载完毕后解压,解压之后的文件夹打开发现有一个bin目录,进入bin 目录后发现有如下 exe 工具:

在这里插入图片描述

2.2 环境配置

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

在这里插入图片描述
在系统环境中找到 path:

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述
若没有配置,将会找不到命令。

三、FFmpeg play 初尝试

3.1 简单使用 FFmpeg 的 play 播放器

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

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

在这里插入图片描述
接着,我们可以通过 dir 查看当前目录下的文件内容:

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述
此时在 dos 窗口中我们可以观察到对应的播放信息:

在这里插入图片描述
播放时,可以按 esc 键对应的退出播放。

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述
在此打开,我们可以看到很多的帮助信息,在此我们先拉到最下面(这部分是播放时可通过某些按键发出指令进行操作的部分):

在这里插入图片描述
此处的帮助信息是对应操作 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 文本中,可以查找后看到对应的参数:

在这里插入图片描述

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

在这里插入图片描述

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

指定播放窗口大小

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

在这里插入图片描述

其他设置参数

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

命令功能
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 ,播放效果如下:

在这里插入图片描述

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

在这里插入图片描述
不过你可能对于长视频的秒数并不感冒,那么此时还可以对应的指定多少分多少秒(格式为:00:05:15)进行播放,例如命令 ffplay -x 400 -y 400 -ss 00:05:15 jsgd.mp4 ,播放效果如下:

在这里插入图片描述
若你只想播放一个视频固定时间,例如你指向播放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 工具的安装和使用。由于本章节是第一章,主要通过 ffplay 学习 FFmpeg 工具的使用方法,并且学习了 ffplay 对视频文件的播放设置,通过本章节的学习为之后 FFmpeg 的使用奠定基础。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速掌握 ASP.NET 身份认证框架 Identity - 用户注册

推荐关注「码侠江湖」加星标,时刻不忘江湖事这是 ASP.NET Core Identity 系列的第二篇文章,上一篇文章介绍了 Identity 框架的集成,以及一些基础知识。这篇文章讲一讲如何在 ASP.NET Core Identity 中实现用户注册。点击上方或后方蓝字&#…

【GIS风暴】30米分辨率地表覆盖数据GlobeLand30原始数据集简介及下载地址

数据集预览: GlobeLand30是30米空间分辨率全球地表覆盖数据,目前可供下载使用的有3年的数据:2000-2010-2020,本文主要讲述GlobeLand30的官网下载地址和数据集简介。 数据处理方法、成果数据下载: 【ArcGIS风暴】ArcGI…

一、基础折线图详解《手把手教你 ECharts 数据可视化详解》

注:本系列教程需要对应 JavaScript 、html、css 基础,否则将会导致阅读时困难,本教程将会从 ECharts 的官方示例出发,详解每一个示例实现,从中学习 ECharts 。 ECharts 官方示例:https://echarts.apache.o…

NLog自定义Target之MQTT

NLog是.Net中最流行的日志记录开源项目(之一),它灵活、免费、开源官方支持文件、网络(TCP、UDP)、数据库、控制台等输出社区支持Elastic、Seq等日志平台输出实时日志需求在工业物联网等特定场景下需要实时获取日志信息工业物联网领域常用的是mqtt协议那我们就使用NL…

2016-1-27

2019独角兽企业重金招聘Python工程师标准>>> 1.前端的三大技能:1.1.描述网页内容html 1.2.描述网页样式css 1.3.描述网页行为js2.html和jsp区别在于静态和动态..bootsharp是目前比较火爆的css..angular是目前比较火爆的js.3.单点登陆(SSO):登陆一次就可以访问所有相…

【ArcGIS风暴】ArcGIS生成GlobeLand30土地利用数据集中国区域行列号shp格式对照图(附shp下载)

效果预览: 本文主要讲述了在ArcGIS中生成GlobeLand中国区域对照行列号的shp格式矢量数据,用途在于将自己的研究区跟行列号矢量图层直接叠加显示,快速找出自己所需要的图幅号,便于快速下载数据。同时为了方便使用,本文提供了对照图的下载。 文章目录 1. 创建文件数据库2. 创…

Android 节操视频播放器jiecaovideoplayer自定义播放音频使用:屏蔽全屏按钮,增加倒计时,当前时间/总时间

一、屏蔽全屏按钮 找到JCVideoPlayerStandard.java文件中的代码: private void fixAudio() {if (SrcType.equalsIgnoreCase("Audio")) {//如果是音频,始终显示coverImageView//thumbImageView.setVisibility(View.VISIBLE);coverImageView.se…

一、Qt初尝试,做一个QT计算器《QT 入门到实战》

学习目标 了解 qt 的基本信息了解 qt 的下载及安装了解创建一个基本 qt 项目的流程了解信号与槽通过示例了解信号与槽的设置与编写了解控件添加的方式了解控件如何使用代码获取其文本了解控件如何使用代码设置其文本使用 connect 自定义信号与槽了解使用样式修饰控件外观了解使…

VS C#语言获取输入名称的汉语拼音简拼码和全拼码完整案例教程

结果预览: 扩展阅读: SQL语言获取拼音码:SQL Server编写函数获取汉字的拼音码(简拼) 文章目录 1. 拼音码类编写2. 界面设计3. 前端调用4. 结果展示1. 拼音码类编写 打开Visual Studio,新建一个Winform项目,再添加一个类文件,命名为PYM。 键入如下代码: using Syst…

SSIS 执行变量中的脚步输出列顺序与SQL查询列顺序不同

这个问题是朋友遇到的,做一个SSIS的程序将数据导入到txt。然后再用Oracle的工具导入到Oracle。但是在SSIS中执行变量脚步的时候,发现输出的列名称跟查询的列名称完全不同。比如Schema_id在查询的第三列,但是输出的时候到了第6列。 如图&#…

【ArcGIS风暴】ArcGIS自定义坐标系统案例教程---以阿尔伯斯投影(Albers)为例

在实际工作中,经常需要进行矢量数据或栅格数据的投影转换工作,但有时候ArcGIS中恰恰没有我们需要的坐标系,此时,就需要我们自定义坐标系。本文以阿尔伯斯投影(Albers)为例,讲解自定义投影的一般过程及注意事项。 文章目录 1. 确定投影名称2. 选择投影坐标系及修改参数4.…

Unity5 GI与PBS渲染从用法到着色代码

本文主要介绍Untiy5以后的GI,PBS,以及光源探头,反射探头的用法以及在着色器代码中如何发挥作用,GI是如何影响渲染的,主要分成三个部分,最开始说明PBS需要的材质与相应概念,二是Unity 里相应GI的…

Blazor University (31)表单 —— 验证

原文链接:https://blazor-university.com/forms/validation/验证源代码[1]DataAnnotationsValidator 是 Blazor 中的标准验证器类型。在 EditForm 组件中添加此组件将启用基于 System.ComponentModel.DataAnnotations.ValidationAttribute 的 .NET 属性的表单验证。…

CSDN,CNBLOGS博客文章一键转载插件 终于更新了!

之前,Shawn Chou等朋友一直建议插件支持cnblogs文章转载,但一直没时间修改插件,今天晚上抽时间将插件进行了升级,可以支持 CSDN,CNBLOGS博客文章的一键转载。时间仓促,难免有各种问题,欢迎提出建议&#xf…

ROS2_Control官方资料+运动控制

Getting Started — ROS2_Control: Rolling Dec 2023 documentation Getting Started Edit on GitHub Youre reading the documentation for a development version. For the latest released version, please have a look at Iron. Getting Started Installation Binar…

三、教你搞懂渐变堆叠面积图《手把手教你 ECharts 数据可视化详解》

注:本系列教程需要对应 JavaScript 、html、css 基础,否则将会导致阅读时困难,本教程将会从 ECharts 的官方示例出发,详解每一个示例实现,从中学习 ECharts 。 ECharts 官方示例:https://echarts.apache.o…

试用了多款报表工具,终于找到了基于.Net 6开发的一个了

Part1前言上一个月有一个项目需要用到数据分析,将老板感兴趣的数据给他整理成一个面板,方便他实时查看,于是自己了解到了BI,当时我们项目就用了metabase,metabase是一款开源的BI分析工具,开发语言clojureReact为主。就…

4种CSS文字竖排方法

2019独角兽企业重金招聘Python工程师标准>>> 有时候,我们需要对网页某个区域的文字竖排,竖向排列,横向的当然大家都见惯了,对于竖排,一时间找不到思路了,呵呵,其实和横排一样简单&am…

【ArcGIS风暴】ArcGIS10.6创建LAS数据集的两种方法并加载点云数据

文章目录 1. 使用上下文菜单创建 LAS 数据集2. 使用地理处理工具创建 LAS 数据集3. 显示LAS数据集LAS 数据集是位于文件夹中的独立文件,并且引用 LAS 格式的激光雷达数据和用于定义表面特征的可选表面约束要素。可使用创建 LAS 数据集工具或 ArcCatalog 中文件夹的上下文菜单快…

关于建立北京市专业技术人员职业资格与职称对应关系的通知

原文地址 http://www.bjrbj.gov.cn/xxgk/gsgg/201906/t20190605_82857.html 附件 北京市专业技术人员职业资格与职称对应表 (46项) 一、准入类职业资格 序号 资格名称 可聘专业技术职务 1 注册消防工程师 一级注册消防工程师:工程师 二…