1.FFmpeg视频播放器开发-FFmpeg简介与项目环境搭建(一)
2.编程需要什么基础?
FFmpeg视频播放器开发-FFmpeg简介与项目环境搭建(一)
前言:在众多视频开发库中,微软的DirectShow、开源库OpenCV、SDL以及大华和海康的专属库等都是不错的选择。然而,FFmpeg在音视频领域具有举足轻重的视频试看分享源码地位。众多软件如迅雷、腾讯视频、QQ、微信、QQ音乐、暴风影音、爱奇艺、优酷和格式工厂等都采用了FFmpeg技术。
QQ客户端
腾讯视频
爱奇艺客户端
FFmpeg的流媒体视音频编解码功能十分强大,几乎涵盖了所有的视音频编码标准。因此,只要涉及到视音频开发,几乎都离不开FFmpeg。
关于FFmpeg的博客和源码讲解有很多,其中雷神的博客最为知名。本系列教程在讲解过程中也会引用到其他人的研究成果,以便我们站在巨人的肩膀上。如有不当或错误之处,网址导航源码 html请各位朋友及时指出。
本教程是在Windows下的VS + Qt环境中开发。对于Linux或Mac操作系统,部分代码可以借鉴,但环境配置会有所不同。
一、配置Windows下FFmpeg开发环境
1.1 FFmpeg下载
官网链接:ffmpeg.zeranoe.com/buil...
可以下载最新版本或以前的版本,例如4.0版本。选择4.0版本后,依次下载Static、Share、Dev三个文件。位版本的三个文件如下:
Dev文件夹下包含include和lib文件
Shared文件的Bin目录包含ffmpeg的dll
1.2 在VS中配置FFmpeg
FFmpeg在VS中的配置很简单,只需按照常规SDK配置方式操作,开发时只需包含include、lib和bin目录中的文件。例如,创建一个C++控制台程序,右键点击项目名--属性。
(1)添加头文件目录
(2)添加lib目录
(3)在附加依赖项中填写lib名称
附上各个lib的名称,方便大家粘贴。
(4)将ffmpeg bin目录下的dll文件放入生成的exe所在目录,方便使用。新建xml文件源码关于/位版本的选择,请自行决定。
二、VS和Qt的安装
本教程以Qt作为界面库进行播放器开发。Qt相对于MFC来说,学习起来更简单,并且可以跨平台,适用于Linux和Mac程序的开发。我将Qt安装在VS中,因为VS调试方便,功能强大。
如果Qt和VS都安装好了,请继续阅读下一篇博客。如果Qt没有安装好,可以参考网上的安装方法。
三、软件界面与主要功能
本地视频播放
网络拉流
菜单项
播放器的基本功能都有,如双击放大全屏、视频进度拖拽、音量调整等。其他功能将逐步更新。
源码将在第五六篇博客中上传到github。
工欲善其事,源码大内群英续集必先利其器。环境配置完成后,下一篇文章将开始FFmpeg开发之旅。
首先,恭喜您能认真阅读到这里。如果对部分内容理解不太清楚,建议将文章收藏起来,查阅相关知识点后再进行阅读,这样您会有更深的认知。如果您喜欢这篇文章,请点赞或关注我吧!!
编程需要什么基础?
很多想学编程的小伙伴的一个问题就是我该如何入门?是啊,面对这样的问题我们该如何去做呢,这是摆在很多小伙伴面前的问题。君墨根据自己多年的编程经验为大家分享自己的看法。1、为自己选择一个方向
学编程可以从事的方向有很多种如网站前端,后台开发,移动开发,底层驱动等。我们首先需要选择一个自己感兴趣的方向,这样才能决定自己学那门编程语言。vector push back源码
2、选择一门编程语言
编程语言是从事编程工作的工具,我们选择不同的方向那么我们学习的编程语言也不会相同。比如我们选择网站后台开发那么我们可以选择的开发语言就是jsp或者php。当然不同的开发语言也可以做相同的事情,比如c#和c++都可以做windows开发,那么我们就需要去了解这些语言的优缺点来做合适的选择。
我联合互联网上的一群大牛,组建了一个编程的免费学习群,你只需要来我们这个群里听就行,开头的的第一部分是:四二六.,位于中间的第二部分是:,处于最后一部分的是:。 这里有免费的学习资源,每天直播课程,不需要你付出什么,只需要有一颗学习的心就可以了。 不是想要学习的就不要加了。
3、动手去写去练
当然只看是很难学会的。我们需要搭建IDE环境来多练习才能完全掌握这些语法。编程学习没有捷径可走,只有入门快慢之分。要学会编程只有coding、coding最后还是coding。
送给那些懦弱的人们
A : 我是护士,我的专业就是护理。我做不了excel、做不了ppt、我学不会ps,好难,我不会写文章。
我: 我学习那么好,写字那么漂亮,编程也不错,ps也挺好、我还能打篮球、我会兵乓求、我会羽毛球、我会足球、我会设计、我会英文。(有的都是高二退学之后自己加强学习的,读书只给了我 算数、识字这些基本的的能力),我特么是神吗?
A : 人人都跟你一样?不是谁都能用很短的时间学很多的东西。
我 :我大概是神吧!你能少看一点 《爸爸去哪儿》、《额滴歌神啊》、《奔跑吧兄弟》吗,今天出了《爸爸去哪》,明天来个《女儿去哪》、《爷爷去哪儿》,你看得完?你能不能看点有用的东西?例如有点启发、让人学到东西的影片或者书?
A:委屈的瘪瘪嘴,那好,我要学习,给我买一本书吧,推荐一下。
我:书到了,学习 吧,一个月后我要看你的成绩。我来考考你
A:好难啊,我好困,我要看一会儿电视.....(然而没然后了....)
其实,这位A同学,极度的懦弱,并不是她不上进,只是那么的懦弱,那么的沉迷于垃圾节目、垃圾书籍,喜欢看不伦不类,不三不四的东西。不明白自己应该要什么,自己怎么做才能得到,认为自己的能力那么的差,做不到
B:大神,我要学node了,推荐一下node的书籍呗
我:恩,入门看一下《node于express开发》吧,然后看看node官网。还有一些博客什么的。当然了,你完全按照那本书,也能做出一些的东西了。最重要的是,要自己动手,去做东西,然后发现问题,解决问题。提升自己。
B:大神,除了那本书,还有别的书吗?
我:书很多,但书不在于多,而是,你能否理解了,并且能运用了?你看完了吗?
B:我感觉很难做,node好难。
我:做做项目,搜搜Google、看看github。
而今,我不知道这位同学水平到底到了什么水平,我想,应该不会太好,最终原因,我想是因为没有深入的去折腾,没有去写代码,没去发现自己的问题
其实,我们的潜力很大,我们能学的更好。我们能掌握的更多,但是许多人都做不到坚持、做不到深入。不肯思考,不肯的动手,是阻碍我们进步的最大原因。
后记:
人,应该要明确自己的目标,拥有理想。
人,重要的不是你站在哪里,而是你往哪个方向前进。
无论何时,不管你已经得到了多少,拥有了多少。都不是堕落的理由。
对于不肯上进,没意志力的人来说,等于是,你想死,任何人都救不了你!
感谢自己,感谢自己没有继续读大学。感谢自己在读书时代已经养成了独立思考,喜欢折腾的习惯。