C/C++
文章平均质量分 66
xxq123321
这个作者很懒,什么都没留下…
展开
-
Understanding Rate Control Modes (x264, x265, vpx)
原文地址:http://slhck.info/video/2017/03/01/rate-control.htmlWhat is “rate control”? It’s what a video encoder does when it decides how many bits to spend for a given frame. The goal of (lossy) video转载 2018-01-29 16:17:24 · 581 阅读 · 0 评论 -
live555的rtsp代理ProxyServerMediaSession改进
live555中的ProxyServerMediaSession是一个原创 2014-11-10 12:20:20 · 3986 阅读 · 1 评论 -
libx264编码部分参数说明
//代码示例转载 2014-06-18 11:15:46 · 2212 阅读 · 0 评论 -
ffmpeg编码jpg为mp4文件
目前主要存在的问题就是无法准确的设置h264的帧率,貌似无解,如有解决方法,欢迎指正直接上代码:int getFileSize(const char* sFile){ FILE* f = fopen(sFile, "rb"); fseek(f,0,SEEK_END); int s = ftell(f); fclose(f); return s;}class CJpg原创 2013-08-19 16:06:50 · 2147 阅读 · 0 评论 -
sdl2显示bmp图片
sdl2 修改和添加了部分接口,并且增加了对手机系统平台(ios,andriod)的支持,显示部分改动较大,并且不向下兼容,具体可以参考官方 http://wiki.libsdl.org/MigrationGuide#Other_Renderer_API_notes以下是使用sdl2显示一张bmp图片的demo#include "stdafx.h"#include "SDL.h"#原创 2013-12-12 10:01:01 · 2455 阅读 · 0 评论 -
gdi和direct截屏
http://www.cnblogs.com/wangjixianyun/archive/2013/04/10/3012556.html转载 2014-07-17 11:17:17 · 989 阅读 · 0 评论 -
vs2010 ffplay 编译总结
今日编译了windows版本的ffpaly,总结遇到的一些问题 1 如果要用vs2010进行调试,只能下载window下编译好的ffmpeg开发库而不是使用mingw编译,SDL也一样 2 ffpaly的编译问题相对而言不太多:2.1 config.h文件可以使用mingw下configure命令生成的,编译时一些宏报错可以直接修改2.2 opinion[]数组报错是由于vs201原创 2013-11-27 14:07:36 · 2353 阅读 · 1 评论 -
利用CWinThread实现跨线程父子MFC窗口
标签:mfc对象 mfc窗口跨线程 mfc界面线程 跨线程访问mfc对象原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jetyi.blog.51cto.com/1460128/1074315 原则上,MFC对象只能由创建该对象的线程访问,而不能由其它线程访问.这是因为MFC窗口中有一个Windows h转载 2014-05-06 09:30:47 · 656 阅读 · 0 评论 -
live555 vs2010编译版本
推广:live555 vs2010编译版本 整个编译过程没有任何问题,直接把源代码文件加入即可,完成后可以直接编译调试,把媒体文件放在服务器程序同一目录下及可以使用vlc点播或自带的rtspClient测试原创 2013-12-19 13:07:36 · 733 阅读 · 0 评论 -
window7 语音识别开发(sapi)
参考:http://msdn.microsoft.com/en-us/library/ee125663(v=vs.85).aspx (sapi5.4 reference)http://msdn.microsoft.com/zh-cn/library/ms723634 Grammar Format Tags (SAPI 5.3)http://blog.csdn.net/zhu原创 2013-12-11 15:20:50 · 4762 阅读 · 1 评论 -
c#的字符解析简单示例
一直从事c++方面的开发,进来需要使用c#做项目,项目中需要解析一段网络流,从中将图片提取出来,网络协议很简单,采用.......传输,写了个简单类,吧jpeg数据提取处理,直接上代码 public delegate void onImageDataHandle(int id1, int id2, int id3, int id4, byte[] buffer); publ原创 2013-10-25 14:35:07 · 651 阅读 · 0 评论 -
ffmpeg解码jpg并编码成h264
直接代码:int getFileSize(const char* sFile){ FILE* f = fopen(sFile, "rb"); fseek(f,0,SEEK_END); int s = ftell(f); fclose(f); return s;}class CJpgQueue{public: CJpgQueue() { } ~CJpgQueue原创 2013-08-16 14:57:46 · 4034 阅读 · 0 评论 -
Dshow 捕获设备数据
1 windows下用dshow可以捕获摄像头和麦克风数据,参照上一篇获取sheb原创 2014-11-18 14:42:31 · 878 阅读 · 0 评论 -
Dshow获取设备信息
dshow开发可以参照网上流行的dshow开发笔记原创 2014-11-18 14:38:03 · 2415 阅读 · 0 评论 -
c#使用ffmpeg显示rtsp视频流
在c#中直接调用ffmpeg接口有些困难,但是如果功能简单,通过二次封装接口成dll给c#调用就很方便了,例如在c#中显示rtsp视频,可以直接改造ffmepg的示例代码demuxing.c ,封装成dll给c#调用,在c#直接用一个pixtruebox就Ok了。demo:http://download.csdn.net/detail/xxq123321/8504859原创 2015-03-16 09:58:31 · 12320 阅读 · 5 评论 -
outputdebugstring函数的封装
使用debugview分析问题时,outputdebugstring函数可以在debug和release版本中都输入信息,这比trace更加实用,但前提是你必须将它的参数形式修改成和trace或printf函数一样,下面给出简单修改后的函数形式,并利用宏定义实现日志输出:int DebugPrintf(LPCTSTR ptzFormat, ...){ va_list vlArgs原创 2017-09-14 14:12:04 · 1868 阅读 · 1 评论 -
RTP/RTCP协议的补充(RTCP发送时间间隔)
http://www.cnblogs.com/Jimmly/archive/2009/08/03/1537293.html 关于RTP/RTCP协议的介绍,还是在早前的基于sip协议的Push To Talk项目中写到了少许。RTP/RTCP协议相对来说是一个比较简单的协议,这里补充一点关于RTP/RTCP协议的知识。说是RTP/RTCP的知识,其实这里只补充了RT转载 2017-04-18 16:53:14 · 2021 阅读 · 0 评论 -
音频处理——pcm基础知识与重采样
转载地址: blog.csdn.net/timesir/article/details/529040241 基本概念1:获取pcm音频帧声道数AVCodecContext->channelsavframe->channelsprintf("av_frame_get_channels = %d\n",av_frame_get_channels(frame))转载 2016-10-25 10:15:52 · 2823 阅读 · 0 评论 -
色彩空间转换
http://blog.csdn.net/yyingwei/article/details/22649575//以下是yv12到RGB24的转换算法,如果是yuv420到RGB24转换,秩序u,v反过来就可以了。//即:// unsigned char* uData = &yData[nYLen];// unsigned char* vData = &vData[nYLen>>2];b转载 2016-07-27 14:49:36 · 564 阅读 · 0 评论 -
Windows服务程序编程入门
author:xxq123321Windows服务程序是在操作系统后台运行的一种程序,要开发该类程序,需要使用windows提供的service API,MSDN上有对该类api的详细描述,这里简单介绍下windows服务编程的具体步骤:1.window服务的安装鼠标右击"我的电脑 -〉管理"可以打开计算机管理器,进入到服务控制管理界面,这里可以看到所有的服务列表(注意所有这些服务名都存储在window系统数据库中),可以选择每一项服务进行启动或停止等管理操作,我们第一部介绍的就是如何把一项新的服务写原创 2011-02-28 00:20:00 · 2034 阅读 · 1 评论 -
P2P实现的原理
http://www.cppblog.com/peakflys/archive/2013/01/25/197562.html 为了项目的后期IM应用,最近在研究libjingle,中间看了也收集了很多资料,感慨网上很多资料要么太过于纠结协议(如STUN、ICE等)实现细节,要么中间有很多纰漏。最后去伪存真,归纳总结了一下,希望对以后的同行有些许帮助。 如果有什么转载 2016-02-25 10:59:19 · 936 阅读 · 0 评论 -
qt使用ffmpeg显示rtsp视频流
最简单的方式是直接使用qlable实现#ifndef QWIDEGETPLAY_H#define QWIDEGETPLAY_H#include #include #include #include #include #include extern "C" {#pragma comment(lib,"avcodec.lib")#pragma comment(lib,原创 2015-03-09 17:23:53 · 4522 阅读 · 0 评论 -
live555-让你的h264文件支持seek
1 live555 当前对trick play mode 支持的说明:'Trick play' functionalityThe server supports RTSP 'trick play' operations for some, but not all, media types:Pausing: All media typesSeeking: MPEG Transpo原创 2015-06-02 18:58:26 · 1600 阅读 · 1 评论 -
windows下创建目录的常见函数
windows下创建目录的常见函数 网上搜的都有小小的问题 bool fileExist(const char* fileName){ WIN32_FIND_DATA wfd; HANDLE hHandle = ::FindFirstFile(fileName,&wfd); if (hHandle == INVALID_HANDLE_VALUE) ret...原创 2015-05-07 17:00:35 · 2351 阅读 · 0 评论 -
【FFmpeg】ffplay播放rtsp视频流花屏问题
http://www.cnblogs.com/dwdxdy/p/3240217.html问题描述:ffplay播放rtsp视频流时,播放过程中随机出现花屏现象。基本流程学习:阅读ffplay源码,熟悉其播放rtsp视频流的基本流程。在ffplay源码阅读和分析的基础上,画出了其播放rtsp的函数调用关系,如下图所示:avformat_op转载 2015-03-30 10:41:08 · 951 阅读 · 0 评论 -
qt qtcpserver编程入门
代码 : 1 连接成功后每个连接创建一个处理对象 cclientSession, 2 所有cclientSession对象的slot 都在另外一个线程中处理,即处理方式为创建一个线程处理所有客户端连接 3 大文件传输需要自己用协议分片#ifndef QNETCONTRLSERVER_H#define QNETCONTRLSERVER_H#include #inclu原创 2015-03-12 11:55:55 · 639 阅读 · 0 评论 -
视频、音频打时间戳的方法
http://blog.csdn.net/wfqxx/article/details/54971381. 视频时间戳 pts = inc++ *(1000/fps); 其中inc是一个静态的,初始值为0,每次打完时间戳inc加1. 在ffmpeg,中的代码为 pkt.pts= m_nVideoTimeStamp++ * (m_VCtx->t转载 2013-08-07 10:53:11 · 1970 阅读 · 0 评论 -
H264 帧边界识别简介
http://blog.sina.com.cn/s/blog_76550fd70101gh1q.htmlH.264 将构成一帧图像所有nalu 的集合称为一个AU,帧边界识别实际上就是识别AU。因为H.264 取消帧级语法,所以无法简单地从码流中获取AU。解码器只有在解码的过程中,通过某些语法元素的组合才能判断一帧图像是否结束。一般来说,解码器必须在完成转载 2013-08-23 11:21:20 · 673 阅读 · 0 评论 -
为什么a++不可以做左值,而++a可以
1. a++返回的是一个临时变量,用于保存a在自增之前的值。2. ++a省去一个临时变量,返回的是a如果懂c++的重载,那么struct Object{int i;Object operator++(int)//后缀++{Object t=*this;i++;return t;}Object& operator++转载 2013-07-04 11:48:11 · 733 阅读 · 0 评论 -
vs2010 qtadmin配置qt路径时提示错误“This Qt version uses an unsupported makefile generator ”
解决方案如下:1.Close Visual Studio.2.Run regedit.3.Hop to HKEY_CURRENT_USER\Software\Trolltech\Versions (如果没有versions,新建一个)4.Add a new key named "4.7.4" or whatever version you have.5.Under the ne转载 2012-06-12 16:57:12 · 9582 阅读 · 2 评论 -
ncftpput获取管道信息
ncftpput是一个ftp上传命令行程序,-h可以查看帮助信息。使用该命令行上传时程序会显示上传速度,剩余时间等相关信息,于是考虑调用该子程序时直接从管道中获取该信息,源码如下:SECURITY_ATTRIBUTES sa; HANDLE hRead,hWrite; sa.nLength = sizeof(SECURITY_ATTRIBUTES); sa.lp原创 2012-05-30 16:20:35 · 1222 阅读 · 0 评论 -
vs2010编译qt4.8
vs2010编译qt4.81.使用vs2010自带的命令行进入qt目录,进入mkspecs\win32-msvc2010\qmake.conf查看编译选项,配置内置wchr_t语言,修改如下选项(如有项目使用wchar_t,qt却编译成wchar_t-,编译会导致连接错误,提示找不到Qwstring):QMAKE_CFLAGS = -nologo -Zm200 -Zc原创 2012-02-27 14:44:38 · 1699 阅读 · 0 评论 -
vs2010编译boost1.44中interprocess\detail\move.hpp的错误
1>e:\code\company\sky_guide\open_common\cpplib\boost1_44\boost\interprocess\detail\move.hpp(342): error C2440: “return”: 无法从“boost::interprocess::shared_memory_object”转换为“boost::interprocess::shared_m原创 2012-02-27 14:10:56 · 1034 阅读 · 0 评论 -
C++中括号()操作符的重载举例及解析
http://blog.csdn.net/yang_lang/article/details/6725041C++项目中,经常会遇到使用重载()操作符的地方,请看下面一个例子: view plain#include using namespace std; class Clastype {转载 2011-12-30 16:26:24 · 894 阅读 · 0 评论 -
浅析boost之智能指针—shared_ptr
作为boost库最重要的组成部分之一,智能指针是我们在应用boost时几乎无处不在的一个应用,这里简单研究一下windows下share_ptr的部分实现。1.shared_ptr成员变量(shared_ptr.hpp)template class shared_ptr{........private: T * px; // con原创 2011-12-30 14:28:29 · 939 阅读 · 0 评论 -
浅析boost库之noncopyable
浅析boost库之noncopyable1.介绍class noncopyable { protected: noncopyable() {} ~noncopyable() {} private: // emphasize the following members are private noncopyable( co原创 2012-01-12 13:46:54 · 887 阅读 · 0 评论 -
简单的iocp例子
#include #include #include #include #include using namespace std;#define I_PORT 1666#define I_ADDR "0.0.0.0"#define DFT_BUFFER_SIZE 4096#define OPT_READ 0#define OPT_WRITE 1class CClien原创 2012-01-07 17:02:16 · 768 阅读 · 0 评论 -
关于GetQueuedCompletionStatus的返回值
关于GetQueuedCompletionStatus的返回值MSDN中对GetQueuedCompletionStatus的叙述比较详细,不过对它的返回值,实在有点没看懂,下面是对于GetQueuedCompletionStatus的返回值的介绍(其中的中文翻译是引用的某位网友):Return Values If the function dequeues a com转载 2012-01-07 16:49:33 · 1005 阅读 · 0 评论 -
C++ 类模板特化
模板特化是使用普通C++模板时,一些特殊类型无法适用于普通模板而必须单独说明的模板特例.1.函数模板特化>如在一个比较大小的函数里,通用模板函数可以写成如下形式:templateint cmp_str(T s1,T s2){ if(s1==s2) return 0; return s1<s2?-1:1;}当函数参数为两个字符串参数时,该模板就不能达到预期效果了,我们可原创 2011-12-07 17:04:24 · 692 阅读 · 0 评论 -
Jsoncpp遍历
使用Jsoncpp代码比较简单,各个类都容易理解,这里说一下遍历这个Json数据的方式。源码中直接提供了测试代码,D:\code\jsoncpp-src-0.6.0-rc2\src\jsontestrunner\main.cpp,里面printValueTree就是遍历函数,下面原创 2011-08-17 16:23:03 · 4191 阅读 · 0 评论