ffmpeg音视频基础知识

  • 前言
  • 一、图像的基础知识
  • 二、视频编码基础知识
    • 1.视频和图片之间的关系
    • 2.为什么要编码?
    • 3.什么是编码?
  • 视频相关专业术语

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、图像的基础知识
  • 二、视频编码基础知识
    • 1.视频和图片之间的关系
    • 2.为什么要编码?
    • 3.什么是编码?
  • 视频相关专业术语

前言

最近楼主在用ffmpeg进行音视频的开发,但对于里面的音视频的基础知识不是很了解,自己上网查找资料进行了总结,方便大家学习


提示:以下是本篇文章正文内容,下面案例可供参考

一、图像的基础知识

我们平常看到的一张张的图片都是有一块一块带有颜色的块组成的。那么这些块我们称之为像素。像我们平时用的电脑,都会有1920*1080的分辨率,也就是说它是由长度1920个像素点,宽度1080的像素点组成的。它的乘机是2073600,相当于电脑屏幕上有两百多万的像素。同时呢,手机(或者显示器)上的屏幕上每英寸面积,像素越多,那么自然的,图片给人的感觉就更清晰,这个就是我们常说的PPI.

二、视频编码基础知识

1.视频和图片之间的关系

视频就是一张一张的图片连起来的画面。衡量它的指标就是我们常说的帧率(Frame Rate)。在视频中,一个帧是一副静止的画面。帧率,是秒的帧的数量,帧率越高,画面越流畅。打游戏时,大家要想玩的爽,肯定帧率要高。

2.为什么要编码?

首先,我们需要了解到的在没有编码之前,我们原始的视频是有多大呢?

以一个分辨率1920*1280,帧率30的视频为例:
共:1920×1280=2,073,600(像素),每个像素点是24bit 也就是:每幅图片2073600×24=49766400 bit,8 bit(位)=1 byte(字节)
所以:49766400bit=6220800byte≈6.22MB。

这是一幅1920×1280图片的原始大小,再乘以帧率30。
每秒视频的大小是186.6MB,每分钟大约是11GB,一部90分钟的电影,约是1000G

这因为如此,我们就要对视频编码,不然的话,一个电脑以2t的硬盘储存空间来算,也存不了几部电影。那你让磁盘里的小姐姐该怎么办呢。。。

3.什么是编码?

编码:就是按指定的方法,将信息从一种形式(格式),转换成另-种形式(格式)。视频编
码:就是将一种视频格式,转换成另一种视频格式。

我们先来看看,视频从录制到播放的整个过程,如下:
首先是视频采集。通常我们会使用摄像机、摄像头进行视频采集。采集了视频数据之后,就要进行模数转换,将模拟信号变成数字信号。其实现在很多都是摄像机(摄像头)直接输出数字信号。信号输出之后,还要进行预处理,将RGB信号变成YUV信号。

那什么是YUV信号呢?
简单来说,YUV就是另外一种颜色数字化表示方式。视频通信系统之所以要采用YUV,而不是RGB,主要是因为。在YUV这种方式里面,加入了亮度这一概念。在最近十年中,视频工程师发现,眼睛对于亮和暗的分辨要比对颜色的分辨更精细一些,也就是说,人眼对色度的敏感程度要低于对亮度的敏感程度。
所以,工程师认为,在我们的视频存储中,没有必要存储全部颜色信号。我们可以把更多带宽留给黑—白信号(被称作“亮度”),将稍少的带宽留给彩色信号(被称作“色度”)。于是,就有了YUV。


视频相关专业术语

(1)视频:
连续的图象变化每秒超过24帧(Frame)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面,看上去是平滑连续的视觉效果,这样连续的画面叫做视频。

(2)帧(Frame):
是影像中常用的最小单位,相当于电影中胶片的每一格镜头,一帧就是一副静止的画面,连续的帧就形成了视频。
(3)帧速率(FPS):
每秒钟所传输图片的个数,也可以理解为处理器每秒刷新的次数,通常用FPS标识,当然帧数越高,画面也就越流畅。

(4)转码 :
指将一段多媒体包括音频、视频或者其他的内容从一种编码格式转换成为另外一种编码格式。
(原视频 – 解码 – 像素数据 – 编码 – 目标视频)
(原音频 – 解码 – 音频数据 – 编码 – 目标音频)

(5)视频编码:
讲到视频编码,大家可能都会问为什么视频要编码?
— 要知道,采集的原始音视频信号体积都非常大,里面有很多相同的、眼看不到的、耳听不到的内容,比如,如果视频不经过压缩编码的话,体积通常是非常大的,一部电影可能就要上百G的空间。

(6)视频解码:
有了编码,当然也需要有解码。
因为压缩(编码)过的内容无法直接使用,使用(观看)时必须解压缩,还原为原始的信号(比如视频中某个点的颜色等),这就是“解码“或者”解压缩“。

(7)采样频率:
指录音设备在一秒钟内对声音信号的采样次数,它用赫兹(Hz)来表示,比如44.1KHz采样率的声音就是要花费44000个数据点来描述1秒钟的声音波形。原则上采样率越高,声音质量越好。

(8)比特率(码率):
表示单位时间(1秒)内传送的比特数,一般我们用的单位是kbps,其英文是 Kilobits per second,意即“千位每秒”(根据发音亦译作“千比特每秒”),意思是说每过一秒钟,有多少千比特的数据流过,因此码率也经常被称为“比特率”。

