音视频
文章平均质量分 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 · 1836 阅读 · 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 · 955 阅读 · 0 评论 -
ffmpeg 采集 yuyv422数据 转成 yuy420数据 并播放
本实验需要 libx264库安装 libx264wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz22. bunzip2 last_x264.tar.bz23. tar -vxf last_x264.tar4. ./configure --prefix=/usr/local/libx264 --enable-static --enable-shared --disable-asm -原创 2021-11-28 22:58:16 · 2545 阅读 · 2 评论 -
H264码流结构
H264 编码之后 输出的结果就是 H264码流,既可以保存为一个多媒体文件,也可以通过网络进行传输。第一层:NAL 网络抽象层,用于在网络上传输视频流的协议层。属于最外层。如果没有NAL层,我们在网络上传输二进制数据,不论是音频还是视频数据,如果出现乱序 重传 丢包,是没办法纠错的。NAL 层的主要作用就是用于纠错。请注意 他并不能阻止乱序 丢包 重传等问题,但是接收方可以根据NAL判断出 数据有没有乱序 丢包 重传等问题,并作出相应的反应。比如发生丢包,那接受当就可以会用NAL 分辨出丢了原创 2021-11-26 00:04:14 · 1873 阅读 · 0 评论 -
帧间压缩 与 帧内压缩
帧内压缩帧间压缩帧内压缩技术:如一张图片,它占用一定的空间,所谓的帧内压缩技术,就是解决这张图片内的数据压缩问题。比如图片的背景是蓝色的背景,在背景前有一个物体,那么整个蓝色的背景就可以用一个非常小的数据量进行存储,后面在进行解压缩的时候,通过很少的数据量就能完全还原回去。帧间压缩:余弦变换 与 CABAC 属于无损压缩。帧内压缩与帧间压缩属于有损压缩(去掉不必要的数据)。帧内压缩上图中白色区域为 4*4的宏块,可以根据不同的模式 推测出来帧间压缩将一张图划分为很原创 2021-11-26 00:01:13 · 5064 阅读 · 0 评论 -
H264中的宏块
H264编解码的时候 都是以宏块为单位的。原始图像左上角 划分出来一个宏块,这里 8*8的像素 被划分为一个宏块。右侧图 表示 宏块的一个具体的表现,最开始的时候 每个宏块的每个像素都有一定的值和颜色,后面将宏块压缩。宏块也可以再继续划分为各个子块,左图是 1616像素的大宏块,先划分为4个 88的小红块,每个8*8的小宏块,又继续划分更小的宏块。。 宏块的大小 对于我们编码有很重要的关系,宏块越小,压缩的时候 控制力就越好。...原创 2021-11-25 23:55:58 · 1455 阅读 · 0 评论 -
H264编码 GOP组 以及 I帧 B帧 P帧 说明
H264GOPI帧 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 · 5064 阅读 · 0 评论 -
ffmpeg 采集视频数据 后播放
虚拟机环境采坑记录:大坑:关于虚拟机打不开摄像头我调试的环境是Ubuntu 虚拟机, 首先确认 摄像头 是否可以正常打开,直接用茄子试试: cheese。如果打不开 首先确认 虚拟机是否有摄像头设备 /dev/video0, 如果没有的话需要添加设备,添加前确认 Windows主机可以打开相机,在设备管理器看一下有没有相机之类的设备,不行的话先卸载驱动 再重新加载驱动。虚拟机有摄像头设备后正常是这样的:摄像头已连接状态如果打开后界面是黑的,可以尝试 更换USB兼容性巨坑:1 Windo原创 2021-11-23 21:51:22 · 1587 阅读 · 0 评论 -
视频,图像,像素,分辨率,RGB, YUV简单说明
图片源于 李超老师,仅做个人笔记目录:视频图像像素分辨率RGB屏幕图像与屏幕的关系RGB色彩问题分辨率与宽高比帧率码流YUV,以及各个分量YUV与RGB的关系YUV常见格式YUV 的存储格式ffmpeg 关于 YUV的几条命令视频:图像图像由像素组成,如下图中的一个一个的小格子像素像素由 RGB组成的,RGB(红绿蓝三个颜色)分辨率分辨率:横向的像素个数 * 纵向的像素个数RGB屏幕由无数的发二极管组成的屏幕,每三个发光二极管(红 绿 蓝)组原创 2021-11-23 21:16:08 · 4221 阅读 · 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 · 1407 阅读 · 0 评论 -
ffmpeg 采集pcm音频数据 重采样 后播放
本实验内容是 使用 ffmpeg 采集音频数据,并进行重采样,最后播放。音频重采样: 将音频三元组(采样率,采样大小,通道数)的值转换为另一组值。如将 44100/16/2 装换成48000/16/2为什么要进行音频重采样:1 从设备采集的音频数据与编码器要求的数据格式不一致2 扬声器要求的音频数据与要播放的音频数据格式不一致3 更方便运算需要注意的是 重采样的数据不能太小,否则无法进行重采样,我用的是Ubuntu 虚拟机,每次采集数据的 packet包大小只有64,而64数据太少了,无法重采原创 2021-11-20 12:05:13 · 2147 阅读 · 1 评论 -
ffmpeg 采集pcm音频数据并播放
本实验记录了 初步使用ffmpeg 采集pcm原始音频数据,并以一定格式播放实验环境:Linux 系统,并安装了 ffmpeg包含 :ffmpeg 推流 音视频处理ffplay 播放器 拉流播放ffprobe 侦测多媒体文件 格式等基本信息MakefileBINS := audiotestCXX := gcc#.hINCDIRI :=INCDIRI += -I /usr/local/ffmpeg/include#LIBINCDIRI += -L /usr/local/原创 2021-11-19 20:42:40 · 3650 阅读 · 0 评论
分享