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

news/2025/1/8 14:56:13/

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下学习。


http://www.ppmy.cn/news/707083.html

相关文章

Linux——iMX6ULL的启动过程详细解析(启动模式配置、启动设备配置、镜像烧写imx文件基本组成)

【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《QT开发实战》 《嵌入式通用开发实战》 《从0到1学习嵌入式Linux开发》

IMX8mp alsa音频调试

1、硬件环境: soc: im8mp bt: cypress CYW43455, 并通过M2接口连接到imx8mp开发板。 2、硬件连接: 3、综述: BT通过M2接口连接到IMX8mp开发板,M2接口中包含了PCM总线、UART、BT_EN引脚。 通话音频播放,BT使用imx8…

【imx6ull】视频监控项目(usb摄像头+ffmepeg)

文章目录 前言1、总体方案介绍2、配置v4l2驱动与UVC驱动3、v4l2应用编程测试摄像头4、ffmepg移植总结 前言 参考视频: 韦东山老师手把手带你从0开始自己做一个视频监控系统 1、总体方案介绍 这篇文章写的很好,很容易理解了,就不造轮子了 正点原子imx6u…

在 NXP iMX8 上进行 4K 视频播放测试

By Toradex 胡珊逢 1). 简介 高清多媒体,甚至是 4K 视频不仅在消费领域有着旺盛的需求,在行业领域同样也获得广泛的关注。NXP 最新的IMX8 处理器不仅配有强劲的 CPU和GPU,还对多媒体应用提供了完善的解决方案,如硬件解码支持H.2…

基于imx6ull打造流媒体视频监控:ffmpeg + nginx + rtmp

0.平台简介 项目描述硬件平台100ask_imx6ull_pro开发板Linux内核Linux 4.9.88Buildroot版本Buildroot 2019.02FFmpeg版本3.4.5Nginx版本1.15.7摄像头支持UVC的USB摄像头 总体的系统方案如下,是韦老师在【自己做一个物联网视频监控系统】系列视频中分享的一个实例&a…

CentOS7安装oracle19c教程

参考 https://zhuanlan.zhihu.com/p/571737575 1创建组和用户 vi /etc/hosts [rootrhel ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.7 (Maipo) /usr/sbin/groupadd -g 54321 oinstall /usr/sbin/groupadd -g 54322 dba /usr/sbin/groupadd -g 54…

Nginx负载均衡与动静分离

一、Nginx负载均衡: 1.概述: Nginx是一款http服务器软件,支持高达50000个并发连接数的响应。 (1)拥有强大的处理静态资源的能力。 (2)运行稳定。 (3)CPU&#xff0c…

查aaa询

隐行卡开户地 经纬度解析 注册过的网站 搜索引擎 钟馗之眼 电子邮件泄露