自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

C++ Qt 开发藏经阁

寒江孤影,江湖故人,相逢何必曾相识

原创 VS2017使用log4cplus【完整示例与运行测试】

在使用C++开发项目时,需要看程序的运行信息,可以自己写个log类,也可以用开源的,自己写的可能没有成熟的开源log功能好,本篇博客介绍log4cplus的在win10 VS2017上的编译与使用。 下面开始介绍log4cplus的编译与使用。 1. 下载源码 log4cplus链...

2019-12-29 22:14:54 763 0

原创 VS Qt开发的软件给exe添加图标

新建一个.rc文件,随便取名字,例如“logo.rc”, 添加以下内容 IDI_ICON1 ICON DISCARDABLE "./Resources/demo.ico" 我是把demo.ico文件放到了程序的Resources目录,所以这样写,把logo.rc放...

2019-12-28 18:11:55 359 0

原创 Qt开发的软件如何全屏显示

可以用以下API实现 showFullScreen(); //全屏,窗口底部任务栏没有了 showMaximized(); //最大化显示,有底部任务栏 注意:以上对顶级窗口有效果,对子窗口无效。 ...

2019-12-28 17:30:01 270 0

原创 CentOS各版本下载链接

CentOS 官网下载地址:http://vault.centos.org/ 比如下载7.6版本 打开后,找到isos 点开isos后会看到x86_64, 点击进入,即可看到下载链接了 现在的centos都是64位版本了,32位的要下载低版本的...

2019-12-28 14:51:33 265 0

原创 Qt实现程序启动画面:QSplashScreen类

很多程序在启动的时候需要加载很多资源,为了避免用户的无聊,都使用启动画面,在程序加载结束后,启动画面消失。在Qt中使用QSplashScreen类可以实现,例如,创建一个基于QMainWindow的程序,代码如下: /* Qt实现程序启动画面 */ #include "Star...

2019-12-26 23:10:49 221 0

原创 H.264标准简介

H.264/AVC是由国际电信联盟标准化组织(ITU-T)的视频图像专家组(VCEG)和国际标准化组织(ISO/IEC )的运动图像专家组(MPEG )共同组成的联合视频組(JVT)所开发的最新的视频编码标准,被称作ISO/IEC14496-10或MPEG-4/AVC.联合视频组JVT早期开发的M...

2019-12-21 00:58:07 159 0

原创 常见的视频编解码标准

