AVDataProcess/README.md

62 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 视音频数据处理入门
<br>
<br>
## 准备
yuv视频下载
>http://trace.eas.asu.edu/yuv/
yuv播放器[修改了一个YUV/RGB播放器](http://blog.csdn.net/leixiaohua1020/article/details/50466201)
>注意:<br />
>本文中像素的采样位数一律为8bit。由于1Byte=8bit所以一个像素的一个分量的采样值占用1Byte。<br />
>输出的U、V分量在YUV播放器中也是当做Y分量进行播放的。<br />
<br>
<br>
## 分离YUV420P像素数据中的Y、U、V分量
> 如果视频帧的宽和高分别为w和h那么一帧YUV420P像素数据一共占用w*h*3/2 Byte的数据。其中前w * h Byte存储Y接着的w * h * 1/4 Byte存储U最后w * h * 1/4 Byte存储V。
yuv420_split.cpp 程序中的函数可以将YUV420P数据中的Y、U、V三个分量分离开来并保存成三个文件。
调用方法:
> ./yuv420_split ./mediadata/lena_256x256_yuv420p.yuv 256 256
上述代码运行后将会把一张分辨率为256x256的名称为lena_256x256_yuv420p.yuv的YUV420P格式的像素数据文件分离成为三个文件
- output_420_y.y纯Y数据分辨率为**256x256**。注意播放时设置播放器分辨率。
- output_420_u.y纯U数据分辨率为**128x128**。注意播放时设置播放器分辨率。
- output_420_v.y纯V数据分辨率为**128x128**。注意播放时设置播放器分辨率。
<br />
<br />
## 分离YUV444P像素数据中的Y、U、V分量
> 说明如果视频帧的宽和高分别为w和h那么一帧YUV444P像素数据一共占用w * h * 3 Byte的数据。其中前w * h Byte存储Y接着的w * h Byte存储U最后w * h Byte存储V。
调用方法:
> ./yuv444p_split ./mediadata/lena_256x256_yuv444p.yuv 256 256
上述代码运行后将会把一张分辨率为256x256的名称为lena_256x256_yuv444p.yuv的YUV444P格式的像素数据文件分离成为三个文件
- output_444_y.y纯Y数据分辨率为**256x256**。
- output_444_u.y纯U数据分辨率为**256x256**。
- output_444_v.y纯V数据分辨率为**256x256**。
参考:[视音频数据处理入门RGB、YUV像素数据处理](http://blog.csdn.net/leixiaohua1020/article/details/50534150)
![](./images/leixiaohua_avDataProcess.png)