TLV 格式及编解码

简介: 几乎所有的需要在卡片和终端之间传送的数据都是TLV格式的.我给你举个例子方便快速理解:TLV是tag, length和value的缩写.一个基本的数据元就包括上面三个域.

几乎所有的需要在卡片和终端之间传送的数据都是TLV格式的.
我给你举个例子方便快速理解:
TLVtag, lengthvalue的缩写.一个基本的数据元就包括上面三个域. Tag唯一标识该数据元, lengthvalue域的长度. Value就是数据本身了. 举个例子, 下面是一个tlv格式的AID(应用标识符)字节串”9F0607A0000000031010”, 其中9F06是tag, 07是长度, A0000000031010就是AID本身的值了.

对于程序编写人员来说,如果有类似上面这样的一串TLV编码的字节串从卡片传过来, 怎么样从中提取我们想要的数据. 这就牵扯出TLV解码的问题了

TLV一种可变格式,TLV的意思就是:Type类型, Lenght长度,Value值;
Type和Length的长度固定,一般那是2、4个字节;
Value的长度有Length指定;

解析方法:
1.读取type 转换为ntohl、ntohs转换为主机字节序得到类型;指针偏移+2或4
2.读取lenght,转换为ntohl、ntohs转换为主机字节序得到长度;指针偏移+2或4
3.根据得到的长度读取value,指针偏移+Length;
TLV编码就是指先对Tag编码,再对Length编码,最后对Value编码。

相关文章
|
7月前
|
XML 数据格式 C++
AMF/GLTF格式在线转换
3D模型在线转换是一个可以进行3D模型格式转换的在线工具,支持多种3D模型格式进行在线预览和互相转换。
106 0
AMF/GLTF格式在线转换
|
2月前
|
编解码 Windows 内存技术
多媒体的格式
【10月更文挑战第5天】多媒体的格式。
19 3
如何使用 MusicFab 将 SoundCloud音频转换为 WAV格式?
这篇文章为你展示了如何利用三方工具将SoundCloud音频转化为WAV格式以便进行兼容收听。
|
流计算 计算机视觉 索引
使用ffmpeg将视频转成HLS(m3u8)格式
HLS (HTTP Live Streaming)是苹果推出的视频流协议,HLS格式的视频包含一个m3u8文本文件,以及众多的.ts的视频片段,而m3u8文本文件的作用就是将这些ts片段索引起来。 因为HLS协议是将视频切分成很多小的ts片段,这些小片段很适合放到cdn上,有很多视频文章都使用了hls格式传输视频。今天我在这里教大家如何用ffmpeg将mp4格式的视频转为HLS(m3u8)格式。
731 0
|
编解码 Linux vr&ar
如何使用ffmpeg将.m4a 格式转换为 pcma格式
ffmpeg是一款开源的万能媒体格式转换工具。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的
|
Linux 计算机视觉 iOS开发
使用ffmpeg将MP4转换为WebM格式
使用ffmpeg将MP4转换为WebM格式
1726 2
|
Java
Java实现将视频转换为mp4格式
Java实现将视频转换为mp4格式
1476 0
|
编解码 内存技术 容器
【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )(二)
【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )(二)
264 0
【FFmpeg】使用 FFmpeg 处理音视频格式转换流程 ( 解复用 | 解码 | 帧处理 | 编码 | 复用 )(二)
|
Linux
X264编解码器开发: Linux下读取摄像头数据,通过X264压缩编码为X264格式裸流视频文件
X264编解码器开发: Linux下读取摄像头数据,通过X264压缩编码为X264格式裸流视频文件
306 0
|
编解码 iOS开发
H264 编解码
H264编解码(一) —— 基本概览H264编解码(二) —— ios中的H264硬编解码的实现H264编解码(三) —— 一个简单的H264编解码示例
1676 0