ffmpeg音视频基础知识相关推荐

  1. C++实战手把手教您用ffmpeg和QT开发播放器--01音视频基础知识

    笔记:https://blog.csdn.net/tainjau/article/category/9272757 音视频基础知识 封装.解码.重采样.像素格式 1.MPEG-4 MPEG-4标准将众 ...

  2. 音视频流媒体高级开发进阶:从音视频基础知识到技术实践

    站在音视频行业风口 站在风口,猪也能飞".在已经到来的2022年,音视频行业依旧是怎么也绕不过去的风口. 一方面,随着各项5G政策的落实,音视频+5G风口,将会深入挖掘音视频产业的无限潜力, ...

  3. 音视频基础知识---音频编码格式

    音视频基础知识汇总: 音视频基础知识---协议相关RTSP RTMP HLS 音视频基础知识---封装格式 音视频基础知识---视频编码格式 音视频基础知识---音频编码格式 音视频基础知识---像素 ...

  4. 音视频基础知识---像素格式RGB

    音视频基础知识汇总: 音视频基础知识---协议相关RTSP RTMP HLS 音视频基础知识---封装格式 音视频基础知识---视频编码格式 音视频基础知识---音频编码格式 音视频基础知识---像素 ...

  5. Android车载应用开发与分析(6)- 车载多媒体(一)- 音视频基础知识与MediaPlayer

    多媒体应用是车载信息娱乐系统的一个重要组成部分,一般包含音视频播放.收音机.相册等.车载应用多媒体系列初步计划分为六篇,这是第一篇. 参考资料 视频和视频帧:视频和帧基础知识整理 百度百科 - 声道 ...

  6. 音视频基础知识(流媒体、多媒体),视频文件等

    Video Render: Media Codec,OpenGL ES:  Audio Render: OpenSL ES,AudioTrack:  视频的编辑处理.上传和播放.  音视频流程:视频采 ...

  7. 27.FFmpeg+OpenGLES+OpenSLES播放器实现(一.音视频基础知识概要)

    FFmpeg开发文档 前言 之前写了很多关于ndk的文章,也以FFmpeg的编译为例大概的讲述了一次ndk开发从编译到使用的过程,但是内容过于分散,而且有些东西已经过时,比如eclipse工具,比如n ...

  8. 学习笔记(2):基于NDK、C++、FFmpeg的android视频播放器开发实战-音视频基础知识Mpeg4封装格式音视频编码格式讲解...

    立即学习:https://edu.csdn.net/course/play/7417/151027?utm_source=blogtoedu 封装:将音视频从文件中读出来 解码:解压出来,转换成显卡支 ...

  9. 【Android 音视频开发-音视频硬解码篇】1.音视频基础知识

    这是一个入门系列,涉及的知识也仅限于够用. 最后,写文章过程中,会借鉴参考其他人分享的文章,会在文章最后列出,感谢这些作者的分享. 本文你可以了解到 作为开篇的文章,我们先来看看音视频由什么构成的,以 ...

最新文章

  1. Nginx网站常见的跳转配置实例
  2. 先出报表还是先计提所得税_大征期来啦!5分钟熟练掌握企业所得税申报
  3. java后台访问接口
  4. OpenCv之图像二值化(笔记12)
  5. 白化(Whitening): PCA 与 ZCA (转)
  6. python中怎样使用re模块_python如何导入re模块
  7. 大规模数据运行时,可以考虑使用多线程处理!
  8. ssm毕设项目高校饭堂管理系统8gmjo(java+VUE+Mybatis+Maven+Mysql+sprnig)
  9. 数据分析及数据挖掘学习路线
  10. 5G和北斗,交通行业新基建的正确打开方式
  11. netware php_服务器_如何在 Netware 服务器中安装多块网卡,如果网络在扩大时服务器只装 - phpStudy...
  12. 计算机常用英语单词(带音标)
  13. java liveness_并发 - 活跃度(Liveness) - 《Java 编程要点(Essential Java)》 - 书栈网 · BookStack...
  14. topcoder客户端
  15. 【CVPR2022】Beyond Fixation: Dynamic Window Visual Transformer
  16. 阿里云技术专家刘晨旭:阿里云对数据可靠性保障的一些思考
  17. 如何解决苹果电脑(Macbook Pro)没有声音?
  18. npm无法加载文件,无法下载依赖包
  19. Springboot整合JDBC和DBUtils,实现简单的增删改查.
  20. 模糊查询的hql语句_hql语句拼接模糊查询

热门文章

  1. HDU 5691 Sitting in Line 状压dp
  2. acdream 1409 Musical 状压DP
  3. Google Code Jam 2015 Round 1A Haircut 二分
  4. 如何在 C# 中用 SharpZipLib 进行 ZIP 压缩与解压(转)
  5. WCF Testing Tool(转)
  6. linux 7 services设定,CENTOS/RHEL7系统中设置SYSTEMD SERVICE的ULIMIT资源限制
  7. android fragment界面滑动切换效果,Android App中使用ViewPager+Fragment实现滑动切换效果...
  8. word公式插件_再也不用担心我的公式写不出来了:一款公式输入神器实测
  9. ajax html页面传参数,jQuery AJAX:如何将大型HTML标记作为参数传递?
  10. php前台用户权限开通,vue实现网站前台的权限管理