跟着雷神学FFmpeg(一)
引言
在网上看到很多的资料,都没有雷神讲的好,下面以一个初学者的角度,去总结FFmpeg,对音视频没有任何基础的做一些基础知识的扫盲。
并且做一些C++的demo,以供学习
目录
- 封装格式(MP4,rmvb)
- 视频编码数据(H.246)
- 音频编码数据(AAC)
- 视频像素数据(显卡显示,RGB)
- 音频采样数据(PCM)
视频播放器原理
- 蓝色表示解码操作
- 当我们打开视频文件,就要分析有哪些视频流(压缩数据,体积小),音频流。所以要解分装格式
- 视频像素数据-YUV
- 音频采样数据-PCM
- 视音频同步
常用的播放器
- VLC,Mplayer,ffmplay
信息查看工具
- 综合信息查看:MediaInfo
- 二进制信息查看:ULtraEdit
封装格式
- 封装格式分析工具:ELecard Format Analyzer
- MPEF2-TS 数字电视用到的格式,分割是188Byte大小,没有文件头,文件部分损坏,可以继续播放
- FLV格式:如果头坏掉,就废了。
视频编码数据
- 把能看的数据,压缩成视频码流,高清视频码流非常的大
- 视频编码分析工具:Elecard Stream Eye
现在一般接触的视频。90%H.264, 现在比较普及
- H.264格式:一个画面就是NALU,作为单元存储起来。
- H.264压缩方法:比较复杂,
Elecard Stream Eye 的使用
- 红色的帧: I 帧 , 蓝色的帧:P帧 ,绿色的帧:B帧
- I 帧的体积特别大,
- P帧,当运动矢量不是特别大的时候,不会太大
- B帧参考前后帧
音频解码数据
- CD导出和WAV音频是基本上没有压缩的
- AC-3 支持的声道比较多,电影中
- 大部分都是使用AAC的编码格式
- wav是一种无损的音频文件格式,pcm是没有压缩的编码方式
- AAC音频压缩10几倍,数字信号处理
视频像素数据
- YUV420P 是常用的格式,编程中也是常用的,一小时占用500多个G
音频采样数据
- 播放器对连续的波进行采样,然后保存下来
- 4604410022=42.3MByte ,采样率44100Hz,采样率16bit,两个字节:秒x采样率 x两个声道x16位两个字节
- 查看工具 Adobe Audition
PCM
跟着雷神学FFmpeg(一)相关推荐
- 跟着雷神学FFmpeg(二)
引言 在前面已经扫盲式的恶补了相关的音视频的知识点,下面将根据雷神的思路写一些demo 书写第一个FFmpeg控制台程序 // FFmpegLen2.cpp : 定义控制台应用程序的入口点. // / ...
- 跟着狂神学SpringCloud(Rest环境搭建+Eureka服务注册与发现+ribbon+Feign负载均衡+Hystrix+服务熔断+Zuul路由网关+SpringCloud config分布)
跟着狂神学SpringCloud SpringCloud 回顾之前的知识- JavaSE 数据库 前端 Servlet Http Mybatis Spring SpringMVC SpringBoot ...
- 跟着狂神学Redis(NoSql+环境配置+五大数据类型+三种特殊类型+Hyperloglog+Bitmap+事务+Jedis+SpringBoot整合+Redis持久化+...)
跟着狂神学Redis 狂神聊Redis 学习方式:不是为了面试和工作学习!仅仅是为了兴趣!兴趣才是最好的老师! 基本的理论先学习,然后将知识融汇贯通! 狂神的Redis课程安排: nosql 讲解 阿 ...
- 跟着狂神学Docker(精髓篇)
容器数据卷 什么是容器数据卷 docker的理念回顾 将应用和环境打包成一个镜像! 数据?如果数据都在容器中,那么我们容器删除,数据就会丢失!需求:数据可以持久化 MySQL,容器删除了,删库跑路!需 ...
- javaweb总——注:跟着狂神学的
1.JavaWeb 1.1基本概念 web开发: web:网页的意思, www.baidu.com 静态网页web html 提供给所有人看的数据始终不会发生改变 动态web 淘宝,几乎是所有的网站都 ...
- 跟着大神学zookeeper分布式锁实现-----来自Ruthless
前几天分享了@Ruthless大神的Redis锁,发现和大家都学习了很多东西.因为分布式锁里面,最好的实现是zookeeper的分布式锁.所以在这里把实现方式和大家分享一下. zookeeper分布式 ...
- 跟着狂神学Java-----DAY1
P1~P6 博客的重要性: 1.wordpress:博客工具.发布平台和 CMS |WordPress.org WordPress是开源软件,可用于创建漂亮的网站,博客或应用程序. 2.typecho ...
- 跟着狂神学JAVA的第七天
八大数据类型 byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间. short:16位,最大数据存储量是65536,数据范围是-32768~32767之间. int:32位, ...
- 在Unity(C#)中使用FFMPEG录制屏幕
在Unity(C#)中使用FFMPEG录制屏幕 参考文献: https://bbs.csdn.net/topics/391895974 https://blog.csdn.net/cuoban/art ...
最新文章
- 让数百万台手机训练同一个模型?Google把这套框架开源了
- BCompare注册文件+密钥被撤销解决方案
- CV公开课报名 | 快速搭建基于Python的车辆信息识别系统
- 如何编辑ttf字体文件
- 一文看懂Stacking!(含Python代码)
- 建立云服务器_中国云游戏元年 顺网科技跻身头号玩家队列
- 3.ZooKeeper客户端Curator的进阶使用「第三章 ZooKeeper Java客户端」「架构之路ZooKeeper理论和实战」
- 《操作系统原理》课程中涉及的数据结构总结
- [JavaScript] 整数金额转汉语数字大写
- NDoc: How to Make Good Use of Your XML Comments?
- Packet Sniffing and Spoofing Lab(报文嗅探欺骗SEED 实验)
- 与网友“阵春风”交流
- Python pandas库|任凭弱水三千,我只取一瓢饮(5)
- 派森编程软件python有什么用_派森平台干什么的
- [Android]如何做一个崩溃率少于千分之三噶应用app(7)-跨module交互
- win10待机状态仍然联网设置
- 代码整洁之道读书笔记(Ch4-Ch7)
- “再见,微软!”供职 21 年的微软云计算副总裁宣布离职!
- 程序员必备的技术网站合集
- 网络总结知识点(网络工程师必备)一
热门文章
- idea能用下划线替换红色报错吗?我色弱,用idea简直太痛苦了
- navisworks怎么导入html,Navisworks中TimeLiner施工模拟如何导入Project工程进度文件
- Java中创建(实例化)对象的五种方式
- 考研相关的经验和资源
- r语言aggredate_R语言 aggregate函数
- ICT界的“巅峰对决”巾帼不让须眉
- 有没有佩戴舒适的蓝牙耳机?高端蓝牙耳机推荐
- 电脑右击此电脑,Windows找不到文件’C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Compu
- 政府大数据之数据需求管理
- HBase数据库的基本操作增删改查