视频编解码算法库 (可支持H263、h264、h265视频编解码)

        这么多年一直在做音视频的开发,基本上都是用大家熟知的ffmpeg完成视频的编解码,要说是用起来也算比较简单,但是想要用好其实也不容易,今天心血来潮,决定做一个通用的视频编解码sdk,把调用接口、参数简单化,供大家使用;

        视频编解码基本上还是采用libx264、libx265以及ffmpeg完成的,在同码率、同分辨率等参数配置情况下,压缩到同样画质下H265肯定要比H264压缩比高,简单理解,就是在同样的图像质量下,H265编码的视频大小比H264减少了大约40%-50%,大概是一半的水平。

1、码率

在码率方面,比起264/AVC,265/HEVC提供了更多不同的工具来降低码率,以编码单位来说,H.264中每个宏块(宏块/MB)大小都是固定的16x16像素,而265的编码单位可以选择从最小的8x8到最大的64x64;

2、计算量

在效率方面,h265还是比较吃cpu的,基本上很多时候软编解码都完成不了,所以很多时候需要用的h265的时候,可能需要采用硬编码来实现;

目前我们自己封装的编解码库可以支持H263、h264、h265等多种视频编解码接口比较简单,通过以下4个函数就可以完成复杂的编解码,也可以实现转码和视频转换、视频缩放等功能,视频分辨率可以从cif~1080p~4k 都可以全面支持;

int        uniqueVideoInit()

int        uniqueVideoDestroy()

int        uniqueVideoEncode()

int        uniqueVideoDecode()

伪代码:

只要设置基本视频参数就可以完成调用,非常方便简单;

int main(int argc, char* argv[])
{
	int iCodecId = 2, iCodecType = 0;

	if(argc < 5)
	{
		printf("Error:argc=%d\n",argc);

		return -1;
	};

	iCodecType = atoi(argv[1]);
	if (iCodecType < 0)
	{
		iCodecType = 0;
	}

	iCodecId = atoi(argv[2]);
	if (iCodecId <= 0)
	{
		iCodecId = 0;
	}
	
	strncpy(gacInFilename, argv[3], 127);
	strncpy(gacOutFilename, argv[4], 127);

	
	stVideoContext *pstContext = NULL;
	pstContext = (stVideoContext *)malloc(sizeof(stVideoContext));
	if (pstContext == NULL)
	{
		return -1;
	}

    //iCodecType=0:encode, iCodecType=1:decode;
	pstContext->iCodecType = iCodecType;
	pstContext->iCodecId = iCodecId;
	pstContext->iFrameRate = 30;
	pstContext->iInWidth = VIDEO_WIDTH;
	pstContext->iInHeight = VIDEO_HEIGHT;
	pstContext->iOutWidth = VIDEO_WIDTH;
	pstContext->iOutHeight = VIDEO_HEIGHT;

	if( uniqueVideoInit(pstContext) == -1)
	{
		return -1;
	}

	vcEncode(pstContext);
	uniqueVideoDestroy(pstContext);

	free(pstContext);

	getchar();

	return 0;
}

自研的音频编解码算法库


        为了解决各种音频编解码的差异性,我根据多年的音视频编解码经验自研整理了一个编解码算法库,可以支持多种平台应用,项目支持H263、h264、h265等多种视频编解码算法及测试程序和音频文件,后续还会继续更新迭代算法,接口调用也特别简单,几行代码就可以解决所有的视频编解码工作,让音视频开发更简单;

windows平台和linux平台的我都已经编译好了,其他平台如有需要也可以支持,如果需要沟通交流可以跟我联系。

tel:18108010758

vx:unique_no_1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

音视频工具站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值