粉丝6.5万获赞41.4万


做视频处理的应该都接触过 fmpeg, 它主要提供了三个工具,命令行工具,播放器工具以及多媒体流分析器,并且它提供了多个函数库。现在我们主要试用一下它的命令行工具。我们进入下载,然后温度死下,我们就选用点击温度死 下载 f m p e d 构件, 现在那文件大小是二百四十五兆,然后它里面主要包含了一些 id 的文件文档,以及一些预设,然后我们看一下文档, 啊,这个文档格式太丑了,我们看一下在线文档吧,在线的文档,嗯 嗯,它的一个主要的使用方式是 f f m p e g 加上一个全局的选项,呃,输入文件的选项,输入文件壁纸以及一些输出的选项, 一些视力,比如说 f m p d 输入 input 点 i v i, 输出 m p 四。然后我们进入到 id 音质文件里面,我们拷贝了一个 m p 四的视频,它的大小是三七兆,我们试着把它给压缩一下,变得更小一点。我们先播放一下,看一下, 让我们看一下原本视频 信息,他的文件大小是三十七兆,一些详细信息他是一九二零乘幺零八零的,然后我们把它给压缩一下,使用这个命令将一点 mp 四调整为幺二八零的宽度, 然后高是自适应视频质量的值是零到五一,我们取一个中间值吧,二十三,等他进行压缩, 压缩完成,我们看一下文件,可以看到,一是原本的是三十七兆,压缩了,压缩到了二十四兆,然后我们看一下详细信息,原本的是一九二零,我们改为了一二八零,其他信息也做了一个相应的更改,然后我们再播放一下,看一下有没有什么区别, 可以看到播放质量其实并没有太大的区别,其实我们有一个非常重要的一个需求,就是说 当我们将视频放到网页上的时候,直接放 m p 四文件,其实访问下来的时候,它的响应速度是很慢,所以我们一般会将 m p 四文件进行切片,我们现在来操作一下 f f m p e g 呃杠 i 输入一点 m p 四, 将它输出三点 m 三 u 八合适的, 当它输入三列 m 三幺八的时候,其实它就会切片成多个文件格式,每个文件格式大概 其实一个也才一兆,当然也可以进行自定义。当格式转化成功之后,我们可以看到它生成了三点 m 三幺八,然后生成了这么多的 ts 文件,我们看能不能播放一下, 这也就完成了切片。这样我们将已经切片完成的视频文件放入到网站的时候,我们就可以啊享用速度会变得很快,就不用就说非常卡顿了,到此结束吧。

qq 影音、暴风影音、 pop player 格式工厂啊,这些我们耳熟能详的音视频软件呢,都曾经被 f f n pag 挂在了耻辱柱上,那么 f f n pack 究竟是个什么东西呢?凭什么把它们挂在耻辱柱上呢? 大家好,这里是差评硬件部,我是二狗,今天呢,我们就来聊一聊撑起繁荣音视频世界的幕后工程 f f n pack fmpag 呢,是一个非常强大的音视频编解码开源库啊,目前呢,大部分的播放器都是基于此开发的。两千年法国程序员 february speller 发起了 fmpag 的项目,他极大的加快了音视频行业的发展。 要知道啊,播放某段视频软件所需要做的,首先要支持某种容器,然后呢,把视频流、音频流等内容从容器中分离出来,然后进行解码渲染,用户才能播放出视频、音频等内容。 世界上有着茫茫众多规格的编码格式,做一个播放器就意味着需要对这些东西啊吃的比较透,那这无疑是相当费时费力的。但是呢, iphone pad 几乎能播放所有的内容啊,它就像一个万能的程序,大部分编码、解码、转码、格式转换哎,都能做到。 无论是电子包浆的古老格式,还是最新的饰品格式, f fm pad 都能驾驭,几乎能播放所有内容。于是呢,大部分播放器都倾向于选择 f fm pad。 当然了,它最厉害的地方呢,拒绝了巨大的商业前景诱惑啊。 fmpag 在推出后呢,遵循 gpl 协议,将其整个项目的程序和代码 开源了,任何人啊,都可以免费使用。但是呢,如果你用 iphone pag 魔改出某个有用的程序,那么你的这段代码也得开源,比如早期大家经常用的 qq 影音和暴风影音等啊,他们的内盒其实都是 f m pag, 然后呢,大厂再拿过来根据需求增加功能或者本土化一下就可以打包发布了啊。还有我个人很喜欢用的 paplair v l c 播放器啊,简单好用,功能齐全。内盒也是 f m pag, 那他能被广泛应用啊,除了他真的强大且开源,还有一个重要原因是他最初是在雷尼克斯环境下开发的,那移植起来呢,并不麻烦, 你可以在 windows 系统上看到它啊,比如视频处理软件亏 cut。 那在安卓系统中也有 x fmpag 这种基于 fmpag 和 openscl 等编译的音视频处理框架啊,真就散食满天星。 讲道理呢,视频到这就快结束了,然而 f fmpeg 当年还作为一个非常经典的乐子姓王, hall of shame 耻辱著名单。他们在官网呢, 整了个耻辱柱啊,把那些白嫖 ffp pag 却又不遵循 gpl 协议,不公开自己代码的软件和企业名字,哎,挨个挂出来直接公开出行, qq 语音,暴风语音还有格式工厂啊,就在这个耻辱柱名单里面。 那这东西主打的就是一个精神攻击是吧?隔着大半个地球嘲讽一下你其实也合情合理。二十多年过去了, fmpag 至今依然在不断更新,并且呢,可以在官网下载源代码,可以说是当代良心典范。而人家把这么好的东西免费给大伙用,你反而不开源啊,吃相确实难看点。

