流媒体方案之FFmpeg——实现物联网视频监控项目

目录

前言

一、FFmpeg介绍

二、FFmpeg简易理解

三、FFmpeg的重要概念

四、软硬件准备

五、移植、运行FFmpeg

六、运行FFmpeg


前言

最近想做一个安防相关的项目,所以跟着韦东山老师的视频来学习视频监控方案的相关知识,韦东山老师讲的课非常好,本章主要介绍推流端FFmpeg

一、FFmpeg介绍

FFmpeg是什么

  • 一套开源软件
  • 可以记录、转换音视频:可以从摄像头中记录视频,从声卡中记录音频,可以转换为各种格式,保存起来
  • 还可以把各种格式的音视频,转换为流:供在线观看
  • 其他功能:视频截图、加水印、裁剪等等
  • Mplayer,ffplay,射手播放器,暴风影音,KMPlayer,QQ影音等视频频播放器的内核就是 FFmpeg
  • 格式工厂的内核也是FFmpeg

二、FFmpeg简易理解


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

  • Mp4只是一种封装格式
  • 里面有音频数据、视频数据
  • 音频数据有自己的压缩格式,还不止一种
  • 视频数据也有自己的压缩格式,还不止一种

参考文章

视音频编解码技术零基础学习方法

三、FFmpeg的重要概念

1.重要概念

2.FFmpeg处理音视频的过程

用Filter(过滤器)来处理

  1. 旋转、拉伸
  2. 添加LOGO、消除LOGO等等

3.FFmpeg的常用参数

四、软硬件准备

硬件:

  • 100ASK_IMX6ULL开发板 (或其他Linux开发板);
  • USB摄像头

软件:

  • Ubuntu;
  • Buildroot(Buildroot会自动下载其他软件: MJPG-streamer, ffmpeg, nginx);

五、移植、运行FFmpeg

1.移植
有两种方法:
方法一:下载源码,手工编译
方法二:使用Buildroot,配置选择ffmpeg,直接编译生成映象文件
我们使用Buildroot:

  1. 设置交叉编译工具链
  2. 在Buildroot根目录
  3. make menuconfig
  4. 如图选择ffmpeg (在buildroot 按‘/’可以搜索ffmpeg的路径)
  5. 执行make
  6. 这会在Buildroot的dl/ffmpeg目录下自动下载源码,并编译
  7. 结果保存在output/images目录下,有emmc.img, sdcard.img,可以直接烧写到板能的EMMC或SD卡上

六、运行FFmpeg

在开发板上安装好ffmpeg后:
执行命令:

ffmpeg -f v4l2 -framerate 10 -i /dev/video1 -q 10  my.mp4
  • 它会把摄像头的数据录制为my.mp4
  • 把my.mp4复制到PC机,播放

上述命令的解释:

-f(format)摄像头的格式是 v4l2

-framerate 10 1秒读10帧

-i 输入设备是哪一个: /dev/video1 -

q:质量 为10

生成名为my.mp4的文件

它会把摄像头的数据录制为my.mp4,把my.mp4复制到PC机,播放

更多用法:

  • ffmpeg基础使用:https://www.jianshu.com/p/ddafe46827b7
  • 给新手的 20 多个 FFmpeg 命令示例:https://zhuanlan.zhihu.com/p/67878761

建议在Windows下练习:

  • 下载static版本:https://ffmpeg.zeranoe.com/builds/
  • 在命令行中练习ffmpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/218818.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据分享 I 2022年淘宝村名单数据,shp/excel格式数据,共7700多条数据,已可视化处理

今天分享2022年淘宝村名单数据,shp/excel格式数据,共7700多条数据! 淘宝村认定条件为电商年销售额达1000万元及以上的行政村(不含居委会) ;村活跃网店数达100个及以上,或活跃网店数达家庭户数10%及以上,就…

C++ day52 最长递增子序列 最长连续递增子序列 最长重复子数组

题目1:300 最长递增子序列 题目链接:最长递增子序列 对题目的理解 找出整数数组中最长严格递增子序列的长度 动态规划 动规五部曲 1)dp数组及下标i的含义 dp[i]:以nums[i]为结尾的最长递增子序列的长度 递增比较的时候&am…

初探Maven

文章目录 一、Maven概述二、安装配置Maven(一)下载Maven(二)安装Maven(三)配置Maven 三、IDEA里配置Maven(一)版本情况说明(二)配置构建工具Maven 一、Maven概…

PyQt6 QGroupBox分组框控件

​锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计37条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话…

Python 调用企业微信群机器人发送消息及文件

Python 操作企业微信群机器人。 企业微信群创建机器人 : 安装 requests json : pip install requests pip install json发送消息(markdown) import requests import json# 企业微信机器人发送文字 def send_markdown (message, …

el-table分页时多选数据的保存和回显

大致思路: 把所有选择的数据全部存到一个大数组中,切页的时候匹配原数据利用ref节点的.toggleRowSelection方法进行回显 具体步骤: 1、勾选和全选时需要判断是选中还是取消,然后更新大数组数据。 2、分页获取新数据之后匹配当…

