当前位置:   article > 正文

正点原子imx6ull开发板视频监控项目实战系列3: ffmpeg_正点原子开源项目

正点原子开源项目

1、Ffmpeg是什么?

(1)、一套开源软件
(2)、可以记录,转换音视频:可以从摄像头中,记录视频,从声卡中,记录音频。可以转换成各种格式,保存起来。
(3)、好多视频播放器的内核就是FFmpeg。

2、FFmpeg的简易理解:

在这里插入图片描述
这个流程的文字描述大概是这样的:
1)、从摄像头得到的原始的视频数据,但是数据太大,不易传输,需要压缩。对于视频,使用视频的编解码器进行压缩;
从声卡到的也可以原始的声音数据,但是数据太大,不易传输,需要压缩。对于音频,使用音频的编解码器进行压缩;(原始层+编码层)
2)、压缩以后,将音频和视频这两路数据合并起来。合并的方式就是以某种格式保存在一个MP4/flv或其他格式的文件中。(容器层)
注:
MP4只是一种封装格式,里面有音频数据(这些数据可以通过各种格式压缩,比如:MPEG-2,MPEG-4等),也有视频数据(比如:AAC,MPEG-1等)
把这些压缩后,即编码后的视频数据、音频数据合并在一起:复用、MUX,就得到了MP4等文件。
在这里插入图片描述
目前,音频主流的压缩格式是:AAC;视频主要的压缩格式是H.264。
3)、这些打包好的MP4/flv文件,会通过某种协议发送给流媒体服务器。(协议层)
4)、当用户想要观看的时候,用户在通过某种协议,将流媒体中的数据下载下来。(协议层)
5)、将下载下来的数据进行解复用。分成音频压缩文件和视频压缩文件。(容器层)
6)、将音频压缩文件和视频压缩文件分别进行解压,解压成原始数据,进行播放。(原始层+编码层)
扩展:压缩和编码的区别:
信息从一种形式或格式转换为另一种形式的过程称为编码。
对于数据编码不一定压缩数据,但压缩数据的结果一定是一种编码,即编码可以分为非压缩编码和压缩编码。
压缩可以在编码前进行,也可以在编码后针对编码结果进行压缩得到另一种编码。

3、ffmpeg的组成:

在这里插入图片描述
为了理解这些组成,我们举一个例子:
在这里插入图片描述
基于这个图,我们引入一些术语:
在这里插入图片描述

4、官方图例:

在这里插入图片描述
注:用Filter(过滤器)来处理
旋转、拉伸
添加LOGO、消除LOGO等等

5、主要的参数:

音频和视频是分开进行处理的,因此可以分别给他们设置参数:
在这里插入图片描述

6、在开发板运行ffmpeg的准备工作:

1)、在builbroot里面,添加进ffmpeg。
make menuconfig
在这里插入图片描述
2)、输入sudo make进行编译,将ggmpeg编译进开发板,
3)、启动开发板:
查看设备节点:
ls /dev/video*
我们使用的是/dev/video1
4)、在开发板输入命令:将得到的视频保存在my.mp4文件。
ffmpeg -f v4l2 -framerate 10 -i /dev/video1 -q 10 my.mp4
5)、将my.mp4文件拷贝到PC机,播放。
测试总结:
这部分的测试,发现一个问题。由于开发板的性能很弱,当摄像头图像变化大(eg:晃动摄像头),开发板cpu的使用率会高达99%.这就会导致,我们摄像头开了eg:5秒,但是实际录下来的视频只有eg:2秒。(输入top命令,可以查看cpu的使用情况)。
因此,ffmpeg的实验,建议在windows下学习。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/607815
推荐阅读
相关标签
  

闽ICP备14008679号