导航:首页 > 知识产权 > libyuv版权

libyuv版权

发布时间:2021-03-19 10:02:51

⑴ 怎么使用ffmpeg命令将422sp的yuv数据转成h264文件

x264软件和ffmpeg都直接可以转换h264 比如命令 ffmpeg -i source.yuv -vcodec libx264 -vb 1000k outfile.mp4

⑵ 影音格式

直接在网络里查,不就OK了。

网络里的介绍是最全的了。

格式介绍:
http://ke..com/view/33401.html?tp=0_11

影音格式可以分为:音频格式,视频格式,图片格式

音频格式介绍:
http://ke..com/view/178954.html?tp=1_11

视频格式介绍:
http://ke..com/view/2272.html?tp=3_11

图片格式介绍:
http://ke..com/view/19666.html?tp=2_11

⑶ 有关YUV420文件处理中的函数参数问题~图像处理或视频帧图像处理中的YUV

视频的不清楚,不过stride_。。应该是跨距,
如果yuv分开放应该没问题,如果yuv放在一起, 像 y u v y u v这样, 同一类值并不是紧挨着, 就需要指定间距了, 比如每个y之间间隔3, y是uint8的,间距就是3字节,
uyvy_out如果按uyvy存的话,那y的是2,u和v都是4,你最好直接看看那个函数的代码,这样比较确定

⑷ 如何使用jpeglib库压缩yuv422

找到了以前用过的一段程序,是可以正常工作的,你可以参考下

/**
riefjpeg编码,输入格式为uyvy
*/
voidwrite_YUV_JPEG_file(char*filename,unsignedchar*yuvData,intquality,
intimage_width,intimage_height)
{

structjpeg_compress_structcinfo;

structjpeg_error_mgrjerr;

FILE*outfile;/*targetfile*/
//JSAMPROWrow_pointer[1];/*pointertoJSAMPLErow[s]*/
//introw_stride;/*physicalrowwidthinimagebuffer*/
JSAMPIMAGEbuffer;

intband,i,buf_width[3],buf_height[3];
cinfo.err=jpeg_std_error(&jerr);

jpeg_create_compress(&cinfo);


if((outfile=fopen(filename,"wb"))==NULL){
fprintf(stderr,"can'topen%s ",filename);
exit(1);
}
jpeg_stdio_dest(&cinfo,outfile);


cinfo.image_width=image_width;/*imagewidthandheight,inpixels*/
cinfo.image_height=image_height;
cinfo.input_components=3;/*#ofcolorcomponentsperpixel*/
cinfo.in_color_space=JCS_YCbCr;/*colorspaceofinputimage*/

jpeg_set_defaults(&cinfo);

jpeg_set_quality(&cinfo,quality,TRUE);

//////////////////////////////
cinfo.raw_data_in=TRUE;
cinfo.jpeg_color_space=JCS_YCbCr;
cinfo.comp_info[0].h_samp_factor=2;
cinfo.comp_info[0].v_samp_factor=1;
/////////////////////////

jpeg_start_compress(&cinfo,TRUE);

buffer=(JSAMPIMAGE)(*cinfo.mem->alloc_small)((j_common_ptr)&cinfo,
JPOOL_IMAGE,3*sizeof(JSAMPARRAY));
for(band=0;band<3;band++)
{
buf_width[band]=cinfo.comp_info[band].width_in_blocks*DCTSIZE;
buf_height[band]=cinfo.comp_info[band].v_samp_factor*DCTSIZE;
buffer[band]=(*cinfo.mem->alloc_sarray)((j_common_ptr)&cinfo,
JPOOL_IMAGE,buf_width[band],buf_height[band]);
}

unsignedchar*rawData[3];
rawData[0]=yuvData;
rawData[1]=yuvData+image_width*image_height;
rawData[2]=yuvData+image_width*image_height*3/2;

intmax_line=cinfo.max_v_samp_factor*DCTSIZE;
for(intcounter=0;cinfo.next_scanline<cinfo.image_height;counter++)
{
//bufferimage.
for(band=0;band<3;band++)
{
intmem_size=buf_width[band];
unsignedchar*pDst=(unsignedchar*)buffer[band][0];
unsignedchar*pSrc=(unsignedchar*)(rawData[band]+//yuv.data[band]分别表示YUV起始地址
counter*buf_height[band]*buf_width[band]);

for(i=0;i<buf_height[band];i++)
{
memcpy(pDst,pSrc,mem_size);
pSrc+=buf_width[band];
pDst+=buf_width[band];
}
}
jpeg_write_raw_data(&cinfo,buffer,max_line);
}


jpeg_finish_compress(&cinfo);

fclose(outfile);

jpeg_destroy_compress(&cinfo);


}

