Jacob_job的博客

音视频软件开发

rtmp数据封装四-音频(AAC&G711)

前面文章《rtmp数据封装一-块(chunk)》中讲到rtmp传输媒体数据时是把一整帧数据拆分成chunk的形式发送的。其实一帧媒体数据在拆分成chunk之前还需要进行必要的头部信息封装,本文介绍rtmp协议中AAC/G.711音频数据的头部信息封装。 第一个byte包含音频的编码参数: 1...

2018-08-21 00:18:08

阅读数 649

评论数 1

rtmp数据封装三-视频(H264&H265)

前面文章《rtmp数据封装一-块(chunk)》中讲到rtmp传输媒体数据时是把一整帧数据拆分成chunk的形式发送的。其实一帧媒体数据在拆分成chunk之前还需要进行必要的头部信息封装,本文介绍rtmp协议中H.264/H.265视频数据的头部信息封装。 H.264 rtmp头部信息封装 ...

2018-08-21 00:16:34

阅读数 1093

评论数 2

简易的个人博客网站-Hexo安装、部署到github和coding

以前我都是把技术博客发布在CSDN,后来突然有个想法就是自己买个域名并搭建个人博客网站。可以搭在自己的云服务器上,或者可以直接在github或者coding创建项目,把代码部署上去一样可以在上面搭建网站。我的个人博客网站是用hexo生成的,hexo用于搭建个人博客网站很方便,下面简单介绍一下方法。...

2018-08-20 10:36:55

阅读数 131

评论数 0

rtmp数据封装二-AMF

简介 rtmp协议在传输script数据onMetaData时使用AMF(Action Message Format)格式封装。 AMF_TYPE对应的编号: 0 : AMF_NUMBER 1 : AMF_BOOLEAN, 2 : AMF_STRING, 3 : AMF_OBJECT, 4...

2018-08-20 09:54:09

阅读数 207

评论数 0

rtmp数据封装一-块(chunk)

