常见的视频分辨率及如何获取各个分辨率的H264、YUV文件

2020-01-09 18:47:56 浏览数 (1)

常用的文件分辨率有 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测试文件。

0 人点赞