五、在板上测试编译的ffmpeg软件 把编译好的ffmpeg文件,以及依赖的动态库文件全部copy到目标开发板上,然后可以测试ffmpeg的命令了。因为暂时没有显示屏,所以这里主要测试测试了ffmpeg对视频文件转码,以及视频解码成为图片的命令:
把一个采集到的 yuv 摄像头数据文件,进行h264编码,生成test.264文件
./ffmpeg -s 640x480 -r 25 -pix_fmt yuv420p -f rawvideo -itest.yuv -c:v libx264 -preset slow -b:v 2M test.264
把h264编码数据文件解码成为 YUV420的数据文件
./ffmpeg -i test.264 -vsync 0 detest.yuv
把 h264数据文件加复用,转成mp4格式,次文件可以在PC上直接播放了
./ffmpeg -i output3.264 -vsync 0 output3.mp4
把mp4视频不重新编码,转成avi格式
./ffmpeg -i output3.MP4 -vcodec copy output.avi
从.mp4视频中0.001秒处截取一张图,转换为352x240大小的格式为jpg的图片:
./ffmpeg -i output3.MP4 -y -f image2 -t 0.001 -s 352x240 a.jpg
六、PurplePi上C/C++开发总结
通过在Ubuntu上构建PurplePiC/C++开发环境,可知此开发板是一个标准的ARMv7的开发环境,没有什么特殊的配置和依赖。并且随开发板厂商给出了板上运行系统得所有源码,包括boot,kernel,rootfs 和一些常用的app软件,因为它是基于armLinux,所以意味着所有验证过的amr-linux上的软件都能够在板上运行,这使得系统的适用场景非常广泛而且提供了非常宽的系统裁剪的可能性,给开发应用者提供的任意发挥的空间。
通过编译ffmpeg过程,可以看到非常顺利,简便。虽然系统的脚本里没有直接提供编译ffmpeg的代码,但根据在其它平台上编译的步骤,也可以跟容易的编写makefile文件,来编译自己的工程。
Ffmpeg是一个强大的音视频工具,也是一个音视频库,支持非常多的音视频处理和应用。通过ffmpeg在板上的运行,也体验到该开发板上运行音视频处理软件的性能。