⑸ 怎么使用jpeglib库压缩yuv

找到了以前用过的一段程序,是可以正常工作的,你可以参考下
/**
\brief jpeg编码,输入格式为uyvy
*/
void write_YUV_JPEG_file (char * filename, unsigned char* yuvData, int quality,
int image_width,int image_height)
{

struct jpeg_compress_struct cinfo;

struct jpeg_error_mgr jerr;

FILE * outfile; /* target file */
//JSAMPROW row_pointer[1]; /* pointer to JSAMPLE row[s] */
//int row_stride; /* physical row width in image buffer */
JSAMPIMAGE buffer;

int band,i,buf_width[3],buf_height[3];
cinfo.err = jpeg_std_error(&jerr);

jpeg_create_compress(&cinfo);

if ((outfile = fopen(filename, "wb")) == NULL) {
fprintf(stderr, "can't open %s\n", filename);
exit(1);
}
jpeg_stdio_dest(&cinfo, outfile);

cinfo.image_width = image_width; /* image width and height, in pixels */
cinfo.image_height = image_height;
cinfo.input_components = 3; /* # of color components per pixel */
cinfo.in_color_space = JCS_YCbCr; /* colorspace of input image */

jpeg_set_defaults(&cinfo);

jpeg_set_quality(&cinfo, quality, TRUE );

//////////////////////////////
cinfo.raw_data_in = TRUE;
cinfo.jpeg_color_space = JCS_YCbCr;
cinfo.comp_info[0].h_samp_factor = 2;
cinfo.comp_info[0].v_samp_factor = 1;
/////////////////////////

jpeg_start_compress(&cinfo, TRUE);

buffer = (JSAMPIMAGE) (*cinfo.mem->alloc_small) ((j_common_ptr) &cinfo,
JPOOL_IMAGE, 3 * sizeof(JSAMPARRAY));
for(band=0; band<3; band++)
{
buf_width[band] = cinfo.comp_info[band].width_in_blocks * DCTSIZE;
buf_height[band] = cinfo.comp_info[band].v_samp_factor * DCTSIZE;
buffer[band] = (*cinfo.mem->alloc_sarray) ((j_common_ptr) &cinfo,
JPOOL_IMAGE, buf_width[band], buf_height[band]);
}

unsigned char *rawData[3];
rawData[0]=yuvData;
rawData[1]=yuvData+image_width*image_height;
rawData[2]=yuvData+image_width*image_height*3/2;

int max_line = cinfo.max_v_samp_factor*DCTSIZE;
for(int counter=0; cinfo.next_scanline < cinfo.image_height; counter++)
{
//buffer image .
for(band=0; band<3; band++)
{
int mem_size = buf_width[band];
unsigned char *pDst = (unsigned char *) buffer[band][0];
unsigned char *pSrc = (unsigned char *) (rawData[band] + //yuv.data[band]分别表示YUV起始地址
counter*buf_height[band] * buf_width[band]);

for(i=0; i<buf_height[band]; i++)
{
memcpy(pDst, pSrc, mem_size);
pSrc += buf_width[band];
pDst += buf_width[band];
}
}
jpeg_write_raw_data(&cinfo, buffer, max_line);
}

jpeg_finish_compress(&cinfo);

fclose(outfile);

jpeg_destroy_compress(&cinfo);

}

⑹ JPEGLIB支持YUV数据直接压缩到JPG文件吗

