尚硅谷_2019互联网大厂高频重点面试题(第二季)思维导图脑图笔记完整版

尚硅谷_互联网大厂高频重点面试题第2季思维导图笔记下载,git部分未记录(尚硅谷周阳老师的视频脑图) ,内容包括JUC多线程并发、JVM和GC等目前大厂笔试中会考、面试中会问、工作中会用的高频难点知识。从多线程并发入手,分层递进讲解,逐步让大家掌握volatile、原子类和原子引用、CAS、ABA、Java锁机制、阻塞队列、线程池等重点;而后逐步过渡到JVM和GC的知识,深度讲解多种常见OOM...
分类: 其他 发布时间: 09-25 14:36 阅读次数: 0

Qt编写的项目作品28-RTSP播放器+视频监控(mpv版本)

一、功能特点多线程实时播放视频流+本地视频等。支持windows+linux+mac。多线程显示图像,不卡主界面。自动重连网络摄像头。可设置是否保存到文件以及文件名。可直接拖曳文件到mpvwidget控件播放。支持h265视频流+rtmp等常见视频流。可暂停播放和继续播放。支持存储单个视频文件和定时存储视频文件。自定义顶部悬浮条,发送单击信号通知,可设置是否启用。可设置画面拉伸填充或者等比例填充。可对视频进行截图(原始图片)和截屏。录像文件存储MP4文件。支持qsv、dxva2
分类: 其他 发布时间: 09-25 14:36 阅读次数: 0

Qt编写的项目作品29-RTSP播放器+视频监控(海康SDK版本)

一、功能特点支持播放视频流和本地MP4文件。支持句柄和回调两种模式。多线程显示图像,不卡主界面。自动重连网络摄像头。可设置边框大小即偏移量和边框颜色。可设置是否绘制OSD标签即标签文本或图片和标签位置。可设置两种OSD位置和风格。可设置是否保存到文件以及文件名。可直接拖曳文件到haikangwidget控件播放。支持h264/h265视频流。可暂停播放和继续播放。支持存储单个视频文件和定时存储视频文件。自定义顶部悬浮条,发送单击信号通知,可设置是否启用。可设置画面拉伸填充或者等
分类: 其他 发布时间: 09-25 14:36 阅读次数: 0

Qt编写的项目作品30-录音播放控件(雨田哥作品)

一、功能特点使用FMOD音频引擎开发,支持跨平台,虚拟频道,插件设计。数字回放,多个声卡,多路输出,多路输入。自定义回放延迟,网络特性。支持类型:DLS、M3U、ASX、WAX、PLS、AIFF、ASF、FLAC、FSB、MOD、MP2、MP3、OGG、RAW、S3M、WAV、WMA、XM、VAG。可以说是相当的牛逼。录音(自动保存WAV文件) 实时播放。支持声道,采样频率等设置。播放音频文件。音频频谱图显示。音频瀑布频谱图显示。背景色,频谱色可调。录音时长,音频文件播放时长显示。
分类: 其他 发布时间: 09-25 14:36 阅读次数: 0

Qt编写的项目作品31-PDF阅读器(雨田哥作品)

一、功能特点仿WPS界面。预览PDF文件。支持PDF预览放大,缩小。支持目录预览查看。支持目录点击跳转页查看。支持页数指定跳转。支持上一页,下一页,首页,尾页跳转。支持鼠标拖拽滑动预览。支持换肤。动画Tab页。支持实际大小,适合页面,适合宽度预览跳整。支持工具栏,类目栏拖拽位置调整,隐藏。可定制各种功能。二、效果图三、体验地址体验地址:https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A 提取码:o05q 名称:bin_p
分类: 其他 发布时间: 09-25 14:36 阅读次数: 0

Qt编写的项目作品33-斗图神器(雨田哥作品)

一、功能特点斗图成为很多网友们的一种聊天娱乐方式,除了搜集别人发的表情。也有别的斗图软件,这里也只是业余娱乐,写了这么一款斗图软件。支持HTTP,HTTPS网络表情图片下载,本地缓存。采用MV模式,支持大量图片表情预览查看。采用多线程异步下载图片刷新。图片搜索功能(因网络提供API无信息字段提供,占搜索不了。但有此功能。)双击点击,复制到剪贴板,支持QQ, 微信客户端粘贴,进行表情发送。支持关键词网络图片请求搜索。支持网络图片本地缓存储。支持拉伸布局排列。支持图片下载失败效果,点击后重
分类: 其他 发布时间: 09-25 14:36 阅读次数: 0

Qt音视频开发11-ffmpeg常用命令