各位朋友,我是从选老料,有朋友后台私信我问我有没有这个带界面的播放器推荐,那这里就给他去重给他们找一个就是新比较多的一个看项目, 这这边是通过 q t 加 ipad 那个实验那个光器。好,这边我们先看对那个界面是怎么样的。 大家看到这个工程,现在我已经有加载到 qq 界面,那现在我们按启动把这个项目把它跑起来, 我们可以先看对那个界面讲这个界面之前呢我再声明一下这个版权的问题啊,这个是从 k 号找了一个项目,等下我会把对应地址告诉大家啊,大家,这边是 我这里这个本地啊,这个代码已经改过,这边是有添加对倍数的一个支持,但就是如果你能实现对那个倍数,那你这边你在找工作 的时候,那对于面试官来讲,哎,你这个 boss 你知道怎么去做这个倍数,那还是比其他一些人会 ok 一点点就好一点点,是不是?好,这边我们可以看看 看对应一些功能。我们先来看看这个界面了,大家可以看到这个时候会提示就是我们这个帮词员名字,这边是一个 player demo。 好,这边还有对应的就是可以去传屏啊等等,这边还有一些最小 最大化,最小最大,这边还有退出,那这边有我们对联播放列表都是可以隐藏起来。好,这边可以去添加文件,都是可以添加的,可以稍微加进来啊,随便加进来,大家可以看到对应的这里又加一个文件进来,那这边我可以先稍微看看 他点一点。好,这边可以做一些暂停, 声音有点大, 这一百多年把声音调小一点点看,我是做了一个拖动播放。好,这边可以做一个变速播放,可我是活着的,而且我有四十年, 大家可以看到这边是有支持队那个变数的,建国前有一些穷人为了活下去他们会好,这边我们可以看到就是我说变数他一样是可以拖动于播放。奇怪驴,好,这边可以稍微停止一下, 那这里呢?我们会上面下一个去播放,大家看到没有,就是往前面一个, 后面一个都是可以去选择的,这边就是如果你选到选择的这个二倍数,那后续在播放的时候他也是比较快啊。这边可以看到,对于来讲这里也是会显示就当前我们播放的一个时长,然后右边是一个肿的一个时长,还有需要朋友要去江上苗是吧? 这里好,这里边丢出句话就出现眼熟,往这边先暂停一下,大家看到就是这两个角是当前时长,还有一个总的时长都是可以显示的,所以大家可以看到就是这个项目来讲呢,就是你写到简历里面还是比较 ok。 等一下我会给大家去讲讲大字这个代码它一些啊文件分布,给大家讲讲大字一个逻辑。 好,这边还是来看看我们对应的思维导图啊,大家可以看到就是这里会讲到就是项目的来源,刚才讲的这个版权是归原作者所有, 我这边我只是做一个推荐啊,这边也是给出来对应 ketabo 的一个链接啊,当然你这边的可以直接 ketabo 里面搜索这个 player demo, 但是我这边我再强调一下,就是我现在我下载本地,我是有把对于那些 ipadme 有一些库文件已经就是直接加到就是我们对应这个项目里面。 比如说就是你如果就是在评论区留言的话,是可以把对应这个项目这个 ipad 里面有一些库文件就直接发给大家,这边我们已经有加了对应 ipad 的版本。 好,对面就是这里有对于 ipad 这些动态库,就是这些动态库呢,就是由我们在运行的时候要考虑到哪里呢?这边呢可以在这个就是 paradem 里面哦,这边就是由我们把这个 q t 把它刨残后,这边有一个 bill q t pale demo 这样一个目录,那我们是可以把对于那些动态库就拷贝到当前那个 build pale demo 这个目录里面,就是刚才我为什么 不考进来他也可以呢?因为这些动态库我已经拷贝一份到就对那个 windows 目录里面去了,所以这样子就是我当前演刚才演示的时候, 我就不需要把它加进来。但是呢就是大家就是拿到这个项目啊,就是你在跑的时候就通过一个 q t, 然后这个名爵 w 三二这个编辑器去编一个项目的时候呢,一定要记得就是把这个 d l 就是我们运行时库把它加载到你对那个 bill 这个目录里面来, 这样子就是你才能真的把这个项目跑起来。好,这边是我们讲就是怎么去跑这个项目,这里要注意一下。好,这边我要再强调一点啊,就是我们现在这个项目我们是通过 这个明珠 w 三二这个编一起,比如说你这边你安装 qq 的时候呢,就不管你是安装五点幺零的版本,还是掐一些版本,你的腰坠就选择这个明珠 w 三二这个编一起,那这样子才来比较好的去适配,就当前就是我这边就给他准备好了一个库文件。 好,那这边你就是再往上看,就对这个项目的一些功能刚才已经做了一个简单的讲解,这边会涉及到对应一个播放功能,暂停功能,还有前一个文件后一个文件播放,对应一个变数啊,对应音量控制,还有刚才讲就是我们拖动到某个位置播放 好,这个时间显示就显示当前的时间,还有总的一个时长。好,这边呢他有支持传屏的,还有支持支持音乐拉伸。好,这边我们再试一下刚才讲这个传屏,来演示一下 他怎么去支持这个传屏呢?我这边找个,我这边就开始正上课,今天有大老师给大家讲课,把声音调小一点给大家讲,讲好,这边可以按传屏,大家看到没有?然后这边我们怎么退出来了?你按 inter 键,大家一定要注意,现在是按了一个 inter 键,然后退出这个 产品,这边我再强调一下,就是你不要去双击啊,双击不一定退了出来啊,然后点这个产品。好,就是刚才讲这个啊,产品一个问题,然后这边我们讲拉伸,这边是可以去做拉伸,这个时候我们可以看到这个播放界面,他是可以支持这些大小,所以这一点大家也要特别注意下, 也说就是你可以把这个项目写到简历里面,是没有问题的啊,这边就再继续往上面讲, 那刚才讲究怎么说把这个项目快速跑起来,刚才我已经给他稍微演示一下,这边我再给他宠物一下,有很多朋友就是拿到项目原码后呢,就是跑不起来,那边讲就是使用现场这个 ipadville, 还有 s d l 酷文件,就是我们现在就是我提供了酷文件,是三十 ov 的版本。再强调一下,就对应这个目录 里面,大家看到这边对应的一些啊, libral 就是对应的这个库文件,然后对应来讲就是我们刚才 s d l 二的,这边我们也是有对应的叉八六, 就是我们现在是用了叉六的一个版本,就是我们三十二位的,那刚才讲的是对应的这个动态库,就在我们这个 dl 这个目录,就是我再给大家强调一下,有很多朋友确实拿到这个代码就跑不起来,实际上来讲呢,就是科萨就没有注意啊,我讲的这个方法 好,这边大家就需要注意一下,就是如果你是其他的平台,就是就比如你是 q t 啊,如果你是 mac 电脑,或者如如果你是 youtube 的,那这边呢你要稍微去改一下对应的这个字, player demo, 点 pro 去看看对应的一些扩文件路径,稍微去注意一下,比如这边是 就那个是这零系统了啊,这边就是如果是苹果的,你这边就稍微改一改,就把对面那些啊,他还没有一些库,还还有 sdl 那些库,把对面那些就是库列文件地址啊,对应你要引用哪些库,就把他给引到,就是我们这个马可这这个目录下面 好,这点就是大家就要注意一下了,也就说就是你现在你在 windows 里面跑是最快速的。 好,这边再你看看,这里还要讲一些潜质知识,什么意思呢?就是对这个代码来讲啊,就是你要有一定的就是阅读过 ipad 那个 ipad pad, 这个不光是一个元宝, 安排到底是什么样一个播放器啊?就是安排那个里面自带的元宝啊,大家注意下,比如这边给他去稍微演示一把, 就是比如在这个命令行里面,我们可以稍微去播放一下,比如 ipad play, 随便去播一个文件, 随便去拨一个,大家往这边看。好,刚才我们试播的时候,它是一个产品,这边我稍微设一下,比如这上宽是八百,大家往这边看就对一个视频。好,大家可以刚才看得到,这是我们对应刚才讲的是 ipad 是个元宝, 就是如果你还是不了解的话,那可以去在 ipad ipad 那个元宝里面搜索一下 ipad pay, 点 c 看看,就是这个元宝。 还有就是你如果你要做这个带界面的方企,就是你这边呢要需要一定要 q t 的基础,因为这个项目它是通过 q t 做的一个界面,那这里呢?还有一些这个文件简 要分析,这什么意思呢?我们可以看到就是这个项目里面文件也比较多,就这里我就简单给他讲一下,大家往这边讲的时候啊,就是我们要对着这个头去给他讲一讲, 你像这边这个 albert 点 cpp, 实际上它就是一个关于对话框,但是现在看能不能把它给跑出来,可以点一点,但是现在好像不太响应了,这个是不用太去理,它也说这个关于对话框了,我们重点是要理解哪一些呢?就比如这个 control 大点 c p p, 那比如在这个位置里面显示这些内容啊,就是看一些进度条,还有一些音量条。好,对呢,就是我们这个播放暂停,还有这个停止,还有上一下一,还有这个变数等等这些啊空间,那就是在我们这个 control b 这个文件里面去的,所以这一点要注意,那这个里面 control b 呢?对应来讲这边也含有对应的这个 u i, 大家就是要注意一下。 好,这边再看,这边还有一个就是自定的一个啊,进入进入条,这什么意思呢?就刚才我们看到这个进入条啊,实际上他是这边是做了一个自定义的,还有这个音量条也是一样的,就是同一个,就是自定一个进入条 啊,这边我们再往前看啊,对呢,这边是啊封装一个现场啊,这边有 global caliper, 这个是就是用来去加啊,对,那个 q s s 就是我们这个界面协议优化, 也说就是如果你有一点 q 的基础,但是对这个界面优化不太知道了,那你可以参考一下这个 q s s 怎么去加载好这边哈,包括我们对这个保存和读取参数, 什么意思呢?就比如这个播放列表里面,他就是是保存到我们本地的,当我们存在使用的时候,他就会去加载, 大家要注意一下,就会从我们本地文件里面去加载啊,那这边还要讲的是设置图标,那比如这边就是我们给一些图标,就是通过这个 gopro 搞淘宝 phop 去设置的,那这边这个魅点 c p p 主函数,那就不用多说了,那这边对那个 made window, 这是我们这个主界面,就是这个这整个 组合起来这个界面需要注意一下啊,就是对这个包装起来讲了他是一些还有一些就纸的空间,就比方讲这个 ctrl 八, 这是一个控制条啊,在这一块,然后就是我们等一下看到这边这个包括列表,这个 media lisa, 还有 a lisa 这两个文件组成 上一个 vlog 列表,就是我们这一块内容这一块的空间。好,对你来讲这边这个设置菜单呢,现在来讲你先不用去理他,也就是说就是我们一些重点的,我还稍微再标一下, 大家就是到时候就拿了一个资料就能够知道看哪一些代码是比较重点的,哪一些就是不太需要去注意看 好,对应来讲这是我们这个网列表,要特别注意这个设置菜单,就不用理他了啊。这还有对应就是我们这个视频画面空间,什么意思?就是这里啊,这一块就是他这边他也是就制定的一个,就是 画面渲染的一个空间,那这边还有 sonic 点 cpp, 就是 sonic 点 cpp, 就是在原来这个这 player demo 里面它是没有的,是我这边就是加进来就是提供一个啊变速和功能。 我再强调一下,就是原来这个项目是没有的,那这边还有对应 title 点 c p p, 那这里就是我们看到刚才在播放时候啊, 我们可以看到这里就会显示就是我们要播放这个文件名,那这里最最后一个核心的地方就是我们 videoctrl 点 cpp, 这个是播放器一个核心代码,这边要特别强调一下, 还有这里我要再强调一点,就是如果你想就是深入去掌握这个项目的话,那你一定要去看看 i have pay 点 c a 元嘛, 只有有这个 ipad 点是一个原码基础后,那你才能更好去看懂这个 video, ctrl 点 cpp, 要不你是很难去看懂这个代码一个逻辑的,这里要注意下。还有大家就是可以一键三连关注,我或许 今天上课讲了一个原貌和对应的资料啊,今天我再再给大家强调一下,就是刚才讲的是这个项目的一个来源,我再给他点开看看吧, 大家可以去点到就是作者这里就是原来 get hubble 里面,我这边然后需要补充一下,就是它这里呢,就是在五个月之前呢,就是对一个代码稍微做一个修改,修改主要是支持什么东西呢?就是适配了这个 ipad meal 五点零, 大家注意一下,就视频 ipad 面有五点零, 由于 ipad 没有五点零,就对这个 video 啊,对 odo 就是一些参数啊,有一些结构体的改变,当然啦,就是我们啊, ipad 五点零六点零就是跑,我们目前这个项目也是一样能跑通了,这个你不用 去担心这个问题。好了,各位朋友就是可以一键三连关注我,领取我们今天讲的这个项目原码和对联资料。