常用的文件分辨率有 320*240 640*480 800*600 1280*720 1920x1080
先安装ffmpeg,然后利用ffmpeg将对应的MP4文件解封装为H264,再将对应的H264解码为YUV,也可以使用ffmpeg转分辨率,或者转封装。
首先自己用电脑摄像头录制一段mp4文件,或者是flv文件
将mp4转封装为flv
./ffmpeg -i 1.mp4 -c copy -f flv 1.flv
将MP4文件解封装成h264
./ffmpeg -i 640x480.mp4 640x480.h264
将h264文件解码为yuv文件
./ffmpeg -c:v h264_mmal -r 18 -i 640x480.h264 640x480.yuv
h264文件改变分辨率:
./ffmpeg -r 18 -i 640x480.h264 -vf scale=1280:720 1280x720.h264
mp4文件改变分辨率:
./ffmpeg -i 640x480.mp4 -vf scale=1280:720 1280x720.mp4
将yuv编码为H264:
./ffmpeg -s 1920x1080 -i XXXX.yuv -b:v 7776k -r 25 -c:v h264_omx XXXX.h264
yuv转png文件
./ffmpeg -s 1920x1080 -i input.yuv output.png
从h264转yuv的时候,如果不加上帧率 -r 18,可能会导致出现 Past duration XXXX too large的报错,然后就丢帧。-r 18是因为之前的H264的帧率就是18,根据真实文件的帧率进行调整。
在用ffmpeg查看h264文件的时候可以看到文件的参数,帧率也在其中:./ffmpeg -i 640x480.h264
显示信息中包含:
Stream #0:0: Video: h264 (High), yuv420p(progressive), 1280x720 [SAR 3:4 DAR 4:3], 18 fps, 18 tbr, 1200k tbn, 36 tbc
这样就可以得到所有想要的分辨率的yuv和h264测试文件。