音视频相关

news/2025/1/17 1:00:09/文章来源:https://www.cnblogs.com/Zhaolongtao/p/18339799

1.音视频相关

1.一些基本数据格式

  • 封装格式:MP4,RMVB,TS,FLV,AVI
  • 视频编码数据:H.264,MPEG2,VC-1
  • 音频编码数据:AAC,MP3,AC-3
  • 视频像素数据:YUV420P,RGB
  • 音频采样数据:PCM

2.播放视频文件的流程

 

 3.编码格式及工具

1)封装格式:视频码流和音频码流按照一定的格式存储在一个文件中     分析工具:Elecard Format Analyzer

举例:

MPEG2-TS:

*不含文件头,由数据大小固定(188Byte)的TS Packet构成

 FLV格式:

*包含文件头,数据由大小不固定的Tag构成

 2)视频编码数据

视频编码作用:将视频像素数据(RGB,YUV等)压缩为视频码流,从而降低视频的数据量。 工具:Elecard Stream Rye

举例:
H.264格式:

*数据由大小不固定的NALU构成

*最常见,1个NALU存储了1帧画面的压缩编码后的数据

*H.264压缩方式特点:

  -比较复杂。

  -可以将图象数据压缩一百倍以上

3)音频编码数据

音频编码:将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量。

举例:
AAC格式:

*数据由大小不固定的ADTS构成

*特点

  -比较复杂

  -音频数据压缩10倍以上

4)视频像素数据
  *作用:保存了屏幕上每个像素点的像素值

  *特点:视频像素数据体积很大

举例:

*RGB格式

存储每个像素点的RGB信息,BMP文件存储的就是RGB格式的像素数据。

*YUV信息

Y只包含亮度信息,UV包含色度信息,uv各占Y的四分之一

 5)音频采样数据:

 *保存了音频中每个采样点的值,体积很大, 工具:Adobe Audition

举例:
PCM格式:

*单声道按顺序存储每个采样点的数据

*双声道按照“左右,左右。。”的顺寻存储每个采样点的两个声道的数据。

 2.FFmpeg

*背景

使用广泛:

*视频播放器和转码器的内核

特点:

*基于命令行

*开源

命令行工具

1.ffmpeg.exe

用于视频的转码

ffmpeg -i {输入文件路径} -b :v {输出视频码率} {输出文件路径}

举个例子: ffmpeg -i input.avi -b:v 640k output.ts

2.ffplay.exe的使用

用于视频的播放

ffplay [文件路径]

q/esc 退出  p/空格暂停  f 全屏 鼠标点击屏幕:跳转到指定位置

3.视频解码

解码:

*压缩解码数据-> 像素数据

举例:H.264===>   "H.264码流-> YUV"

一般解码流程:

封装格式---------->提取视频码流------> 解码

举例:MKV =====> "MKV-> H.264码流_> YUV"

4.类库

avcodec:编解码(最重要)

avformat:封装格式处理

avfilter:滤镜特效处理

avdevice:各种设备的输入输出

avutil:工具库(大部分库都需要这个库的支持)

postproc:后加工

swresample:音频采样数据格式转换

swscale:视频像素数据格式转换

4.1 FFmpeg解码流程

 

4.1 FFmpeg解码核心数据结构

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

伙伴匹配系统踩坑日记2

