多媒体编程
文章平均质量分 72
好清闲
编程爱好者
展开
-
利用FFmpeg将视频文件生成bmp图像帧(解决反转问题)
#include #include #include #include #include "avformat.h"#include "avcodec.h"#include "swscale.h"#pragma comment (lib, "avcodec.lib")#pragma comment (lib, "avformat.lib")#pragma comment (lib, "a转载 2009-07-20 11:33:00 · 1768 阅读 · 0 评论 -
组播编程
初识组播(1)我们知道在内核中用结构体struct net_device标识一个网络设备接口,该结构体有一个成员指针ip_ptr,它是留给IPv4协议用于填充协议相关的一些数据的。IPv4协议的模块将其指向一个结构体struct in_device,该结构体含有很多协议相关的数据,比如配置在这个网络设备接口上的所有的IPv4的地址,该网络设备接口接受的组播地址等,下面是其完整的定义:转载 2010-03-26 19:24:00 · 5108 阅读 · 2 评论 -
今天发现一个P2p的库(vast)
<br />记住主页http://vast.sourceforge.net/index.php<br />原创 2010-08-21 16:31:00 · 1386 阅读 · 0 评论 -
用c语言移植matlab算法程序一点小小的经验
<br />这几天移植一个matlab编的用radon变换检测直线的算法,由于之前没有这方面的经验,移植过程纠结了我两三天,主要是一些不起眼的小问题,检查一遍又一遍就是看不出来!不过这个过程中也发现了自己一个的优点就是能够执着的坚持,一直执着的认为只要用matlab验证通过的程序一定可以通过c语言来实现。原创 2010-09-29 10:45:00 · 4923 阅读 · 3 评论 -
使用opencv实现图像局部放大功能
<br />由于时间关系这里先暂且贴上必要算法的代码;<br />//获取一个矩形区域中的子区域<br />void COpencvDlg::GetClipRect(CPoint point, LPRECT lpRect,int d)<br />{<br /> CRect rect ;<br /> rect=*lpRect ;<br /> lpRect->left=point.x-d ;<br /> lpRect->top=point.y-d ;<br /> if(lpRect->left<0)<br />原创 2010-10-05 01:36:00 · 10864 阅读 · 0 评论 -
使用FFMPEG SDK解码流数据获得YUV数据及其大小
<br />本文以H264视频流为例,讲解解码流数据的步骤。<br />为突出重点,本文只专注于讨论解码视频流数据,不涉及其它(如开发环境的配置等)。如果您需要这方面的信息,请和我联系。<br />准备变量 <br />定义AVCodecContext。如果您使用类,可以定义成类成员。我这里定义成全局变量。<br />static AVCodecContext * g_pCodecCtx = NULL;<br />定义一个AVFrame,AVFrame描述一个多媒体帧。解码后的数据将被放在其中。<br />转载 2011-04-02 09:33:00 · 3328 阅读 · 3 评论 -
windows环境下编译最新的x264库
<br />一、下载msys环境,可以直接到这里下载http://msys-cn.googlecode.com/files/MSYS-Update.7z,解压即可<br />二、下载最新的x264代码,可以到这里下载http://videolan.mirror.aussiehq.net.au/x264/snapshots/<br />三、进入msys环境配置编译,可能会提示没有yasm汇编器的错误,可以下载一个yasm汇编器,拷贝到msys目录下的bin目录<br /> 命令如下:<br />原创 2011-04-08 21:11:00 · 3239 阅读 · 1 评论 -
微软Kinect是怎么做到的
身体就是控制微软Kinect是怎么做到的器http://xbox360.tgbus.com/jiaocheng/Soft/201007/20100708145758.shtml游戏主机中的Microsoft和Sony终于都正式推出了体感装置,最令人惊艳的莫过于不需要任何控制器的Kinect,最令人好奇的是,Kinect到底如何侦测全身体感?搭载了什么特殊功能?各个镜头的用途是什么?<br /> 大家应该都知道Kinect是靠摄影机镜头捕捉使用者的动作,但对于细节或许不是很清楚,近日随着国外游戏转载 2011-04-11 10:09:00 · 4298 阅读 · 2 评论 -
jrtplib的使用
JRTPLIB库的使用 文档:http://research.edm.uhasselt.be/jori/jrtplib/documentation/index.html一些介绍:http://doserver.net/read.php?1028http://doserver.net/read.php/1转载 2010-03-16 22:02:00 · 6831 阅读 · 0 评论 -
Windows下通过VC++6.0编译live555工程(可调试)
首先,我们从http://live555.com/liveMedia/public/live555-latest.tar.gz 下载最新版的live555工程。 将工程解压于C:/live(该路径可自己设定)下 1、配置编辑环境:打开VC++6.0开发环境,点击工具-选项-目录对话框,目录下拉对列表框中选定:inlcue files 在下面添加路径 C:/live/Ba转载 2010-03-07 20:51:00 · 2875 阅读 · 3 评论 -
ffmpeg和SDL学习笔记(一)
根据ffmpeg官方网站上的例子程序开始学习ffmpeg和SDL编程。SDL是一个跨平台的多媒体开发包。适用于游戏,模拟器,播放器等应用软件开发。支持linux 、win32 等操作系统。主要应用:视频设置8bpp或更高的任意色彩深度的视频模式。如果某个模式硬件不支持,可以选择转化为另一模式。 直接写入线性的图像帧缓冲(framebuffer)。 用颜色原创 2009-07-03 20:12:00 · 19239 阅读 · 10 评论 -
ffmpeg 和 SDL学习(二)
在上一篇笔记中我们已经完成了使用SDL播放声音和视频,声音播放没有什么问题,而视频播放太快,很明显视频没有同步。在这里我们要完成视频的同步,同时还要整理程序,使程序的结构更加有条理。 这里先整理以下音频播放的流程:1、从媒体文件中找出音频流的索引( AudioStream)(遍历AVFormatContext中的streams,通过判断pFormatCtx->s原创 2009-07-11 10:38:00 · 5407 阅读 · 6 评论 -
RFC3550(中文版)
RTP:实时应用程序传输协议 摘要 本文描述RTP(real-time transport protocol),实时传输协议。RTP在多点传送(多播)或单点传送(单播)的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据,如:音频,视频或者仿真数据。RTP没有为实时服务提供资源预留的功能,也不能保证QoS(服务质量)。数据传输功能由一个控制协议(RTCP转载 2009-07-12 10:32:00 · 6495 阅读 · 1 评论 -
RTP - 视频流广播
这是用RTP(RFC3350)按RFC2550封装MPEG ES流数据的发送程序。学习RTP的路真的辛苦。在网上收集的有关RTP的程序都是那种只负责RTP数据包发送的库,如jrtplib等,他们的DEMO 程序都只是用来发发字符串,编编聊天程序,无论是国内还是国外,都没有结合真正的应用的DEMO。其实我的目的很简单,就是写发个视频流服务器,不用复杂,只用把基本原理弄懂,因为这样你才能有的放矢。与网转载 2009-07-12 11:01:00 · 2533 阅读 · 1 评论 -
意外的惊喜!
一直不知道如何用进入jrtplib承载h264流,网上搜寻好久没有找到,没想到今天居然给碰上了!不知道好不好,没有仔细看,关键是没有时间,以后有时间再慢慢研究!呵呵 先把看到的给粘贴过来! 可以通过生成SDP文件给播放器在指定端口接收数据播放,如果你不用动态调整编码器什么的就不用考虑另外发送RTCP. 而且RTCP必须自己实现RTSP服务结合起来用,没有实现RTSP服务,就谈不上实现RTC原创 2009-10-19 21:01:00 · 1166 阅读 · 0 评论 -
运动估计
转:http://hi.baidu.com/sahlee/blog/item/879db7d1823c4c0a3af3cf02.html(关于h.264编码的技术比较全)理论知识:两帧之间的物体运动是平移运动,位移量不是很很大,所以会以块作为单位分配运动矢量,在运动估计中采用了大量的参考帧预测来提高精度,当前的待编码块可以在缓存内的所有重建帧中寻找最优的匹配块进行运动补偿,以便很好的去除时间域转载 2010-02-19 10:34:00 · 2289 阅读 · 1 评论 -
MPEG-2标准学习心得
MPEG-2标准目前分为9个部分,统称为ISO/IEC13818国际标准。各部分的内容描述如下: 一部分-ISO/IEC13818-1,System:系统,描述多个视频,音频和数据基本码流合成传输码流和节目码流的方式。 二部分-ISO/IEC13818-2,Video:视频,描述视频编码方法。 三部分-ISO/IEC13818-3,Audio:音频,描述与MPEG-1音频标原创 2010-03-06 14:54:00 · 1766 阅读 · 1 评论 -
用live555构建流媒体服务器
一、用VC6.0编译流媒体库live5551.从http://www.live555.com/openRTSP/下载最新LIVE源码 2.根据说明更改WIN32CONFIGURE中TOOLS=为C:/Program Files/Microsoft Visual Studio/VC98.注意此处不能带BIN且更改后目录后要留出一个空格. 3.切换到DOS进入LIVE目录,执行genWin原创 2010-03-07 18:59:00 · 3514 阅读 · 1 评论 -
OpenGL 视图变换和投影变换
最近再看OpenGL相关的东西,对于OpenGL的视图变换和投影变换比较难以理解,发现Nate Robin的OpenGl教程包,感觉非常好,标记一下。1. 对于OpenGL ES2,有两个函数来实现视图变换和投影变换以及正交变换,这里来详细理解一下这两个函数的参数下图给出投影变换的示意图Matrix.frustumM(mProjMatrix, offset, left, right原创 2016-10-31 21:58:35 · 1252 阅读 · 0 评论