初学Python基础后,如何制定学习计划?

如果你是Python小白,学完基础语法是个了不起的成就,但是接下来应该干嘛呢?你应该学习哪些内容?你应该如何规划你的Python学习路线? 其实这些问题的答案都取决于你的个人目标和兴趣。你想要用Python做什么?…

TIA博途中快速修改变量值的方法和技巧

TIA博途中快速修改变量值的方法和技巧 如下图所示,正常情况下选中该变量,然后右击选择“修改”—然后选择修改为0或1, 快速调试技巧: 如下图所示,鼠标选中该变量上方的“FALSE”,直接双击,系统会提示是否进行切换该变量的值, 点击“是”即可切换变量的值, 如下图所示,…

142. 环形链表 II

142. 环形链表 II 原题链接:完成情况:解题思路:参考代码:错误经验吸取 原题链接: 142. 环形链表 II https://leetcode.cn/problems/linked-list-cycle-ii/description/ 完成情况: 解题思路:…

CSS、JS文件无法正确加载至页面问题与解决

目录 1. 问题出现 2. 分析与解决 3. 总结 1. 问题出现 自己在写项目是时候,想启动浏览器查询首页面index.jsp的显示效果 预期效果应该是下面这样的: 但是实际上是这样的: 意思也就是说可能是关于CSS、JS相关的引入方面出了问题&#xff…

qt使用wimlib-imagex,做windows系统备份还原

wimlib-imagex是个第三方工具,可对系统映像进行操作,下载地址: https://wimlib.net/downloads/index.html 程序主要用到以下这两个文件:libwim-15.dll和wimlib-imagex.exe wimlib-imagex.exe的调用命令参数,可以通过…

Win环境中安装Jenkins指南

目录 安装Java环境 下载并安装Jenkins Jenkins版本 启动Jenkins 如何删除Jenkins 安装Java环境 访问 Oracle官方网站 下载并安装JDK 安装完成后,设置系统环境变量 JAVA_HOME 到你的 JDK 安装路径,并将 %JAVA_HOME%\bin 添加到系统 PATH 中。 下载…

SAP中的新旧事务码

SAP中的新旧事务码 SAP随着新版本的发布,我们知道sap已经更新了很多的程序和TCODE。sap提供了很多新的TCODE来替换旧的TCODE,新TCODE有很多的新特性和新功能。在这个这种情况下,很多旧TCODE就会被废弃。我们如何查找这个替换呢? …

什么是国际语音呼叫中心?国际语音呼叫中心能干什么?

1.什么是国际语音呼叫中心? 国际语音呼叫中心是指利用语音技术提供咨询、客服、销售、市场调研等呼叫中心服务的一种解决方案。与传统的呼叫中心相比,国际语音呼叫中心采用了更加高效、智能的呼叫技术,通过应用智能语音识别技术、自然语言处…

图解通信原理(以太网通信及物理层工作原理)

偶尔看到一篇对phy与mac讲解清楚的优秀文章,因此记录下来,此文章转发自知乎图解通信原理(以太网通信及物理层工作原理) - 知乎 概述 以太网是一种计算机局域网通信技术,主要由介质访问层(MAC L2) 协议、物理层&#…

采购透明拼接屏,需要注意些什么

在采购透明拼接屏时,需要注意以下几点: 尺寸和分辨率:根据实际应用需求选择合适的尺寸和分辨率。如果用于商业展示,需要选择较大的屏幕尺寸和较高的分辨率,以提供更好的视觉效果和观看体验。 透明度:透明…

企业微信配置可信域名

首先去申请一个域名,然后将域名绑定到有公网ip的云服务器上,绑定到具体的网站;然后再企业微信,管理后台,点击具体的应用,进【网页授权及JS-SDK】;点击底部的【申请校验域名】点击下载文件&#…

从0到1实现Flink 实战实时风控系统的经验总结

随着互联网金融的快速发展,实时风控系统成为保障业务安全和用户信任的关键。本文将分享从零开始构建Flink实时风控系统的经验,并提供相关示例代码。 一、搭建Flink环境 首先,我们需要搭建Flink环境。以下是一些基本步骤: 安装Ja…

HNU-电路与电子学-2021期末A卷(不含解析)

【写在前面】 电路与电子学好像是从2020级开设的课程,故实际上目前只有2020与2021两个年级考过期末考试。 本份卷子的参考性很高,这是2020级的期末考卷。题目都是很典型的,每一道题都值得仔细研究透。 特别注意:看得懂答案跟写得…

编译原理词法分析:NFA转DFA(原理+完整代码+可视化实现)

NFA转换为DFA 【本文内容摘要】 什么是DFA通过子集构造法将NFA转换为DFA生成DFA的dot文件并且形成可视化。 如果本文对各位看官有用的话,请记得给一个免费的赞哦(收藏也不错)! 文章目录 NFA转换为DFA一、什么是DFA二、NFA转换为…