100ask_imx6ull视频监控项目-流媒体方案的实现之ffmpeg(三)

100ask_imx6ull视频监控项目-流媒体方案的实现之ffmpeg(三)

实现流程图:
100ask_imx6ull视频监控项目-流媒体方案的实现之ffmpeg(三)_第1张图片

推流端使用FFmpeg采集数据转换格式

,并且把他推给流媒体服务器

100ask_imx6ull视频监控项目-流媒体方案的实现之ffmpeg(三)_第2张图片

MP4文件格式里面有很多种视频编码格式,所以MP4只是一种封装格式

100ask_imx6ull视频监控项目-流媒体方案的实现之ffmpeg(三)_第3张图片

误区:我们以为mp4就代表了音频、视频的压缩格式,其实不是

Mp4只是一种封装格式

里面有音频数据、视频数据

音频数据有自己的压缩格式,还不止一种

视频数据也有自己的压缩格式,还不止一种

100ask_imx6ull视频监控项目-流媒体方案的实现之ffmpeg(三)_第4张图片

我们对里面的音频和视频数据decode分解开处理完后再encode合并

100ask_imx6ull视频监控项目-流媒体方案的实现之ffmpeg(三)_第5张图片

音频格式:

100ask_imx6ull视频监控项目-流媒体方案的实现之ffmpeg(三)_第6张图片

移植ffmpeg

buildroot下make menuconfig搜索ffmpeg

100ask_imx6ull视频监控项目-流媒体方案的实现之ffmpeg(三)_第7张图片
100ask_imx6ull视频监控项目-流媒体方案的实现之ffmpeg(三)_第8张图片

我们y选上

100ask_imx6ull视频监控项目-流媒体方案的实现之ffmpeg(三)_第9张图片

里面的内容也都选上

在output/images里面把emmc.img烧写到板子里面或者sdcard.img烧写到sd卡也可以

这里我们就把emmc.img下载到板子里面

在开发板上安装好ffmpeg后:

•执行命令:ffmpeg -f v4l2 -framerate 10 -i /dev/video1 -q 10 my.mp4

•它会把摄像头的数据录制为my.mp4

•把my.mp4复制到PC机,播放

ffmpeg -f v4l2 -framerate 10 -i /dev/video1 -q 10 my.mp4

-f (format摄像头格式为v4l2)

-framerate (一秒读十帧)

-i 输入设备是/dev/video1

-q 质量是10

输出my.mp4文件

因为芯片性能太差,刚才录了很久的视频最后生成的视频只有2s,

使用top命令发现占用大量cpu表示cpu处理不过来

100ask_imx6ull视频监控项目-流媒体方案的实现之ffmpeg(三)_第10张图片

你可能感兴趣的:(imx6ull)