Multimedia
文章平均质量分 66
shaoyizhe2006
这个作者很懒,什么都没留下…
展开
-
RTMP协议中的AMF数据
这里有一个连接,amf0和amf3的库,我下了看了下,还是自己写吧,哎。http://wooce.iteye.com/blog/1396278参考crtmpserver的代码写的,其中有amf.h文件。 AMF数据第一个byte为此数据的类型,类型有:Number0×00double类型Boolean0×01转载 2013-01-30 10:47:21 · 881 阅读 · 0 评论 -
使用FFmpeg捕获一帧摄像头图像
最近在研究FFmpeg,比较惊讶的是网上一大堆资料都是在说如何从已有的视频中截取一帧图像,却很少说到如何直接从摄像头中捕获一帧图像,其实我一直有个疑问,就是在Linux下,大家是用什么库来采集摄像头的(opencv?)?还是自己写v4l2的代码来实现?我之前一直都是用v4l2来采集摄像头的。经过一些时间的研究,最后成功地用FFmpeg实现了从摄像头采集一帧图像,实现代码也非常简单。不多说,上代码。转载 2012-12-24 14:16:31 · 1241 阅读 · 0 评论 -
avpicture_fill
OverviewDefined in avcodec.hFill in the AVPicture fields.The fields of the given AVPicture are filled in by using the 'ptr' address which points to the image data buffer. Depending on the转载 2012-12-21 11:21:33 · 3899 阅读 · 0 评论 -
流媒体相关知识介绍 及其 RTP 应用
一、流媒体简介随着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音频/视频(Audio/Video,简称A/V)等多媒体文件时,基本上只有下载和流式传输两种选择。通常说来,A/V文件占据的存储空间都比较大,在带宽受限的网络环境中下载可能要耗费数分钟甚至数小时,所以这种处理方法的延迟很大。如果换用流式传输的话,声转载 2012-07-24 14:13:06 · 1215 阅读 · 0 评论 -
extern "C"的用法解析
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有转载 2012-07-10 16:14:03 · 445 阅读 · 0 评论 -
rtmp协议简单解析以及用其发送h264的flv文件
Adobe公司太坑人了,官方文档公布的信息根本就不全,如果只按照他上面的写的话,是没法用的。按照文档上面的流程,server和client连接之后首先要进行握手,握手成功之后进行一些交互,其实就是交互一些信息以确认大家都是用的同一个协议,交互成功之后就开始传数据了。 首先说下rtmp协议包的格式。握手之后,rtmp传输一个数据默认的长度是128bytes,这128byte转载 2013-01-30 10:49:16 · 6749 阅读 · 0 评论 -
将h.264视频流封装成flv格式文件(二.开始动手)
前面写了flv文件的解析,有h264裸流的话就开始封装吧。网上大多数都是用ffmeg库来做这个工作的,哎,学习资料少学不会,还是自己动手吧。封装前要先了解下h.264格式,只需要知道一点点就可以了,我看了h.264官方文档,我靠,3百多页,还全是中文,什么,是中文?既然是中文的我就勉强看下吧,我靠,看起来还很复杂的,果断不看了,不需要,也没时间,我又不做解码,这东西具体步骤资料又少,基本都转载 2013-01-30 10:45:54 · 1027 阅读 · 0 评论 -
将h.264视频流封装成flv格式文件(一.flv格式)
flv文件的格式其实网上资料还是不少,但是怎么封装成flv却不多。看了不少资料,找到了一个觉得还比较靠谱的:http://www.cnblogs.com/chef/archive/2012/07/18/2597279.html其实flv还是挺简单的一个视频格式,下面就来先谈一谈FLV的格式吧。 FLV是一个二进制文件,简单来说,其是由一个文件头(FLV header)和很多转载 2013-01-30 10:44:54 · 909 阅读 · 0 评论 -
H.264中的NAL单元类型 nal_unit_type
nal_unit_typeNAL 单元和 RBSP 语法结构的内容 0未指定 1一个非IDR图像的编码条带 slice_layer_without_partitioning_rbsp( ) 2编码条带数据分割块A slice_data_partition_a_layer_rbsp( ) 3编码条带转载 2013-01-25 14:48:08 · 19522 阅读 · 0 评论 -
FFMpeg写MP4文件例子分析
/* 5 seconds stream duration */#define STREAM_DURATION 5.0#define STREAM_FRAME_RATE 25 /* 25 images/s */#define STREAM_NB_FRAMES ((int)(STREAM_DURATION * STREAM_FRAME_RATE))#define STREAM_PIX_FM转载 2013-01-21 17:32:41 · 10691 阅读 · 2 评论 -
RTMP中FLV流到标准h264、aac的转换
一、分析FLV数据 我们先拿一个flv文件来简单分析一下flv数据的格式 flv标准文档下载地址http://www.cnblogs.com/chef/archive/2012/07/18/2597003.html flv文件分析器flvprase下载地址http://www.cnblogs.com/chef/archive/2012/07/18/2596转载 2013-01-16 19:56:42 · 2032 阅读 · 0 评论 -
JPEG 及MJPEG开发笔记
http://blog.csdn.net/yes24/article/details/3711505 JPEG 早期的照片采用原始的RGB和YUV等格式,这些格式有个不好的地方,就是照片太大,而jpeg则根据人体视觉的特点采用了YCbCr格式,大大压缩了照片的大小,但效果能却相当于没有失真。 JPE转载 2013-01-15 16:25:27 · 14807 阅读 · 1 评论 -
关于获取yuv帧数问题
读yuv文件的时候需要获取yuv文件的帧数,以便建立循环一帧一帧读取,这时候要获取yuv的帧数。方法:首先用fopen函数打开一个yuv文件,接着用fseek( fYUV, 0L, SEEK_END ),再接着用ftell来获取文件的大小size,由于用的是yuv420,因此用size/(WIDTH*HEIGHT*1.5)即获得了yuv文件的总帧数。需要注意的是:fseek转载 2013-01-14 23:04:12 · 2536 阅读 · 0 评论 -
mpeg压缩输入格式
版本 v1.0,存在内存问题在 void v4l2_process_image(struct buffer buf)中对 v4l2 采集来的一帧进行处理,存在 struct buffer buf 中buffer 结构定义为:struct buffer {void * start;size_t length;};buffer.start 为 YUV422 格转载 2013-01-14 13:58:27 · 1204 阅读 · 0 评论 -
YUV格式详细解释与FFMPEG的关系
YUV主要的采样格式主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。其中YCbCr 4:1:1 比较常用,其含义为:每个点保存一个 8bit 的亮度值(也就是Y值), 每 2x2 个点保存一个 Cr 和Cb 值, 图像在肉眼中的感觉不会起太大的变化。所以, 原来用 RGB(R,G,B 都是 8bit unsigned)转载 2013-01-13 18:59:51 · 902 阅读 · 0 评论 -
opencv 读取 yuv(4:2:0)
转自:http://blog.csdn.net/david412306524/article/details/7672517#include #include //#include #define nWidth 352#define nHeight 288#define FrameSize nWidth*nHeight*3/2int _tmain(转载 2013-01-14 22:43:07 · 12731 阅读 · 0 评论 -
Save YUV to Disk
AVFrame *avFrame; char *pName = "/Users/mac/myfiles2/test_30.yuv"; FILE *ff = fopen(pName, "wb");//???? int pic; avcodec_decode_video2(avCodecContext, avFrame, &pic, &avPacke转载 2013-01-22 11:51:19 · 1357 阅读 · 2 评论 -
ffmpeg 新老接口问题及对照集锦
转自:http://blog.csdn.net/cosmoslife/article/details/7618616网上很多关于ffmpeg (libav)的资料都是N年以前的,而事实上ffmpeg数年来一直在“以时俱进”,因此无论是一些新手,或者号称为老手的人,有时候难免出头痛。。。。。。为了解决大家的头痛的问题,特列一个贴子,把ffmpeg相关的一些常见的、版本的问题列举出来,供大转载 2013-01-09 16:06:28 · 1842 阅读 · 2 评论 -
注释一个opencv摄像头程序
/*没有系统地看过opencv的书籍,但是这段时间想做一个摄像头识别、定位特定色块的程序,就从现有程序改起了。这是一个从摄像头从采集实时画面的程序,同时会显示出采集图片的前景和后景图片,按照个人理解做了一下注释。*/#include #include #include #include int main( int argc, char** argv ){转载 2013-01-04 11:18:28 · 785 阅读 · 0 评论 -
如何推送h.264视频直播流到rtmp server
如果要单纯的以h.264的码流推送摄像头的视频到rtmp server(ip:127.0.0.1),可以这样:ffmpeg -f video4linux2 -vcodec libx264 -vpre default -s 320x240 -i /dev/video0 -f flv rtmp://127.0.0.1:1935/app/stream在windows下只支持vfw采集,转载 2012-08-17 11:11:30 · 2717 阅读 · 0 评论 -
H.264码流结构
a、对照:H.263的码流结构H.263定义的码流结构是分级结构,共四层。自上而下分别为:图像层(picture layer)、块组层(GOB layer)、宏块层(macroblock layer)和块层(block layer)。 PSCTRPTYPEPQUANTCPMPSBITRB转载 2013-01-24 18:14:47 · 1532 阅读 · 0 评论 -
H264 RTP头分析
h264 RTP头解析流程 结合NALDecoder.c分析协议分析 :每一个RTP数据报都由头部(Header)和负载(Payload)两个部分组成,其中头部前 12 个字节的含义是固定的,而负载则可以是音频或者视频数据。一个活动顺序参数集在一个编码视频序列中保持不变,一个活动图像参数集在一个编码图像里保持不变。 H.264 编码器必须根据H.264规范设置NRI值(转载 2013-01-24 18:13:20 · 6288 阅读 · 0 评论 -
采样率,比特率,帧率,码率
简单来讲,采样率和比特率就像是坐标轴上的横纵坐标。 横坐标的采样率表示了每秒钟的采样次数。 纵坐标的比特率表示了用数字量来量化模拟量的时候的精度。采样率类似于动态影像的帧数,比如电影的采样率是24赫兹,PAL制式的采样率是25赫兹,NTSC制式的采样率是30赫兹。当我们把采样到的一个个静止画面再以采样率同样的速度回放时,看到的就是连续的画面。同样的道理,把以44.1kH转载 2013-01-15 07:40:43 · 4772 阅读 · 0 评论 -
opencv linux 打开摄像头视频
利用已经编译好的opencv2.4.2来在fedora14 下打开zc301p摄像头,由于linux下有摄像头驱动所以不需要再编译驱动了。#include #include #include int main(){ CvCapture *capture; IplImage *frame; capture=cvCreateCameraCapture转载 2013-01-09 23:15:02 · 6113 阅读 · 1 评论 -
Linux下的虚拟摄像头
环境为ubuntu11.10apt-get install module-assistantm-a preparem-a updatem-a a-i v4l2loopbackcd /usr/srcdpkg -i v4l2loopback-modules-3.0.0-12-generic_0.4.0-1+3.0.0-12.20_i386.deb(在/usr/src目录原创 2012-09-03 10:54:02 · 5512 阅读 · 0 评论 -
RTMP协议详解(转)
Real Time Messaging Protocol(实时消息传送协议协议)是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的私有协议。具体使用RTMP的AS代码大概如下: var videoInstance:Video = your_video_instance; var nc:NetConnection = new NetConnect转载 2012-08-15 17:47:41 · 1036 阅读 · 0 评论 -
JRTP库与JTHREAD库的编译与移植
操作环境:Host OS: Windows 7VMware Workstation: 6.5.1Guest OS: Fedora 9Develop Board: MINI2440Cross-Complier: ARM-Linux-GCC 4.3.2 关于 jrtp 的一些说明:说明 1 : jrtp 有两种数据接收方式:第一种是用 jthread 库提供的线转载 2012-07-24 14:18:18 · 1061 阅读 · 0 评论 -
V4L2驱动的移植与应用
原文地址: http://www.eoeandroid.com/thread-34671-1-1.html作者的博客:http://blog.csdn.net/wxzking关于V4L2驱动的code,可以去下面两个路径下查看:/kernel/drivers/media/video//kernel/include/media/关于camera的code,可以去下面路径查转载 2012-07-12 10:25:11 · 891 阅读 · 0 评论 -
H.264 RTP payload 格式
H.264 视频 RTP 负载格式1. 网络抽象层单元类型 (NALU)NALU 头由一个字节组成, 它的语法如下: +---------------+ |0|1|2|3|4|5|6|7| +-+-+-+-+-+-+-+-+ |F|NRI| Type | +---------------+F: 1 个比特.转载 2013-01-28 09:57:16 · 882 阅读 · 0 评论 -
FFmpeg浅尝辄止(二)——YUV视频序列编码为视频
转自:http://blog.csdn.net/yang_xian521/article/details/7698742#上一篇已经写了如何配置好开发环境,这次就先小试牛刀,来个视频的编码。搞视频处理的朋友肯定比较熟悉YUV视频序列,很多测试库提供的视频数据都是YUV视频序列,我们这里就用用YUV视频序列来做视频。关于YUV视频序列,我就不多讲了,可以看书学习,通常的视频序列都是YUV42转载 2013-01-13 18:16:33 · 1270 阅读 · 0 评论