简介 由于一帧音视频数据有时候会很大,比如几十M甚至更大。但是为了方便在网络上传输,需要把数据拆分成一个个较小的块,这里称之为消息块(Chunk)。常见的是每块大小为4000 byte左右。 Chunk的结构如下: [Chunk Basic Header] [Chunk Message H...

2018-08-20 09:53:20

阅读数 474

评论数 0

rtmp信令交互过程分析七-音视频数据(video audio data)

概述 在传输完元数据onMetaData之后就开始传输音视频数据了,如视频是H.264编码,第一帧视频帧需要是SPS和PPS,后面才是I帧和P帧。 如果是发布端向服务器推流,方向是C->S,如果是播放器向服务器拉流,方向是S->C。 ...

2018-08-20 09:52:13

阅读数 226

评论数 0

rtmp信令交互过程分析六-元数据(onMetaData)

概述 在publish或者play之后就是开始传输媒体数据了,媒体数据分为3种,script脚本数据、video视频数据、audio音频数据。首先需要传输的是脚本数据onMetaData,也称为元数据。onMetaData主要描述音视频的编码格式的相关参数。 如果是发布端向服务器推流,则onM...

2018-08-20 09:51:17

阅读数 266

评论数 0

rtmp信令交互过程分析五-播放(play)

概述 连接成功之后由客户端选择publish还是play,这里讲的是play。 1、C->S : createStream 2、S->C : _result 服务端对客户端createStream请求的反馈 3、C-&a...

2018-08-20 09:50:09

阅读数 203

评论数 0

rtmp信令交互过程分析四-发布(publish)

概述 连接成功之后由客户端选择publish还是play,这里讲的是publish。 1、C->S : releaseStream、FCPublish、createStream releaseStream:释放stream,这一步的作用是通知服务端释放对应的s...

2018-08-20 09:49:25

阅读数 369

评论数 0

rtmp信令交互过程分析三-连接(connect)

概述 握手之后就是连接(connect),由客户端发起,服务端响应,connect指定的app。 1、C->S : connect app:需要connect的app名称 flashVer tcUrl fpad capabilities audioCodecs...

2018-08-20 09:48:27

阅读数 241

评论数 0

rtmp信令交互过程分析二-握手(Handshake)

rtmp信令第一步是握手(Handshake),握手有Simple Handshake和Complex Handshake,Simple Handshake为简单握手,不需要使用加密算法校验,Complex Handshake为复杂握手,需要使用openssl的算法校验。 一、Simple ...

2018-08-20 09:47:22

阅读数 166

评论数 0

rtmp信令交互过程分析一-概述

后续会写一系列关于rtmp的文章,这是第一篇信令交互的概述。 使用wireshark抓包分析rtmp推流和拉流过程的信令,大致如下: 通用部分 箭头>>>表示C->S,箭头...

2018-08-20 09:46:11

阅读数 193

评论数 0

ubuntu 64bit安装32bit兼容库

64位系统需要安装一些32位的库才能兼容32位的应用 更新源 dpkg --add-architecture i386 apt-get update 安装 apt-get install libc6:i386 apt-get install libncurses5:i386 apt...

2018-05-08 22:44:42

阅读数 331

评论数 0

ubuntu server 14.04和18.04挂载vmware共享文件夹

之前试过在Linux中mount -t cifs的方式挂载windows的共享目录,但这是通过网络挂载,有时拔掉网线或者IP冲突时经常掉线,有时编译大文件频繁读写时也出问题。所以就使用直接挂载vmware共享文件夹的方式,比较稳定。 1、ubuntu server 14.04 先在虚拟机U...

2018-05-08 22:42:30

阅读数 1564

评论数 0

ubuntu server安装vmware-tools

ubuntu server服务器版和ubuntu desktop 桌面版安装vmware-tools最大的区别就是没有图形界面,需要通过命令行挂载才能找到vmware-tools的安装包。 1、挂载拷贝安装包 mkdir /mnt/vmtools mount -t iso9660 /dev/c...

2018-05-08 22:40:07

阅读数 695

评论数 0

linux socket使用ARP判断局域网指定IP是否被占用

项目中需要判断局域网内某个IP是否被占用,一开始想到的是ping命令,但是ping只能判断同一网段的IP。后来发现linux使用arping命令可以判断,如使用arping -D -f -w 1 x.x.x.x 但是对于经过裁剪的嵌入式linux,busybox中不一定还保留arping命令,而...

2018-05-03 17:48:09

阅读数 236

评论数 0

Makefile C与C++混编的简单写法

用了很久的Linux,感觉还是对Makefile不够熟悉,经常为一个复杂一点的项目的Makefile折腾半天。现在对Makefile的基本写法做一下总结,方便以后查阅。 这里用我近期写的一个Makefile做讲解,是一个C与C++混编的项目。并附上完整的Makefile内容。 目录结构是:...

2018-05-03 16:59:37

阅读数 513

评论数 0

使用gsoap编译生成onvif源码C/C++文件

1、gsoap工具编译与安装 需要先安装openssl sudo apt-get install openssl sudo apt-get install libssl-dev 自行下载gsoap源码并解压,进入gsoap源码下 ./config make sudo make inst...

2018-03-05 16:31:15

阅读数 434

评论数 1

https server的ssl协议实现

1、简介 HTTPS协议简单的说就是经过ssl加密的HTTP协议,本文不介绍https server中http信令的实现,只介绍ssl的实现。 2、需要的库 使用openssl实现ssl,需要编译openssl生成libssl.a和libcrypto.a 3、API的使用 需要包...

2018-03-05 15:56:17

阅读数 231

评论数 0

web无插件解码播放H264/H265(WebAssembly解码HTML5播放)

我之前写过一篇《web无插件解码播放H264/H265(js解码HTML5播放)》,与本文的项目意义基本一致,不同的是实现方案有一定差异。之前介绍的是纯JS解码,本文介绍WebAssembly解码。 本项目已经用于实际产品之中,亲测可用。 项目描述: 视频传输使用websocket协议...

2018-03-04 14:42:55

阅读数 12536

评论数 17

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