随笔分类 - 音视频技术
MP4封装格式
摘要:一、规范介绍 ISO/IEC 14496是MPEG专家组指定的MPEG-4标准。该标准分为21个部分: Part 1: Systems Part 2: Visual Part 3: Audio Part 4: Conformance testing Part 5: Reference softwar
阅读全文
JPEG编码协议--DCT变换
摘要:从之前的几篇文章介绍可以看出,JPEG编码最重要的一步就是DCT变换,将空域的图像信号转换到频域,达到良好的去空间相关性的性能,DCT变换本身是无损的。因此DCT变换在图像编码领域被广泛应用。 一、一维DCT变换 在JPEG编码中使用了二维DCT变换,一维DCT是二维的基础,我们先看下一维DCT变换
阅读全文
eSpeek实现中文文字转语音功能
摘要:最近业务上面有个文字转语音的想法,搜了下espeak可以实现这部分功能,搞下来试试效果! 一、源码包下载 1、下载pa_stable_v190700_20210406.tgz http://www.portaudio.com/download.html 2、下载espeak-1.48.04-sour
阅读全文
JPEG编码协议--代码实现
摘要:通过前面几篇的JPEG编码原理和文件格式解析,此篇通过简单的sample代码来具体介绍下JPG有损编码的简单实现,具体的说明见代码注释,改bmp2jpg.c实现了BMP图片到JPG图片的格式转换, 使用gcc ./bmp2jpg.c -std=c99 -lm编译,执行。 1 #include <st
阅读全文
H.265编码协议---指数哥伦布编码解析
摘要:在H.265的编码语法参数解析中,语法元素描述符等于ue(v)或se(v)时,表示使用指数哥伦布编码。编码为ue表示为无符号指数哥伦布编码,编码为se表示有符号指数哥伦布编码。 如下表所示,给出了指数哥伦布编码的码字结构,该结构将二进制比特流串分为了“前缀”和“后缀”两个部分。其中,“前缀”通过计算
阅读全文
H.265编码协议---SPS语法解析
摘要:一、背景 最近搞Intel平台的多路复用视频解码,发现某些视频会报解码不兼容参数的报错,分析MFX的源码(如下图所示),解码实例通过对比新旧的SPS部分参数来判断是否是相同的视频,当前应用只判断了分辨率,所以当遇到sps_max_dec_pic_buffering数量不一致的码流时,就会导致解码器报
阅读全文
JPEG编码协议--图片实例解析
摘要:接上一篇JPEG压缩数据格式,本篇文章通过分析实例图片来理解学习文件格式。 图片实例一、 通过16进制打开图片一,如下图所示,所有的标记和标记段已标出。 依次解析这些字段: ①、SOI:独立标记,标识图像开始; ②、APP0:预留的APP数据,APP0一般为交换格式和图像识别信息。 00 10 =>
阅读全文
JPEG编码协议--压缩数据格式
摘要:接上篇学习了JPEG的编码原理,本篇学***EG文件压缩数据格式,文章内容主要来自ITU-t81标准,加之个人的理解说明。 一、文件结构 JPEG文件使用JFIF格式作为交换格式标准。如下图所示,JPG文件由各种数据段组成,解码时依次解析段得到原始数据。 二、 压缩数据格式规范的通用方面 从文件结构
阅读全文
JPEG编码协议--编码原理
摘要:音视频领域里面,JPEG编码是最常用的图片编码格式。接下去几篇文章打算从JPEG图片编码开始到视频编解码,学习总结下音视频的编码原理、相关文件协议,现在让我们先进入jpeg编码。 一、JPEG有损编解码简介 如上图所示,为jpeg编解码的流程图。图片编码:离散余弦变换->量化->熵编码,图片解码:熵
阅读全文
RTMP和RTSP区别
摘要:从网络上接收视频时首先要解协议(RTSP/RTMP/HTTP),然后是解格式(MKV,RMVB),之后才是将视频(H264)和音频(AAC)格式数据分别解码为图像(RGB/YUV)和声音(PCM),再根据时间戳同步播放。 RTSP+RTP主要用于IPTV,原因是传输数据使用的是UDP,在网络环境比较
阅读全文
音视频技术开发--FFmpeg+libx264配置安装
摘要:之前几篇完成了V4L2的学习,通过V4L2我们能够采集到了YUYV的视频数据,不过可以看到直接传输YUV格式的数据,数量量是巨大的,网络延时严重。所以我们需要对YUV数据进行压缩编码。 目前主流的视频编码有h.264/h.265/vp9/AVS/AV1等等,这边我们以最常见最经典的h.264格式来压
阅读全文
音视频技术开发--V4L2学习(三)
摘要:接上篇《音视频技术开发--V4L2学习(二)》 在上篇中,通过YUYV格式后,已经成功采集播放了UVC摄像头的数据,下面我们来学习下V4L2的采集播放代码。 四、 V4L2 实例代码剖析 我们首先看下UCV数据采集的capturer_mmap.c源码。Linux系统中,视频设备被当作一个设备文件来看
阅读全文
音视频技术开发--V4L2学习(二)
摘要:接上篇《音视频技术开发--V4L2学习(一)》 三、 V4L2 Sample增加正确的色彩格式 首先接上面运行sample,运行画面花屏问题,怀疑是UVC采集的不是YUV420,我们尝试改成其他像素格式试试。 打卡代码的capturer_mmap.c文件,可以看到sample里面只有三种格式(如下图
阅读全文
音视频技术开发--V4L2学习(一)
摘要:一、前言 从本篇开始,打算利用空闲的碎片时间,记录下平时学习的东西,好记性不如烂笔头。俗话说纸上得来终觉浅,就从一个小项目着手学习吧。目前手头上有个UVC摄像头,就做一个视频远程播放的小玩意吧,对于中间用到的技术进行学习探究。 如上图所示,系列 文章计划从UVC视频采集开始,一路经过采集、编码、rt
阅读全文