引言

在网上看到很多的资料,都没有雷神讲的好,下面以一个初学者的角度,去总结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(一)相关推荐

  1. 跟着雷神学FFmpeg(二)

    引言 在前面已经扫盲式的恶补了相关的音视频的知识点,下面将根据雷神的思路写一些demo 书写第一个FFmpeg控制台程序 // FFmpegLen2.cpp : 定义控制台应用程序的入口点. // / ...

  2. 跟着狂神学SpringCloud(Rest环境搭建+Eureka服务注册与发现+ribbon+Feign负载均衡+Hystrix+服务熔断+Zuul路由网关+SpringCloud config分布)

    跟着狂神学SpringCloud SpringCloud 回顾之前的知识- JavaSE 数据库 前端 Servlet Http Mybatis Spring SpringMVC SpringBoot ...

  3. 跟着狂神学Redis(NoSql+环境配置+五大数据类型+三种特殊类型+Hyperloglog+Bitmap+事务+Jedis+SpringBoot整合+Redis持久化+...)

    跟着狂神学Redis 狂神聊Redis 学习方式:不是为了面试和工作学习!仅仅是为了兴趣!兴趣才是最好的老师! 基本的理论先学习,然后将知识融汇贯通! 狂神的Redis课程安排: nosql 讲解 阿 ...

  4. 跟着狂神学Docker(精髓篇)

    容器数据卷 什么是容器数据卷 docker的理念回顾 将应用和环境打包成一个镜像! 数据?如果数据都在容器中,那么我们容器删除,数据就会丢失!需求:数据可以持久化 MySQL,容器删除了,删库跑路!需 ...

  5. javaweb总——注:跟着狂神学的

    1.JavaWeb 1.1基本概念 web开发: web:网页的意思, www.baidu.com 静态网页web html 提供给所有人看的数据始终不会发生改变 动态web 淘宝,几乎是所有的网站都 ...

  6. 跟着大神学zookeeper分布式锁实现-----来自Ruthless

    前几天分享了@Ruthless大神的Redis锁,发现和大家都学习了很多东西.因为分布式锁里面,最好的实现是zookeeper的分布式锁.所以在这里把实现方式和大家分享一下. zookeeper分布式 ...

  7. 跟着狂神学Java-----DAY1

    P1~P6 博客的重要性: 1.wordpress:博客工具.发布平台和 CMS |WordPress.org WordPress是开源软件,可用于创建漂亮的网站,博客或应用程序. 2.typecho ...

  8. 跟着狂神学JAVA的第七天

    八大数据类型 byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间. short:16位,最大数据存储量是65536,数据范围是-32768~32767之间. int:32位, ...

  9. 在Unity(C#)中使用FFMPEG录制屏幕

    在Unity(C#)中使用FFMPEG录制屏幕 参考文献: https://bbs.csdn.net/topics/391895974 https://blog.csdn.net/cuoban/art ...

最新文章

  1. 让数百万台手机训练同一个模型?Google把这套框架开源了
  2. BCompare注册文件+密钥被撤销解决方案
  3. CV公开课报名 | 快速搭建基于Python的车辆信息识别系统
  4. 如何编辑ttf字体文件
  5. 一文看懂Stacking!(含Python代码)
  6. 建立云服务器_中国云游戏元年 顺网科技跻身头号玩家队列
  7. 3.ZooKeeper客户端Curator的进阶使用「第三章 ZooKeeper Java客户端」「架构之路ZooKeeper理论和实战」
  8. 《操作系统原理》课程中涉及的数据结构总结
  9. [JavaScript] 整数金额转汉语数字大写
  10. NDoc: How to Make Good Use of Your XML Comments?
  11. Packet Sniffing and Spoofing Lab(报文嗅探欺骗SEED 实验)
  12. 与网友“阵春风”交流
  13. Python pandas库|任凭弱水三千,我只取一瓢饮(5)
  14. 派森编程软件python有什么用_派森平台干什么的
  15. [Android]如何做一个崩溃率少于千分之三噶应用app(7)-跨module交互
  16. win10待机状态仍然联网设置
  17. 代码整洁之道读书笔记(Ch4-Ch7)
  18. “再见,微软!”供职 21 年的微软云计算副总裁宣布离职!
  19. 程序员必备的技术网站合集
  20. 网络总结知识点(网络工程师必备)一

热门文章

  1. idea能用下划线替换红色报错吗?我色弱,用idea简直太痛苦了
  2. navisworks怎么导入html,Navisworks中TimeLiner施工模拟如何导入Project工程进度文件
  3. Java中创建(实例化)对象的五种方式
  4. 考研相关的经验和资源
  5. r语言aggredate_R语言 aggregate函数
  6. ICT界的“巅峰对决”巾帼不让须眉
  7. 有没有佩戴舒适的蓝牙耳机?高端蓝牙耳机推荐
  8. 电脑右击此电脑,Windows找不到文件’C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Compu
  9. 政府大数据之数据需求管理
  10. HBase数据库的基本操作增删改查