随着数字视频编解码业务迅猛发展,为了保证不同厂家视频编解码产品之间的相互操作性. 視频编解码技术的标准化问题显得日益重要,各大国际组织在数字视频编解码标准化方面展开了许多工作并制定了一系列视频编解码保准。其中,国际电信联盟ITU - T下的视頻编码专家组VCEG( Video Coding Exp...

2019-12-21 00:55:19 815 0

原创 什么是视频编解码

视频编解码技术是指对视频进行压缩、解压缩的技术。在日常生活中,视頻编解码技术应用非常广泛。例如十几年前在DVD(MPEG・2)、VCD(MPEG-1)、高清电视以及现在的互底网上都有大量的应用。 视频信号数字化之后会产生十分庞大的数据量,需要大量的磁盘空间。一帧没有压缩的PAL制电视画面包...

2019-12-20 23:35:13 213 0

原创 数字视频技术简介

数字视频技术是指以数字形式捕捉、记录、处理、存储、传输、复现动态彩像的一系列相关技术。例如通过数字摄像机直接产生数字视频信号,压缩成MPEG-2格式存储在视频数据库。在被检索到后通过因特网传输到远端的PC,并在播放器上播放岀来。数字视频技术的发展与数字电視系统密不可分。这里以数字电视系統来讲解数字...

2019-12-16 23:08:09 609 0

原创 模拟视频技术简介

模拟视频技术是指用模拟技术对动态影像进行捕捉、记来、处理、存储、传输、复现的技术.模拟视频技术的发明、发展与模拟电视系统的发展密不可分.下面将通过模拟电视系统来介绍模拟视频技术中的基本概念. 首先,人的视觉系统的特征为电视等視稿系铳的发明、发展提供了理论依据.光线通过角膜、腫孔、晶状体的...

2019-12-16 00:44:47 399 0

原创 视频技术与H264编码的诞生

视频技术是指将动态影像以电信号的方式加以捕捉、记录、处理、存储、传输、复现相关的一系列技术。视频技术最早出现在早期的模拟电视系统中。 视频技术编年史 19世纪末,先驱者们开始研究传送图像的技术。 1904年,英国人贝尔威尔和德国人柯隆发明了一次电传一张照片的电视技术,每传一张...

2019-12-15 23:29:07 133 0

原创 VS2017编译OBS Studio源码【详细过程】

OBS Studio软件是一款强大的直播与录播软件,代码开源。它的音视频编解码使用的FFmpeg, 界面是Qt,还涉及到OpenGL等技术。看了很多人编译OBS, 但是用VS2017编译的很少,而且有些人的博客编译步骤还有问题,不能编译成功,本篇博客记录我用VS2017编译OBS源码的一些注意事项...

2019-12-14 22:35:54 1650 0

原创 FFmpeg拉取rtmp流转udp输出播放

用ffmpeg可以拉取rtmp流,比如湖南卫视的:rtmp://58.200.131.2:1935/livetv/hunantv 在vlc播放器可以测试看看,网速不好的,会有延时, 媒体----打开网络串流,填入湖南卫视的rtmp地址。 播放如下 太卡了,没专业播...

2019-12-14 17:27:31 1400 4

原创 VS如何快速去掉空行

ctrl h, 填写^\s*(?=\r?$)\n 全部替换即可。

2019-12-12 21:10:48 587 1

原创 ffmpeg mp4转yuv

1. mp4转yuv ffmpeg -i test.mp4 test.yuv 播放yuv ffplay -f rawvideo -video_size 960x540-i test.yuv 注意指定视频的宽高,不然会绿屏,花屏。

2019-12-08 22:59:56 113 0

原创 C++ SDL开发环境配置

SDL官网:http://www.libsdl.org/ 本文是在VS2017下使用SDL, 先进官网下载SDL库,我下的是SDL2, 项目配置和其它SDK类似,.h .lib .dll这些在属性中配置好后,就可以写代码了,注意 (1)main函数必须又有参数 (2)导入S...

2019-12-08 19:36:30 217 0

转载 ffplay源码分析(十一):同步到外部时钟

前面我们分析了音视频同步中的两种策略:视频同步到音频,以及音频同步到视频。接下来要分析的是第三种,音频和视频都同步到外部时钟。 回顾 先回顾下前面两种同步策略。 视频同步到音频主要由函数compute_target_delay计算出lastvp应显示时长,并通过frame_timer对比...

2019-12-08 15:39:55 179 0

转载 ffplay源码分析(十):音频同步视频

在“视频同步音频”的策略中,我们是通过丢帧或重复显示的方法来达到追赶或等待音频时钟的目的,但在“音频同步视频”时,却不能这样简单处理。 在音频输出时,最小单位是“样本”。音频一般以数字采样值保存,一般常用的采样频率有44.1K,48K等,也就是每秒钟有44100或48000个样本。视频输出...

2019-12-08 15:38:26 122 0

转载 ffplay源码分析(九):视频同步音频

ffplay默认也是采用的这种同步策略。 主流程 ffplay中将视频同步到音频的主要方案是,如果视频播放过快,则重复播放上一帧,以等待音频;如果视频播放过慢,则丢帧追赶音频。 这一部分的逻辑实现在视频输出函数video_refresh中,分析代码前,我们先来回顾下这个函数的流程图: ...

2019-12-08 15:36:52 152 0

转载 ffplay源码分析(八):音视频同步 -- 基础

由于音频和视频的输出不在同一个线程,而且,也不一定会同时解出同一个pts的音频帧和视频帧。更有甚者,编码或封装的时候可能pts还是不连续的,或有个别错误的。因此,在进行音频和视频的播放时,需要对音频和视频的播放速度、播放时刻进行控制,以实现音频和视频保持同步,即所谓的音视频同步。 在ffplay...

2019-12-08 15:34:57 122 0

转载 ffplay源码分析(七):ffplay subtitle显示线程分析

ffplay里subtitle的显示比较简单,它是将subtitle当作video的附属进行显示,所以subtitle实际上没有独立的显示线程,它是和video的显示线程(主线程)共用一个线程。看过ffplay video显示线程分析的应该会有印象,在video显示线程中有看到关于subtitle...

2019-12-08 15:33:15 111 0

转载 ffplay源码分析(六):ffplay audio输出线程分析

ffplay的audio输出同样也是通过SDL实现的。 同样地,本文主要介绍audio输出相关内容,且尽量不涉及音视频同步知识,音视频同步将在专门一篇分析。 audio的输出在SDL下是被动输出,即在开启SDL会在需要输出时,回调通知,在回调函数中,SDL会告知要发送多少的数据。(关于SDL音...

2019-12-08 15:31:28 122 0

转载 ffplay源码分析(五):ffplay video显示线程分析

ffplay显示部分代码包括了video、audio、subtitle的显示(输出)。 我们知道要显示画面或者输出声音,在windows、linux、macos等不同平台上的接口都不尽相同,对于这个问题,ffplay选择了sdl作为显示SDK,以实现跨平台支持。 在阅读本文前,需要读者具备初步...

2019-12-08 15:29:58 165 0

转载 ffplay源码分析(四): ffplay解码线程分析

ffplay的解码线程独立于读线程,并且每种类型的流(AVStream)都有其各自的解码线程,如video_thread用于解码video stream,audio_thread用于解码audio stream,subtitle_thread用于解码subtitle stream。 为方便阅读,...

2019-12-08 15:27:53 179 0

原创 ffplay源码分析(三):read_thread线程

ffplay中有一个线程专门处理数据读取,即read_thread。 read_thread主要按以下步骤执行: 准备阶段:打开文件,检测Stream信息,打开解码器 主循环读数据,解封装:读取Packet,存入PacketQueue read_thread的函数比较长,这里...

2019-12-08 15:25:12 159 0

原创 ffplay源码分析(二): 探讨自定义队列

MyAVPacketList ffplay用PacketQueue保存解封装后的数据,即保存AVPacket。 第一个结构体是MyAVPacketList,如下: typedef struct MyAVPacketList { AVPacket pkt; struct MyA...

2019-12-08 15:22:10 284 1

原创 ffplay源码分析(一):代码架构简述

ffplay是用ffmpeg代码实现的一个播放器,可以播放本地文件,也可以播放网络资源,与vlc播放器功能类似。把ffmpeg环境配好后,在资源所在的目录,打开控制台输入ffplay [资源名字]即可播放该媒体资源,ffplay源码只有3800多行,C工程,音视频显示渲染是用的SDL库。下载ffm...

2019-12-08 15:14:35 837 1

原创 VS2013编译vlc源码

VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。官网地址:http://www.videolan.org/ 源码是linux下开发的,但是已经有人把它修改到VS下,github上有链接:https://git...

2019-12-07 02:03:49 240 0

提示
确定要删除当前文章?
取消 删除