- 博客(45)
- 资源 (3)
- 收藏
- 关注
转载 Linux 图片传输功能c/c++(初版)
由于深度学习任务的需要,要在程序里面嵌入一个module。这个module 的功能是接收来自ios客户端的图片。并且传送给深度学习分类器进行处理。于是看了看各种各样的 module 实现方案。先是用IO函数把图片以数组的方式存起来。再和服务器建立连接,socket传这个数组。然后服务器接收完数组以后就再运用IO函数 把数组以图片的方式存起来!然后用各
2017-08-30 14:01:40 2308 1
转载 媒体格式分析之flv -- 基于FFMPEG
本来是应该先写一个媒体文件格式的简单讲解的,还没来得及写,以后再写。今天就先根据ffmpeg的flv.c的flv_demux这个结构体来讲解一下当前比较流行的媒体格式flv.FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能.当前主流的媒体网站像国内的优酷、国外youtub
2017-08-30 10:32:44 390
转载 SDP协议
1.SDP协议概述SDP(Session Description Protocol)是一个用来描述多媒体会话的应用层控制协议,为会话通知、会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述;它是一个基于文本的协议,这样就能保证协议的可扩展性比较强,这样就使其具有广泛的应用范围;SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会
2017-08-29 18:09:29 303
转载 RTP解包
同前篇类似,修改自vc下的程序,跟打包相反,原理就是从udp接收一个数据包,判断这个数据包是单个发送还是分片发送,进而获取rtp包中的h264NAL数据,并加上0x00000001起始字节一并写进文件中即可。[cpp] view plaincopy#include #include #include
2017-08-22 10:37:10 1073
转载 RTP 打包H.264
#include #include #include #include #include #pragma comment( lib, "ws2_32.lib" ) #define PACKET_BUFFER_END (unsigned int)0x00000000 #define MAX_RTP_PKT_LENGTH
2017-08-22 10:35:47 390
转载 MP4文件格式解析 之 二 (Sample table atom )
http://www.52rd.com/Blog/Detail_RD.Blog_wqyuwss_7934.html C stbal sample table atom 存储媒体数据的单位是samples。一个sample是一系列按时间顺序排列的数据的一个element。Samples存储在me
2017-08-18 11:09:39 1107 1
转载 MP4文件格式解析
一、概述 MP4文件格式中,所有的内容存在一个称为movie的容器中。一个movie可以由多个tracks组成。每个track就是一个随时间变化的媒体序列,例如,视频帧序列。track里的每个时间单位是一个sample,它可以是一帧视频,或者音频。sample按照时间顺序排列。注意,一帧音频可以分解成多个音频sample,所以音频一般用sample作为单位,而不用帧。MP4文
2017-08-18 11:08:54 889
转载 区分mp4格式里面mdat中的音频和视频数据
首先在minf里面有个vmhd和smhd,那么vmhd代表视频,smhd代表音频然后在stsz中stsz Box00 00 73 D8 size of stsz,2073 74 73 7A: stsz00 00 00 00: version00 00 00 00: sample-size00 00 1C F1: sample-count00 0
2017-08-17 18:05:40 3132
转载 成功在MP4封装的H264视频中提取能播放的裸流
原理说明如下,.h264文件只需要写入sps,pps以及后面的视频裸流(nalu)就可以播放了,播放器可以选择VLC或者迅雷看看播放器,其它的没有测试过。MP4文件是由一个一个box组成的文件,每个box的开头是box的length(4 byte),紧接着是4 byte的box type,如果length是0x01的话,那么在box type后面接着的就是8 byte的box length
2017-08-17 17:15:14 2449
转载 Mp4文件中提取H264码流
一、MP4格式基本概念MP4格式对应标准MPEG-4标准(ISO/IEC14496) 二、MP4封装格式核心概念1 MP4封装格式对应标准为 ISO/IEC 14496-12(信息技术 视听对象编码的第12部分: ISO 基本媒体文件格式/Information technology Coding of audio-visual objects Part 12
2017-08-17 16:55:09 9804
转载 FFmpeg使用手册 - MP4的格式解析
FFmpeg使用手册 - MP4的格式解析视频文件转MP4在互联网中常见的格式中,跨平台最好的,应该是MP4文件,因为MP4文件既可以在PC平台的Flashplayer中播放,又可以在移动平台的Android,IOS等平台中进行播放,而且是默认播放,那么就可以理解为MP4为最常见的多媒体文件格式,所以重点介绍MP4封装,说到MP4封装,下面简单介绍一下MP4封装的基本格式.3.1.
2017-08-17 13:39:31 1498
原创 C++ ofstream和ifstream详细用法
ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O. stream这个类有两个重要的运算符: 1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显
2017-08-17 10:05:02 295
转载 【多媒体封装格式详解】---MP4【4】
前面介绍过的几种格式flv、mkv、asf等。他们音视频的数据包一般都是按照文件的顺序交叉安放。你解析完头部信息后。剩下的一般就按照文件顺序一个数据包一个数据包的解析就行了。但是MP4完全不是这种概念。他的媒体信息和数据是分开存放的。就是你想获得数据之前必须要解析出每个帧数据所有的位置。mp4存放这个帧信息的是放在stbl这个box里。而真实的数据放在mdat中。接下来就讲讲stbl与mdat的对
2017-08-16 17:43:25 271
转载 【多媒体封装格式详解】---MP4【3】
2.2.2 Media BoxBox Type: ‘mdia’mdia box 结构十分复杂。来个例子。2.2.2.1 Media Header BoxBox Type: ‘mdhd’[cpp] view plain copyaligned(8) class MediaHeaderBox extends FullBo
2017-08-16 17:42:06 332
转载 【多媒体封装格式详解】---MP4【2】
1.File Type BoxBox Type: `ftyp’这种box一般情况下都会出现在mp4文件的开头,它可以作为mp4容器格式的可表示信息。就像flv头‘F’ 'L' 'V' 3字节,MKV头部的1A 45 DF A3 、ASF_Header_Object 可以作为ASF容器格式的可辨识信息一样。ftyp box内容结构如下[cpp] view
2017-08-16 17:38:44 315
转载 【多媒体封装格式详解】---MP4【1】
MP4(MPEG-4 Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的。1.最小组成单元 BOX像FLV的tag、MKV的EBML、ASF文件中的 ASF object.mp4 是由一系列的box组成,他的最小组成单元就是box.size;指明了整个box所占用的大小,包括header部分.type;表示
2017-08-16 17:34:44 528
原创 openg显示Bmp图片
#include #include #includeint width;int height;static GLint PixelLength;const GLint new_width = 380;const GLint new_height = 380;//设置图像指针GLubyte* pixels;GLuint load_textu
2017-08-16 11:25:01 597
转载 gluLookAt、glViewport()、glOrtho和gluPerspective参数分析
一、 gluLookAt和投影 void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,GLdouble centerx,GLdouble centery,GLdouble centerz,GLdouble upx,GLdouble upy,GLdouble upz); gluLookAt的前三个参数定义了观察点的
2017-08-16 11:21:38 640
原创 Opengl函数解释
1.glAccum--操作在多重缓冲区中进行;2.glAlphaFunc--指定Alpha测试函数;3.glBegin--开始操纵一组点进行画图;4.glBitmap--再设备上画一指定属性的位图文件;5.glBlendFunc--指定象素的算法;6.glCallList-- 执行一个显示列表;7.glCallLists-- 执行一组显示列表;8.glClear--在视
2017-08-15 17:58:24 512
转载 OpenGL的glTexCoord2f纹理坐标配置
OpenGL的glTexCoord2f纹理坐标配置阅读目录纹理坐标配置函数,先看定义:void glTexCoord2f (GLfloat s, GLfloat t); 1、glTexCoord2f()函数有两个参数:GLfloat s, GLfloat t第一个参数代表X坐标。 0.0f 是纹理的左侧。 0.5f 是纹理的中
2017-08-15 11:07:47 1581
转载 Opencv 导入图片 Opengl 显示纹理(含用例代码)
本篇主要是讲使用Opencv导入一副图片,然后讲该副图片当成纹理显示在opengl当中。首先说如何配置Opencv我的硬件环境是: Windows10+Visual Studio 2015+opencv3.0先在此网站下载opencv,下载之后,它是长这样的,点击它,会自动解压缩成名字为“opencv”的文件夹接下来进行环境配置:从控制面板开始,按着这个
2017-08-14 18:08:34 4127
转载 MP4文件格式分析及分割实现(附源码)
MP4文件格式分析及分割实现(附源码) MP4文件格式分析 MP4(MPEG-4 Part 14)是一种常见的多媒体容器格式,它是在“ISO/IEC 14496-14”标准文件中定义的,属于MPEG-4的一部分,是“ISO/IEC 14496-12(MPEG-4 Part 12 ISO base media fi
2017-08-14 08:55:06 8086 2
转载 FLV文件格式分析(附源码)
FLV文件格式分析(附源码)FLV文件主要由两部分组成:Header和Body。1. Headerheader部分记录了flv的类型、版本等信息,是flv的开头,一般都差不多,占9bytes。具体格式如下:文件类型3 bytes“FLV”版本1 byte一般为0x0000 0001 (1)
2017-08-14 08:54:04 2359
转载 MP4文件格式详解——元数据moov(一)mvhd box
元数据moov(一)(ISO-14496-12)Author:Pirate LeoEmail:codeevoship@gmail.comISO 14496 - 12 定义了一种封装媒体数据的基础文件格式,mp4、3gp、ismv等我们常见媒体封装格式都是以这种基础文件格式为基础衍生的。如果从全局角度了解基础文件格式,请看我之前的博文《MP4文件格式详解——结构概述》
2017-08-12 19:53:49 1463
原创 lseek函数详解
所有打开的文件都有一个当前文件偏移量(current file offset),以下简称为 cfo。cfo 通常是一个非负整数,用于表明文件开始处到文件当前位置的字节数。读写操作通常开始于 cfo,并且使 cfo 增大,增量为读写的字节数。文件被打开时,cfo 会被初始化为 0,除非使用了 O_APPEND 。 使用 lseek 函数可以改变文件的 cfo 。 #inc
2017-08-12 18:13:00 2771
原创 stat结构体
stat结构体:struct stat { dev_t st_dev; //文件的设备编号 ino_t st_ino; //节点 mode_t st_mode; //文件的类型和存取的权限 nlink_t st_nlink; //连到该文件的硬连接数目,刚
2017-08-12 13:01:53 2168
转载 MP4文件格式的解析,以及MP4文件的分割算法
mp4应该算是一种比较复杂的媒体格式了,起源于QuickTime。以前研究的时候就花了一番的功夫,尤其是如何把它完美的融入到视频点播应用中,更是费尽了心思,主要问题是处理mp4文件庞大的“媒体头”。当然,流媒体点播也可以采用flv格式来做,flv也可以封装H.264视频数据的,不过Adobe却不推荐这么做,人家说毕竟mp4才是H.264最佳的存储格式嘛。 这几天整理并重构了一下mp4文件的解
2017-08-12 10:50:07 215
转载 关于MP4文件格式解析
MP4 文件格式 综述关键概念 MP4 文件格式中,所有的内容存在一个称为movie的容器中。一个movie 可以由多个tracks 组成。每个track就是一个随时间变化的媒体序列,例如,视频帧序列。track 里的每个时间单位是一个sample,它可以是一帧视频,或者音频。sample按照时间顺序排列。注意,一帧音频可以分解成多个音频sample,所以
2017-08-10 14:12:25 898
转载 MP4文件点播seek原理
本来想说说关于mp4和一些常见视频文件格式方面的历史。现在想想没啥必要,毕竟本文是在讲关于mp4点播拖动方面的技术细节。绪论,前言神马的显得有点多余。说起MP4,不得不提“Digital Container format”的概念。维基百科给出解释:A container or wrapper format is a metafile format whose specifica
2017-08-10 13:33:30 2691
原创 QTAtom学习
QTFileToolsQTFileTools是一些基于QTFile库开发的电影查看工具。这些工具包括:QTBroadcaster。这个工具要求给定一个目标IP地址,一个拥有一个或者多个线索轨道(hint track)ID的电影源,以及一个初始化端口。通过这个工具,被线索轨道引用的每一个数据包都可以被广播到指定的IP地址。QTFileInfo。使用这个工具需要给定一个电影源。通过这个
2017-08-08 10:48:23 631
转载 QuickTime文件格式规范
QuickTime文件格式概述QuickTime影片是存储在磁盘上,使用两个基本结构存储信息:atoms(也被称为simple atoms或classic atoms)和QT atoms。为了了解QuickTime影片的存储,你需要了解本章描述的基本的atoms结构。大多数你在QuickTime文件格式中看到的atoms都是simple 或classic atoms。即便如此,simple a
2017-08-07 17:20:16 3930
转载 rtpsession详解
以下过程仅分析推送视频模式:服务器监听rtsp端口号,当有客户端连接后,会创建RTSPSession,在客户端请求过程中的announce时,会创建RTPSession,在RTSPSession中维护了一个RTPSession成员。RTSPSession和RTPSession在QTSServerInterface::GetServer()中都有一个map相关联。RTPSession
2017-08-05 16:44:27 1006
原创 瑞芯微Rk3288硬件编码,硬件解码
main.c,实例demo。[cpp] view plain copy#include "stdio.h" #include "vpu_global.h" #include "utils/Log.h" #include "vpu_api.h" #undef LOG_TAG #define LOG_TA
2017-08-04 14:39:09 9373 1
原创 Android 5.0 Camera系统源码分析(5):Camera预览3A流程
本文分析的是Android Hal层的源码,硬件平台基于mt6735。之前几篇讲的预览流程中3A相关的环节都忽略了,现在重新整理下。3A指的是Auto Exposure,Auto Focus,Auto White Balance。这三个一起放上来代码实在太多了,这里将重点记录AF的代码。AF的部分工作是由ISP完成的,而ISP的大部分代码mtk都没有开放给我们,比如ISP是如何计算得到对焦
2017-08-02 10:37:14 1807
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人