jpg简介 jpg全名应该是JPEG JPEG 图片以 24 位颜色存储单个光栅图像。JPEG 是与平台无关的格式,支持最高级别的压缩,不过,这种压缩是有损耗的。渐近式 JPEG 文件支持交错。 jpg功能 可以提高或降低 JPEG 文件压缩的级别。但是,文件大小是以图像质量为代价的。压缩比率可以高达 100:1。(JPEG 格式可在 10:1 到 20:1 的比率下轻松地压缩文件,而图片质量不会下降。)JPEG 压缩可以很好地处理写实摄影作品。但是,对于颜色较少、对比级别强烈、实心边框或纯色区域大的较简单的作品,JPEG 压缩无法提供理想的结果。有时,压缩比率会低到 5:1,严重损失了图片完整性。这一损失产生的原因是,JPEG 压缩方案可以很好地压缩类似的色调,但是 JPEG 压缩方案不能很好地处理亮度的强烈差

⑺ 使用c#的directshowLib 直接播放yuv的参数设置

我用网吧里的网线插在自己用的笔记本上怎么不 行?后来我搜索了一下改IP 可是都改完了还是不能用这是为什么??? 跪求大婶们来解释·

⑻ libswscale\utils.c这个文件在哪

源代码是自己创建YUVI420数据并转换成RGB24数据
这里从yuv文件读取
YUV文件可从这下,都是I420格式
出现 libavutil/common.h 意外文件尾 错误,定义下__STDC_CONSTANT_MACROS即可

⑼ 使用c#的directshowLib 直接播放yuv的参数设置

那是因为C++与C#中的数据类型不对应而照成的。你可以使用C#调用C++ DLL的导出函数,在你的C#中实现即可。C++的导出函数一般在SDK中会详细说明,你对着改抄就可以了。下面给点例子:例如:C++的导出函数为:long WINAPI LoadDRV(void);你在C#中使用对应的方式声明这个函数的对应函数[DllImport("Tc08a32.dll", EntryPoint = "LoadDRV", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern Int32 LoadDRV();DllImport的语法你可以在MSDN上面找到详细的说明,这里对给出的示例做一下简单的说明括号中的第一个String参数是表明你要导入的DLL的目标路径,可以是别人C++导出函数的路径EntryPoint设置后,可以主动的搜索入口函数,可要可不要。CharSet是设置你接收时的字符类型的,这个很重要,某些时候,通过改变这个值的设置可以得到你的理想值。CallingConvention是指的一个导出标准,一般在C++的SDK中也可以看到这种导出标准,是什么,就对应的用什么。 注意使用时的类型转换,因为变量的类型不同,则使用不同的对应关系,这个网上也有很多的介绍,很简单。唯一需要注意的是一些指针类型,因为C#为安全机制没有指针一般的,C++中的 Char * 在C#中可以使用一个String来传值如果是LPSTR的话,那就需要使用一个char[]来实现,具体char[]有多长,你要根据你的SDK中的说明具体实现。实现完你需要的函数之后,你即可在你的项目中调用了。

阅读全文

与libyuv版权相关的资料

热点内容
武汉疫情投诉 浏览:149
知识产权合作开发协议doc 浏览:932
广州加里知识产权代理有限公司 浏览:65
企业知识产权部门管理办法 浏览:455
消费315投诉 浏览:981
马鞍山钢城医院 浏览:793
冯超知识产权 浏览:384
介绍小发明英语作文 浏览:442
版权使用权协议 浏览:1000
2018年基本公共卫生服务考核表 浏览:884
马鞍山候车亭 浏览:329
学校矛盾纠纷排查领导小组 浏览:709
张江管委会知识产权合作协议 浏览:635
关于开展公共卫生服务项目相关项目督导的函 浏览:941
闺蜜证书高清 浏览:11
转让房转让合同协议 浏览:329
矛盾纠纷排查调处工作协调交账会议纪要 浏览:877
云南基金从业资格证书查询 浏览:313
新知识的摇篮创造力 浏览:187
股转转让协议 浏览:676