V4L2-H264Enc
测试功能
- 使用ffmpeg工具,将视频生成特定格式(NV12/NV21/YUV420)的YUV源文件
- 输入YUV格式的文件, 配置格式,输出h264码流.
- 使用ffmpeg或者其他码流分析工具,导入VPU编码后的数据,看是否能正常解码。
生成YUV数据
- 从视频文件中输出3帧nv12格式数据. vframes控制输出的帧数.
ffmpeg -i video.mp4.dump.h264 -pix_fmt nv12 -vframes 3 video-nv12.yuv
应用程序基本思路
- 使用标准的V4L2 API.
- 初始化output 信息. 指定输入格式,宽高. 根据宽高申请内存. < NV12/NV21/YUV420P > < width * height > 等等
- 初始化capture信息. 指定输出格式,根据输入宽高,申请一帧大小(实际码流肯定小于一帧.) < H264` >
- 循环读入帧文件,编码器编码
- 结束
测试方法
编译应用程序v4l2_h264enc
cd doc/开发使用说明/VPU编解码驱动和应用/v4l2-h264enc/src
../../../../../buildroot/buildroot/output/host/bin/mips-linux-gnu-gcc v4l2-h264enc.c v4l2.c -o v4l2-h264enc
执行
./v4l2_h264enc -t [nv12,nv21,yuv420] -v [/dev/videox] -f [input yuv data] -w [input picture widht] -h [input picture height]
参数说明:
- 支持的输入格式 -t: nv12, nv21, yuv420
- 输入设备选择-v: /dev/videoX, 选择helix设备节点
- 输入yuv数据文件 -f:
- 输入yuv数据文件宽高: -w 1280 -h 720