yuv encode h264 test

原始图像

shell.albert@yantai:~/project/H.264/football>ls -l fb001.yuv fb002.yuv fb003.yuv fb011.yuv fb012.yuv fb013.yuv

-rw-r--r-- 1shell.albert users 126720 Feb 12 2002 fb001.yuv

-rw-r--r-- 1shell.albert users 126720 Feb 12 2002 fb002.yuv

-rw-r--r-- 1shell.albert users 126720 Feb 12 2002 fb003.yuv

-rw-r--r-- 1shell.albert users 126720 Feb 12 2002 fb011.yuv

-rw-r--r-- 1shell.albert users 126720 Feb 12 2002 fb012.yuv

-rw-r--r-- 1shell.albert users 126720 Feb 12 2002 fb013.yuv

合并为一个yuv文件

cat fb001.yuvfb002.yuv fb003.yuv fb011.yuv fb012.yuv fb013.yuv > 123.yuv

shell.albert@yantai:~/libx264>ls -l 123.yuv

-rw-r--r-- 1shell.albert users 760320 Apr 24 14:41 123.yuv

计算尺寸

126720*6=760320

正好对应上。


已知数据源为352x240YUV420格式的,所以一帧的数据量为width*height*3/2

即为350*240*3/2=126720.00

那么最终的数据文件123.yuv中会包含

760320/126720=6.00帧原始的yuv图像。


使用libx264进行yuv2h264编码后,如下

shell.albert@yantai:~/libx264>ls -l 123.yuv libx264123.264

-rw-r--r-- 1shell.albert users 760320 Apr 24 14:41 123.yuv

-rw-r--r-- 1shell.albert users 44376 Apr 24 14:45 libx264123.264

可以数据量差距还是很大的,所以视频图像是需要先进行264编码后,再进行传输,然后再接收解码回显的。

libx264期望原始的yuv420p的数据流输入格式,如果是其他的则需要先进行转换。


如果想进入mjpegpng图像进行h264压缩,那么在此之前必须先将mjpeg转换为原始的yuv图像再送入libx264进行编码。


接收端接收到h264文件,解码为yuv,然后转换为RGB,再使用QImage生成图像,使用QPixmap画到QWidget上面。



libx264只是一个h264编码库,将yuv420的输入编码成h264。没有解码功能,若想将h264解码还原为yuv数据,


则需要使用ffmpeg。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值