ffplay的代码挺复杂的,我们要把各个功能拆开进行解读,这篇博客介绍如何用SDL显示视频的yuv的数据。 首先我们用ffmpeg命令行获取视频的yuv420数据:
ffmpeg -i 1.mp4 -s 640x360 -pix_fmt yuv420p 1.yuv
上面的命令是将1.MP4转换成了1.yuv, 格式是420. yuv数据获取后可以用ffplay进行播放,命令如下:
ffplay -f rawvideo -video_size 640x360 -i 1.yuv
SDL播放yuv, 本质上是都二进制文件,创建纹理,更新纹理,显示纹理的过程,由于yuv是一帧的数据,那么就需要不停的读取,得需要创建一个线程来处理这些数据读取得操作,下面是SDL播放yuv的代码