首页 > TAG信息列表 > YUV

如何实现RTMP或RTSP播放端回调YUV/RGB数据?

​今天某乎收到个问题推荐,如何实现RTSP回调YUV数据,用于二次处理? 正好前些年我们做RTSP和RTMP直播播放的时候,实现过相关的需求,本文就以Android为例,大概说说具体实现吧。 先说回调yuv或rgb这块意义吧,不管是RTSP还是RTMP直播播放模块,解码后的yuv/rgb数据,可以实现比如快照(编码保存png

RGB转YUV

  根据前面YCbCr转RGB章节,可以知道YUV与RGB互转的公式。这里不再赘述,直接上RGB转YUV的代码。   RGB2YUV.v 1 //************************************************************************** 2 // *** file name : RGB2YUV.v 3 // *** version : 1.0 4

Android-YUV图像转换算法和检测工具

1. 格式说明 在安卓开发的一些场景,比如操作相机输出、视频编解码中会用到YUV图像格式。YUV中最常用的是YUV420格式,YUV420就是每4个Y分量共用一个U分量和一个V分量。 YUV420分为4种: I420: YYYYYYYY UU VV YV12:YYYYYYYY VV UU NV12:YYYYYYYY UVUV NV21:YYYYYYYY VUVU I420和YV12属于

YV12 YUV转RGB

const char fragmentShader_yuv420p[] = { "precision mediump float;\n" "uniform sampler2D Ytex;\n" "uniform sampler2D Utex,Vtex;\n" "varying vec2 vTextureCoord;\n" "void main(void) {\n" " float nx,

YUV 数据格式

YUV 数据格式概览 YUV 的原理是把亮度与色度分离,使用 Y、U、V 分别表示亮度,以及蓝色通道与亮度的差值和红色通道与亮度的差值。其中 Y 信号分量除了表示亮度 (luma) 信号外,还含有较多的绿色通道量,单纯的 Y 分量可以显示出完整的黑白图像。U、V 分量分别表示蓝 (blue)、红 (red) 分

【音视频】YUV、RGB视频像素处理

  1、分解YUV视频像素数据原理 参照雷神博客:https://blog.csdn.net/leixiaohua1020/article/details/50534150 2、测试源码 源码及测试yuv文件下载地址:github  https://github.com/PengShiqiu/simple_media_test 1 #include <iostream> 2 #include <sys/types.h> 3 #inclu

opencv-day06

1、基本图形绘制 颜色空间: ---RGB:人眼的色彩空间 ---OpenCV默认使用BGR ---HSV 色相,饱和度,明亮度 ---HSB 与HSV是一个体系 ---HSL 和HSV/HSB有差别 ---YUV 主要用在视频领域,视频存储为节省数据使用的是YUV HSV : ---H : Hue,代表色相,即色彩。如红色,蓝色 ---S:Saturation,代表饱和度

【音视频开发(四)】---RGB转YUV 颜色空间转换

Android的MediaCodec编码,默认要求输入是原始视频图像格式,一般为YUV420,例如NV12, NV21。但算法库输出默认的颜色为RGB或者BGR,需要进行转化。而如果使用循环单纯用CPU转换是比较慢的,这里使用OpenCV来进行转换,OpenCV虽然也是用了CPU,但是他内部做了并行计算的优化是比较快的,例如NEON

ffmpeg常用功能汇总

抽帧 参考链接 ffmpeg -s 1920x1080 -i input.yuv -c:v rawvideo -filter:v select="between(n\, 30\, 100)" out.yuv 从视频中抽出30~100帧 裁剪视频画面: 参考链接 ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4 其中的w、h为裁剪后的画面大小,x、y为裁剪起始点 格

在V4l2框架下采集UVC摄像头的YUV与JPEG数据

#include <errno.h> #include <fcntl.h> #include <linux/videodev2.h> #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/ioctl.h> #include <sys/mman.h> #include

将YUV420P图像水平镜像翻转——音视频(一)

YUV格式   Y:明亮度  UV:色彩及饱和度 YUV420即4个Y对应一组UV YUV420P的存储 YUV 420P 和 YUV 420SP 都是基于 Planar 平面格式 进行存储的,先存储所有的 Y 分量后, YUV420P 类型就会先存储所有的 U 分量或者 V 分量,而 YUV420SP 则是按照 UV 或者 VU 的交替顺序进行存储    Y

影像算法解析——JPEG 压缩算法

影像算法解析——JPEG 压缩算法 如云般飘过 调色师 / 剪辑师 / Mac重度用户/ 摄影爱好者 309 人赞同了该文章 由于视频是由一帧帧图像构成的,研究视频编码首先先要研究图像编码。这篇文章就详细说一下 JPEG 是如何压缩一个图像的。 先简单介绍一下 JPEG(Joint Photographic Exp

RGB转YUV

YUV常见格式是以下四种,其他的格式自行搜索,以下是转换方法 I420: YYYYYYYY UU VV =>YUV420P YV12: YYYYYYYY VV UU =>YUV420P NV12: YYYYYYYY UVUV =>YUV420SP NV21: YYYYYYYY VUVU =>YUV420SP 以下转换方法是RGBA的像素格式,如果是ARGB,RGB,BGR等,自行去转换, 或者调整方法

H.264编码器使用

进行H.264编码,C++中比较好用库为libx264,此库封装了H.264编码功能,编码的功能分为几步 1、初始化H.264编码器,指定输入源YUV的格式,m_x264_param中主要配置流尺寸,码率,帧率,等参数,图片输入源设定YUV格式,一般YUV420格式居多,节省存储空间,设置H.264流的尺寸需要和YUV图片尺寸一致。    

YUV-VIEWER之YUV解析器

YUV是视频原始数据存储格式,如何将文件中的YUV解析出来呢? 一、YUV概要         YUV中的Y表示图像的亮度,即灰度值;U和V表示图像的色度,即图像的颜色。一帧YUV数据只提取Y分量,仍然可以完整的显示这一帧图像,但是黑白色。         YUV存储格式为两种: planar : 平面格式,即先存储Y

音视频之播放YUV数据(十二)

使用SDL显示YUV数据 宏定义 extern "C" { #include <libavutil/imgutils.h> } #define RET(judge, func) \ if (judge) { \ qDebug() << #func << "error" << SDL_GetError(); \ return; \ } static const

音视频之YUV(十一)

简介 YUV,是一种颜色编码方法,跟RGB是同一个级别的概念,广泛应用于多媒体领域中。也就是说,图像中每一个像素的颜色信息,除了可以用RGB的方式表示,也可以用YUV的方式表示。 与RGB的对比 体积更小 如果使用RGB 比如RGB888 (R、G、B每个分量都是8bit) 1个像素占用24bit(3字节) 如果

ffmpeg rgb_to_mp4

视频编码 1.读取RGB文件转换为yuv 2.压缩为h264 3.封装为MP4 ffmpeg -i test.mp4 -pix_fmt bgra out.rgb av_interleaved_write_frame 1.AVFormatContext *s 2.AVPacket *pkt 3.按照dts排序 4.av_write_frame (缓冲处理dts) rgb_to_mp4.cpp extern "C" { #include <liba

ffmpeg使用说明(2):ffmpeg提取video,audio,yuv/rgb,PCM

目录提取视频保留封装格式转换封装格式提取音频保留封装格式转换封装格式提取yuv不改变参数改变参数提取rgbyuv与rgb互转提取pcm 提取视频 保留封装格式 ffmpeg -i cctv1.flv -an -vcodec copy cctv1_copy.flv $ ffprobe cctv1.flv Input #0, flv, from 'cctv1.flv': Metadata:

【音视频系列1】视频格式YUV444、YUV422,、YUV420详解

本篇文章仅介绍YUV444、YUV422、YUV420等使用比较频繁的格式 简介: YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。 历史: Y'UV的发明是由于彩色电视与黑白电视的过渡

RGB与YUV的转换

 计算机领域,RGB被称为基色分量,组合后能显示的颜色叫做颜色空间,一般取值范围从0-255(2^8,可以显示1600万多种颜色;现在有的显示器为10位位深,即2^10,约可以显示10亿种颜色) 还有一种显示方法即YUV显示法: 只黑白显示时,则只需要拿到Y值就可以了,彩色显示时则需要拿到YUV三个值。    

Android 音视频采集那些事

音视频采集   在整个音视频处理的过程中,位于发送端的音视频采集工作无疑是整个音视频链路的开始。在 Android 或者 IOS 上都有相关的硬件设备——Camera 和麦克风作为输入源。本章我们来分析如何在 Android 上通过 Camera 以及录音设备采集数据。本章可结合之前发布的文章Android

使用FFMPEG5.0和SDL2.0编写视频简单播放器

使用ffmpeg5.0和SDL1.2(操作系统原本安装了这个版本,所以想先用这个库调试看看),编写视频播放器daemon时,视频卡在第一帧会报错: 测试例程如下: int B_Play_Openfile(const char* szFilePath) { int iRet = 0; int iVideo_index = 0; char szError[128] = {0}; unsigned char *o

视频参数

视频参数 1. h2v libx64 h264(Constrained Baseline) 2. h264 (Constrained Baseline) (avc1 / 0x31637661), Constrained Baseline, 约束基线 3. yuv420p yuv, 分为三个分量 y表示 明亮度(Luminance或Luma), 灰度值 u, v, 表示的则是色度(Chrominance或Chroma), 作用是 描述 影像

视频流

视频流 视频流 包括 编码流 和 原始流 1. 编码流 经过压缩算法压缩的 流数据, 称为 编码流 又因为目前 压缩/编码算法以 H264 为主, 因此常常称为 H264码流 2. 原始流 未经压缩的流数据, 是解码后的 流数据, 称为 原始流 可以想象视频是由 一幅一幅在时间上连续的 图像 组成的, 而