音视频
文章平均质量分 56
Ma浩然
嵌入式打杂专家
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RTSP,RTP,RTCP协议
比如,对于I帧、P帧、B帧数据,由于其重要性依次降低,故在网络状况不好的情况下,可以考虑在B帧丢失甚至P帧丢失的情况下不进行重传,这样,在客户端方面,虽然可能会有短暂的不清晰画面,但却保证了实时性的体验和要求。如果是UDP传输 则需要另外创建 RTP udp Socket 与 RTCP udp Socket,并且 RTP和RTCP分别使用两个相邻的UDP端口,RTP报文使用低端口,并且是偶数的UDP端口,RTCP报文使用高端口,并且是奇数的UDP端口(偶数的UDP端口+1)。原创 2023-01-30 10:08:34 · 1877 阅读 · 1 评论 -
ffmpeg 采集 yuyv422数据 转 yuy420数据 后 编码 播放
实验 ffmpeg 采集 yuyv422数据 转 yuy420数据 后 编码 播放 #include <stdio.h> #include <string.h> #include "libavutil/avutil.h" #include "libavdevice/avdevice.h" #include "libavformat/avformat.h" #include "libavcodec/avcodec.h" #include "libswresample/swresampl原创 2021-11-29 00:05:07 · 977 阅读 · 0 评论 -
ffmpeg 采集 yuyv422数据 转成 yuy420数据 并播放
本实验需要 libx264库 安装 libx264 wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz2 2. bunzip2 last_x264.tar.bz2 3. tar -vxf last_x264.tar 4. ./configure --prefix=/usr/local/libx264 --enable-static --enable-shared --disable-asm -原创 2021-11-28 22:58:16 · 2576 阅读 · 2 评论 -
H264码流结构
H264 编码之后 输出的结果就是 H264码流,既可以保存为一个多媒体文件,也可以通过网络进行传输。 第一层:NAL 网络抽象层,用于在网络上传输视频流的协议层。属于最外层。 如果没有NAL层,我们在网络上传输二进制数据,不论是音频还是视频数据,如果出现乱序 重传 丢包,是没办法纠错的。NAL 层的主要作用就是用于纠错。请注意 他并不能阻止乱序 丢包 重传等问题,但是接收方可以根据NAL判断出 数据有没有乱序 丢包 重传等问题,并作出相应的反应。比如发生丢包,那接受当就可以会用NAL 分辨出丢了原创 2021-11-26 00:04:14 · 1900 阅读 · 0 评论 -
帧间压缩 与 帧内压缩
帧内压缩 帧间压缩 帧内压缩技术:如一张图片,它占用一定的空间,所谓的帧内压缩技术,就是解决这张图片内的数据压缩问题。比如图片的背景是蓝色的背景,在背景前有一个物体,那么整个蓝色的背景就可以用一个非常小的数据量进行存储,后面在进行解压缩的时候,通过很少的数据量就能完全还原回去。 帧间压缩: 余弦变换 与 CABAC 属于无损压缩。帧内压缩与帧间压缩属于有损压缩(去掉不必要的数据)。 帧内压缩 上图中白色区域为 4*4的宏块,可以根据不同的模式 推测出来 帧间压缩 将一张图划分为很原创 2021-11-26 00:01:13 · 5122 阅读 · 0 评论 -
H264中的宏块
H264编解码的时候 都是以宏块为单位的。 原始图像左上角 划分出来一个宏块,这里 8*8的像素 被划分为一个宏块。右侧图 表示 宏块的一个具体的表现,最开始的时候 每个宏块的每个像素都有一定的值和颜色,后面将宏块压缩。 宏块也可以再继续划分为各个子块,左图是 1616像素的大宏块,先划分为4个 88的小红块,每个8*8的小宏块,又继续划分更小的宏块。。 宏块的大小 对于我们编码有很重要的关系,宏块越小,压缩的时候 控制力就越好。 ...原创 2021-11-25 23:55:58 · 1481 阅读 · 0 评论 -
H264编码 GOP组 以及 I帧 B帧 P帧 说明
H264 GOP I帧 B帧 P帧 说明 H264 未压缩的码流: Byte 字节单位的码流 = 640x480x1.5x15 = 691200 所有在网上传输的数据都是按照比特位计算的 所以要用 bit为单位 Bit位码流 = 640x480x1.5x15x8 = 55296000 即 55M 而 H264建议的 码流是 : 500kpbs 相比之下,被压缩了100倍。压缩比约为 1/100 帧率 = 15 :场景 实时通讯 开会之类的 帧率 = 30 : 场景 录制课程视频 帧率 =原创 2021-11-25 23:52:12 · 5145 阅读 · 0 评论 -
ffmpeg 采集视频数据 后播放
虚拟机环境采坑记录: 大坑:关于虚拟机打不开摄像头 我调试的环境是Ubuntu 虚拟机, 首先确认 摄像头 是否可以正常打开,直接用茄子试试: cheese。 如果打不开 首先确认 虚拟机是否有摄像头设备 /dev/video0, 如果没有的话需要添加设备,添加前确认 Windows主机可以打开相机,在设备管理器看一下有没有相机之类的设备,不行的话先卸载驱动 再重新加载驱动。虚拟机有摄像头设备后正常是这样的: 摄像头已连接状态 如果打开后界面是黑的,可以尝试 更换USB兼容性 巨坑: 1 Windo原创 2021-11-23 21:51:22 · 1608 阅读 · 0 评论 -
视频,图像,像素,分辨率,RGB, YUV简单说明
图片源于 李超老师,仅做个人笔记 目录: 视频 图像 像素 分辨率 RGB 屏幕 图像与屏幕的关系 RGB色彩问题 分辨率与宽高比 帧率 码流 YUV,以及各个分量 YUV与RGB的关系 YUV常见格式 YUV 的存储格式 ffmpeg 关于 YUV的几条命令 视频: 图像 图像由像素组成,如下图中的一个一个的小格子 像素 像素由 RGB组成的,RGB(红绿蓝三个颜色) 分辨率 分辨率:横向的像素个数 * 纵向的像素个数 RGB 屏幕 由无数的发二极管组成的屏幕,每三个发光二极管(红 绿 蓝)组原创 2021-11-23 21:16:08 · 4273 阅读 · 0 评论 -
ffmpeg 采集pcm音频数据 重采样 编码 后播放
本实验 需要AAC编码器,需要 libfdk-aac 包 大致数据流程: PCM数据 --> 重采样数据输入缓冲区 --> 进行重采样 -->重采样数据输出缓冲区 --> AVFrame编码器输入数据缓冲区 --->AAC编码器 ----> AVPacket码器输出数据缓冲区 --->AAC数据文件 . #include <stdio.h> #include <string.h> #include "libavutil/avutil.h"原创 2021-11-21 22:30:44 · 1437 阅读 · 0 评论 -
ffmpeg 采集pcm音频数据 重采样 后播放
本实验内容是 使用 ffmpeg 采集音频数据,并进行重采样,最后播放。 音频重采样: 将音频三元组(采样率,采样大小,通道数)的值转换为另一组值。如将 44100/16/2 装换成48000/16/2 为什么要进行音频重采样: 1 从设备采集的音频数据与编码器要求的数据格式不一致 2 扬声器要求的音频数据与要播放的音频数据格式不一致 3 更方便运算 需要注意的是 重采样的数据不能太小,否则无法进行重采样,我用的是Ubuntu 虚拟机,每次采集数据的 packet包大小只有64,而64数据太少了,无法重采原创 2021-11-20 12:05:13 · 2175 阅读 · 1 评论 -
ffmpeg 采集pcm音频数据并播放
本实验记录了 初步使用ffmpeg 采集pcm原始音频数据,并以一定格式播放 实验环境:Linux 系统,并安装了 ffmpeg包含 : ffmpeg 推流 音视频处理 ffplay 播放器 拉流播放 ffprobe 侦测多媒体文件 格式等基本信息 Makefile BINS := audiotest CXX := gcc #.h INCDIRI := INCDIRI += -I /usr/local/ffmpeg/include #LIB INCDIRI += -L /usr/local/原创 2021-11-19 20:42:40 · 3683 阅读 · 0 评论
分享