首页 > 其他分享 >FFMPEG AVFrame IYUV(I420)转Opencv Mat

FFMPEG AVFrame IYUV(I420)转Opencv Mat

时间:2023-02-01 09:25:29浏览次数:37  
标签:FFMPEG I420 frame IYUV height YY width data

AVFrame 转 Mat

IYUV(I420)格式

YY YY YY YY
u u u u
YY YY YY YY
v v v v
YY YY YY YY
u u u u
YY YY YY YY
v v v v
y = width * height
u(v) = width / 2 * height * 2 

伪代码

    ...   
    AVFrame *p_frame;//AV_PIX_FMT_YUV420P AV_PIX_FMT_YUVJ420P
    ...

    Mat rgbMat;
    Mat yuv_I420;
    yuv_I420.create(p_frame->height * 3 / 2, p_frame->width, CV_8UC1);

    uint8_t* p_data = yuv_I420.data;
	for (int j = 0; j < p_frame->height; j++)
	{
		memcpy(p_data
				, p_frame->data[0] + j * p_frame->linesize[0], p_frame->width);
		p_data += p_frame->width;
	}

	for (int j = 0; j < p_frame->height / 2; j++)
	{
		memcpy(p_data
				, p_frame->data[1] + j * p_frame->linesize[1], p_frame->width / 2);
		p_data += p_frame->width / 2;

	}

	for (int j = 0; j < p_frame->height / 2; j++)
	{
		memcpy(p_data
				, p_frame->data[2] + j * p_frame->linesize[2], p_frame->width / 2);
		p_data += p_frame->width / 2;
	}
	cvtColor(yuv_I420, rgbMat, COLOR_YUV2BGR_I420);

标签:FFMPEG,I420,frame,IYUV,height,YY,width,data
From: https://www.cnblogs.com/blackTree/p/17081403.html

相关文章

  • 使用FFmpeg把视频转换成音频
    title:使用FFmpeg把视频转换成音频date:2022-06-0821:04:40category:-爱好-黑科技tags:-FFmpeg-视频转音频cover:https://s1.ax1x.com/2022/11/23......
  • ffmpeg的常用参数
    -encoders查看支持的编码器Intel处理器的核心显卡支持的编码器带有qsv后缀(Intelquicksyncvideoacceleration)    NVIDIA独立显卡支持的编码器带有nvenc后......
  • 利用python函数调用ffmpeg批量进行转码
    本人学习python没几天,代码也没记住,写个函数到处查笔记,东拼西凑的。累……但是最终还是搞定了。欢迎高手指导,谢谢!单个文件转码#学会如何在python调用bat文件importos,......
  • FFMPEG常用代码
    FFMPEG常用代码FFMPEG夸平台:\是MAC终端的换行符^是windowsCMD的换行符本文中两种都有用到视频剪切ffmpeg-ss00:00:00-t0:0:10^-i"D:\AH_DATA\FFmpegTest\in......
  • ffmpeg视频抽帧
    视频文件是常见的一类数据,相关的任务包括视频物体检测、视频物体追踪、视频分类、视频检索和视频摘要抽取等。视频数据与图像数据非常类似,都是由像素点组成的数据。在非音......
  • ffmpeg windows10 批量转格式 .bat批处理文件
    echocurrentdir:%~dp0rem批量压缩分辨率setw=640seth=480setex0="mkv"setex1="mp4"mkdir"%~dp0%w%_%h%"for%%ain("%~dp0*.%ex0%")doffmpeg-threads2......
  • 如何用ffmpeg对3GP文件进行GOP转码设置
    最近项目中在播放3gp文件时,有时客户端解码识别,后面对3gp文件的GOP值进行修改了,然后可以正常播放。下面转码命令实例贴一下,供大家参考:ffmpeg-i5e02eec746384b2e9cdb5de6791......
  • FFmpeg:音频解码(FFmpeg 5.x 新API)(参考decode_audio.c)
    如果不是特别熟悉C/C++,又要使用FFmpeg.API处理一些简单的音视频业务,那么可以使用org.bytedeco:ffmpeg-platform,下面记录一下使用ffmpeg-platform音频解码的方法。1.代码......
  • FFmpeg:视频转封装(FLV转成MP4,不需要转码)(参考remuxing.c)
    如果不是特别熟悉C/C++,又要使用FFmpeg.API处理一些简单的音视频业务,那么可以使用org.bytedeco:ffmpeg-platform,下面记录一下使用ffmpeg-platform视频转封装的方法。1.基......
  • FFmpeg:视频帧格式转化(sws_scale)(参考scaling_video.c)
    如果不是特别熟悉C/C++,又要使用FFmpeg.API处理一些简单的音视频业务,那么可以使用org.bytedeco:ffmpeg-platform,下面记录一下使用ffmpeg-platform视频帧格式转化的方法。1.......