伙伴匹配系统踩坑日记2 Time:2024.8.2 后端构建 复制一份之前的用户中心后端项目,改名,删去原来的.idea和.mvn,重启idea会提示 maven重构往后写发现不需要用新的项目,直接在原来的用户中心里加功能就行 新建标签表 create table tag (id bigint auto_increment com…

2024 年上海新能源汽车消费补贴 All In One

2024 年上海新能源汽车消费补贴 All In One2024 年上海新能源汽车消费补贴 All In One2024年“上海之夏”汽车消费嘉年市商务委发布国家报废更新补贴和本市置换更新补贴政策。 一是落实国家汽车以旧换新新政策。按照国家实施汽车以旧换新的统一部署,2024年对个人消费者对报废国…

全网最适合入门的面向对象编程教程:30 Python的内置数据类型-object根类

在 Python 中,所有的类都直接或间接继承自一个根类,这个根类是Object。Object类是 Python 中所有新式类的基础类,在 Python 的类层次结构中,Object类是所有类的最终基类。全网最适合入门的面向对象编程教程:30 Python 的内置数据类型-object 根类摘要: 在 Python 中,所有…

javascript js WebGL WebGL2 后期处理特效之点击水波纹涟漪例子

先来看结果图(转.gif掉帧了): 完整源码分享网址: https://share.weiyun.com/Vpkp5KP31 首先初始化用到的所有图片:1 const images = [2 "./img/girls.jpg",3 "./img/ball.png",4 "./img/water.jpg", 5 "./img/spriteX8.pn…

DC-3.2靶机详解

DC-3.2 信息搜集 IP 探测 arp-scan -l nmap -sn 192.168.179.0/24 netdiscover -r 192.168.179.0/24目标及 ip 就为 192.168.179.134。 端口探测 nmap -sT --min-rate 10000 -p- 192.168.179.134就开放了一个 80 端口 再来个详细端口扫描和漏洞脚本扫描 nmap -sT -sV -O -p80 1…

PyTorch 训练自定义功能齐全的神经网络模型的详细教程

PyTorch 是一个开源的机器学习框架,可以方便地进行神经网络模型训练和推理。本文基于 PyTorch 演示了一个非常简单但是功能齐全的神经网络训练过程,无论模型权重有多大,使用 TyTorch 训练的过程是类似的,期望本文能启到抛砖引玉的作用……在前面的文章中,老牛同学介绍了不…

【视频讲解】CatBoost、LightGBM和随机森林的海域气田开发特征分类研究

原文链接:https://tecdat.cn/?p=37208 原文出处:拓端数据部落公众号 分析师:Changlin Li 本文将通过视频讲解,展示如何用CatBoost、LightGBM和随机森林的海域气田开发特征智能分类,并结合一个python分类预测职员离职:逻辑回归、梯度提升、随机森林、XGB、CatBoost、LGB…

基于simulink的简易电机电力系统建模与仿真性能分析

1.课题概述 一个50HZ的简单电力系统如下图所示,在Simulink中建立仿真模型研究该系统的性能。发电机G采用“Synchronous Machine pu Fundamental”模型,变压器T采用“Three-Phase Transformer(Three Windings)”模型,输出线路L采用“Three-Phase Series RLC Branch”模型,负…

基于GA遗传优化的PID控制器最优控制参数整定matlab仿真

1.程序功能描述通过遗传优化算法,将PID控制器的kp,ki,kd三个参数作为遗传算法的优化变量,将PID控制器的输出误差作为遗传算法的目标值。通过迭代优化,输出控制器最优状态下对应的控制参数kp,ki,kd,即最后的参数整定结果。2.测试软件版本以及运行结果展示 MATLAB2022a版…

基于强化学习的倒立摆平衡车控制系统simulink建模与仿真

1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印):2.算法涉及理论知识概要基于强化学习的倒立摆平衡车控制系统是一个典型的动态系统控制问题,它通过不断的学习和决策过程,使倒立摆维持在垂直平衡位置,即使受到外力干扰或系统内部噪声影响。强化学习在此类…

[VS Code扩展]写一个代码片段管理插件(一):介绍与界面搭建

@目录VS Code扩展机制项目搭建创建UI元素活动栏按钮主边栏视图主边栏工具栏按钮侧边栏右键菜单编辑器右键菜单项目地址[VS Code扩展]写一个代码片段管理插件(一):介绍与界面搭建 [VS Code扩展]写一个代码片段管理插件(二):功能实现写代码的时候,经常要输入重复的内容,虽…

批量登录软件,聚合登录,同时支持:小红书,快手,B站,视频号,淘宝光合,公众号一键运营管理,降本增效。

在数字化时代,我们常常需要管理多个在线账号,这不仅增加了管理的复杂性,还可能导致效率的降低。为了帮助用户简化这一过程,我们推出了六款功能强大的聚合登录软件,涵盖了小红书、快手、B站、视频号、公众号和淘宝等平台。每款软件都具备登录管理多个账号的功能,助力用户更…