一、前言大部分的格式转换工具比如格式化工厂等,都用到了ffmpeg来处理,ffmpeg编译后生成的ffmpeg.exe、ffplay.exe、ffprobe.exe等可执行文件,其实就封装了众多牛逼的功能,ffprobe查看媒体文件头信息的工具,ffplay用于播放媒体文件的工具,尤其是ffmpeg.exe,强大的媒体文件转换工具,可以转换任何媒体文件,还可以用自己的 AudioFilter 以及 VideoFliter 进行处理和编辑,比如下面的一些功能。列出支持的格式:ffmpeg -format
分类: 其他 发布时间: 09-25 14:36 阅读次数: 0

Qt音视频开发12-mpv解码播放

一、前言之前玩了vlc解码和ffmpeg解码,前阵子有个客户需要换成mpv解码,于是研究了下mpv的使用方法,自从用了mpv以后发现爱不释手,这玩意天生适合极客和程序员啊,居然将各种处理封装成了命令和属性调用,比如播放进度,你只需要读取属性time-pos即可,如果要读取音量只需要读取属性volume即可,设置音量就直接设置属性volume对应的值即可,我的乖乖,这太棒了棒极了,这不就是咱们梦寐以求的处理方式吗?你只需要封装几个通用的处理接口(读取属性mpv_get_property、设置属性mpv_se
分类: 其他 发布时间: 09-25 14:36 阅读次数: 0

Qt编写的项目作品34-雷达模拟仿真工具(雨田哥作品)

一、功能特点支持音频频谱显示支持任意随机添加模拟点支持自定义添加模拟点支持方位,航向角,距离,速度,目标体真实图自定制支持危险区域范围显示支持激光发射模拟支持雷达图放大缩小显示支持模拟点编辑设置支持模拟点跟踪线设置支持模拟点详细数据查看支持自定义换肤二、效果图三、体验地址体验地址:https://pan.baidu.com/s/1ZxG-oyUKe286LPMPxOrO2A 提取码:o05q 名称:bin_radar.zip国内站点:https://gitee
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

Qt音视频开发13-mpv录像存储

一、前言用mpv来做录像存储,保存视频文件,从来都没有如此的方便,直接设置属性stream-record对应的文件路径即可,我的乖乖,一行代码,如此精简美丽大方,搞得我都不敢相信自己的眼睛,mpv除了支持主流的win、linux、mac三大操作系统外,还支持手机安卓IOS等,尤其是居然支持各种嵌入式linux,记得vlc想要在嵌入式linux上交叉编译成功的话,难于上青天,各种插件的依赖实在是太多了,直到你放弃为止,在X86的linux系统还是比较方便一些的,而在这块,mpv简直是完爆vlc啊,直接命令行
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

Qt音视频开发14-mpv读取和控制

一、前言用mpv来读取文件的信息,以及设置当前播放进度,音量、静音等,和当时vlc封装的功能一样,只不过vlc是通过调用函数接口去处理,而mpv是通过读取和设置属性来处理,vlc支持定时器或者线程中函数方法去读取状态,也支持事件回调去拿到对应的状态改变,mpv当然也支持,而且还更方便,主要的工作量或者花费的时间在如何知道有哪些属性、分别是什么功能含义,这个在官方都列出来了(http://mpv.io/manual/master/#options、http://mpv.io/manual/master/#l
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

Qt音视频开发15-mpv事件订阅

一、前言在使用livmpv的过程中,通过对mpv事件订阅,可以更准确和准时的得知一些事件,比如文件打开成功,播放状态的改变等,而不需要定时器去读取状态,尤其是打开成功这个事件,如果不采用事件订阅,有时候视频流会卡主一阵子,比如不存在的视频流或者网络不好的情况下,有两种办法可以规避这个情况,在vlc和ffmpeg解码中也是如此,一种方法是将这个打开直接放到线程中执行,本来解码处理就是一个完整的线程类,所以直接通过标志位的更改来在线程中执行初始化,毫无压力不卡主,还有一个办法就是采用事件回调,得到打开成功以后
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

Qt音视频开发16-mpv通用接口

一、前言前面几篇文章,依次讲了解码播放、录像存储、读取和控制、事件订阅等,其实这些功能的实现都离不开封装的通用的接口,最开始本人去调用一些设置的时候,发现多参数的不好实现,原来需要用mpv_node处理,而Qt中如何转成mpv_node需要特殊的处理才行,后来在开源主页看到了官方提供的demo例子,直接用qt封装好了多个接口(https://github.com/mpv-player/mpv-examples/tree/master/libmpv),看里面的注释是英文的,估计应该是官方提供的,传入的参数都
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

Qt音视频开发17-海康sdk解码

一、前言在视频监控行业领域,海康当之无愧是老大,稳坐第一的宝座很多年了,近期需要将视频监控系统改成采用海康sdk的内核,于是特意去查阅了sdk的使用手册,sdk相关的文档和文件可以直接官网下载到,而且是经常更新的,目前提供了windows和linux上的,win上的sdk还是更新比较快而且完整的,但是在linux上的就不得不吐槽下了,很旧很旧的版本,不要看打包文件很新,其实里面的内容是很老的,不知道为啥官方不也同步更新linux上的sdk,也许现在linux上的需求还不是很多吧,但是随着国产化的大力推进,
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

Qt音视频开发18-海康sdk回调

一、前言海康sdk显示实时视频流除了支持句柄方式以外,也支持回调的方式拿到每一张图片自己绘制处理,当然回调除了拿到视频数据,其实音频数据也一块拿到了,自行调用音频设备播放就行,关于海康sdk回调这块,还着实折腾了一阵子才搞定,可能最开始没有参照提供的demo以及没有彻底的搜索吧,只是单单看sdk的文档折腾来折腾去的,搞了一星期居然没搞定,后面找到了正确的办法才发现,原来就差一点点一丢丢呢,这又让我联想到很多事情,包括生活中的事情,不都是如此么?当你铆足了劲,试验搞了各种办法,快要精疲力尽放弃的时候,其实此
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

Qt音视频开发19-海康sdk录像存储

一、前言关于调用海康sdk来进行录像存储,整体的框架架构处理流程沿袭了之前vlc内核、ffmpeg内核、mpv内核的做法,定时存储这块,开个定时器判断,到了时间则先关闭原来的录像存储,然后在开始一个新的录像存储,重新传入新的文件名,所以这块的代码直接拷贝过来就能使用,要做的就是替换两行代码即可,一行是开始录像存储的函数NET_DVR_SaveRealData,一行是停止录像存储的函数NET_DVR_StopSaveRealData,海康sdk的手册非常详细,而且命名也比较规范,基本上通过方法函数名字就可以
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

Qt音视频开发20-海康sdk本地播放

一、前言海康sdk中包含了MP4解码播放库,对应的API函数都是PlayM4开头的,顾名思义播放MP4,海康的视频默认可以保存成MP4文件,可以用通用的播放器来播放,这就是为啥前面好多篇文章讲到的各种内核录像存储都改成MP4来存储,vlc、mpv、ffmpeg等,最终录像存储都转换成MP4文件,看来大公司大厂做的也是保存成MP4文件,肯定是有他的道理,至于有多少道理,跟着他学者他这样处理就行,可以先不用问不用管,直接上手撸代码就对了,有些东西需要深究原理,而有些东西就没有必要太过于细致询问下去了,折腾下去
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

Qt音视频开发21-通用硬解码

一、前言硬件解码是图形芯片厂家提出的用GPU资源解码视频流的方案,与之相对的是软解,也就是传统的用CPU承担解码工作的方案;优点是效率高,功耗低、热功耗低,缺点是缺乏有力的支持(包括滤镜、字幕等),局限性较大(例如打开硬件解码后PC的节能方面的功能失效cnq等),设置较为复杂;需要硬件有硬件解码模块、相关的驱动配合、合适的播放软件以及对播放软件正确的设置,缺一而不能开启硬件解码功能,主流的硬件解码方案由Intel、AMD-ATI以及Nvdia推出。目前主流的播放器都支持硬解码,没有硬解码的播放器都是耍流
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

Qt音视频开发22-通用GPU显示

一、前言采用GPU来绘制实时视频一直以来都是个难点,如果是安防行业的做视频监控开发这块的人员,这个坎必须迈过去,本人一直从事的是安防行业的电子围栏这个相当小众的细分市场的开发,视频监控这块仅仅是周边技术玩一玩探讨一下,关于GPU绘制这块着实走了不少的弯路。之前用ffmpeg解码的时候,已经做了硬解码的处理,比如支持qsv、dxva2、d3d11va等方式进行硬解码处理,但是当时解码出来以后,还是重新转成了QImage来绘制,这样就大打折扣了,尽管可以看到GPU使用率有了,但是依然耗时的操作还是在CPU绘
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0

Qt音视频开发23-通用视频控件

一、前言在之前做的视频监控系统中,根据不同的用户需要,做了好多种视频监控内核,有ffmpeg内核的,有vlc内核的,有mpv内核的,还有海康sdk内核的,为了做成通用的功能,不同内核很方便的切换,比如pro直接改一个DEFINE的变量名,所以需要将各种内核的使用方法做成一样的接口,这样看起来就很整齐,所以后面特意提炼了一个通用的视频控件,该控件没有具体的视频播放控制功能,需要根据不同的内核去调用具体的方法实现,后面还需要增加大华sdk或者其他第三方厂家的协议的时候,直接套用这个通用视频控件即可,以后增加新
分类: 其他 发布时间: 09-25 14:35 阅读次数: 0