音视频基础知识

1.MPEG-4是一套用于音频,视频信息的亚索编码标准。

2.常见的封装格式

MP4  MOV

AVI:压缩标准可以任意选择

FLV :FLV封装格式详细参考

TS:直播流媒体使用;

3.常用视频编码格式

H264(AVC Part 10),具体H264相关参考如下

H264参考一  H264参考二 H264参考三

4.常用音频编码格式

AAC

5.封装格式与编码格式之间的关系

6.图像格式相关详细解读

7.PCM音频相关参数

采样率  sample_rate ,即每秒种采集多少次声音,通用使用44100(CD)

通道      channels        即在几个点采集,通用使用2(双声道)

样本大小 (格式)  sample_size ,每个声音使用多大来存储,通用使用 AV_SAMPLE_FMP_S16 两个字节存放一个音 ; AV_SAMPLE_FMP_FLTP 四个字节来存放一个声音

样本类型  planar ,样本在内存中的存储格式,分为 平面格式与 非 平面格式 ,平面格式为连续存储即aaabbbccc,非平面为  abcabcabc

8.MP4格式相关解读

解封装(Demux)

1.av_register_all( );    作用是初始化封装库相关,必须在调用解放装前使用。

2.avformat_network_init( );     初始化网络库 (可以打开rtsp rtmp http 协议的流媒体视频)

3.解封装

int avformat_open_input(AVFormatContext **ps, const char *url, ff_const59 AVInputFormat *fmt, AVDictionary **options);

@ps ,格式化上下文   @url ,文件名称或者网络流地址    @fmt,指定输入封装格式,传递nullptr会自动探测

@options,字典数组,可以设置相关预设值,例如如下设置

 //参数设置AVDictionary *opts = NULL;//设置rtsp流已tcp协议打开av_dict_set(&opts, "rtmp_transport", "tcp", 0);//网络延时时间av_dict_set(&opts, "max_delay", "500", 0);

4.针对网络流需要调用

int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options);

5.寻找音视频的索引

int av_find_best_stream(AVFormatContext *ic,enum AVMediaType type,int wanted_stream_nb,int related_stream,AVCodec **decoder_ret,int flags);

6.读取每一帧

int av_read_frame(AVFormatContext *s, AVPacket *pkt);

【开源项目】基于C++使用ffmpeg和QT开发播放器相关推荐

  1. C++基于ffmpeg和QT开发播放器~学习笔记

    C++基于ffmpeg和QT开发播放器 B站网址 https://www.bilibili.com/video/BV1h44y1t7D8?p=2&spm_id_from=pageDriver ...

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

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

  3. 开源项目-基于Intel VT技术的Linux内核调试器

    本开源项目将硬件虚拟化技术应用在内核调试器上,使内核调试器成为VMM,将操作系统置于虚拟机中运行,即操作系统成为GuestOS,以这样的一种形式进行调试,最主要的好处就是调试器对操作系统完全透明.如下 ...

  4. 基于FFmpeg和Qt的播放器 QtAV库

    参与项目开发: https://github.com/wang-bin/QtAV 下载编译好的文件等:https://sourceforge.NET/projects/qtav win下编译好的可执行 ...

  5. DoNet开源项目-基于jQuery EasyUI的后台管理系统

    本文转载于 石佳劼的博客,有问题请到原文咨询,原文连接. 博主在业余时间开发了一个简单的后台管理系统,其中用到了 jQuery EasyUI 框架,上次分享过系统布局,参考文章:jQuery Easy ...

  6. DoNet开源项目-基于Amaze UI的点餐系统

    本文转载于 石佳劼的博客,有问题请到原文咨询,原文连接. 点餐系统 帮朋友做的点餐系统,主要是为了让顾客在餐桌上,使用微信扫描二维码,就可以直接点菜,吃完使用微信付款. 系统演示地址,账户名和密码均为 ...

  7. 最简单的基于FFMPEG+SDL的音频播放器:拆分-解码器和播放器

    ===================================================== 最简单的基于FFmpeg的音频播放器系列文章列表: <最简单的基于FFMPEG+SDL ...

  8. 最简单的基于FFMPEG+SDL的音频播放器 拆分-解码器和播放器

    ===================================================== 最简单的基于FFmpeg的音频播放器系列文章列表: <最简单的基于FFMPEG+SDL ...

  9. 最简单的基于FFMPEG+SDL的音频播放器

    ===================================================== 最简单的基于FFmpeg的音频播放器系列文章列表: <最简单的基于FFMPEG+SDL ...

最新文章

  1. python编程是干啥用的-浅谈Python类中的self到底是干啥的
  2. mysql 事物状态有几种_10分钟梳理MySQL核心知识点
  3. 前端学习(1903)vue之电商管理系统电商系统之调用api添加用户
  4. 操作系统-进程同步与互斥易混点
  5. 升级 项目跑不起来_不做“睡城”!嘉定新城“十四五”加速度,产城融合跑起来,远香湖,看好你...
  6. 高吞吐消息中间件Kafka集群环境搭建(3台kafka,3台zookeeper)
  7. ant指定servlet版本_[转载]程序开发常见错误
  8. java 调用.net类库_通过COM组件方式实现java调用C#写的DLL文件
  9. 打开excel后,提示更新链接的原因(含批量处理VBA代码)
  10. 动态添加table表格内容,填充审批意见。
  11. CAD 卸载工具,完美彻底卸载清除干净cad各种残留注册表和文件【转载】
  12. winpe 能否修复服务器系统盘,U盘WINPE、光盘WINPE系统(启动修复盘)制作图文教程...
  13. 七种常见的数据分析法之:对比分析法
  14. 《植物大战僵尸》游戏存档修改
  15. 关于C++、PHP和Swoole-韩天峰
  16. 外企8年,我学到的人性化,不止是宽容
  17. 如何做一个基于JAVA房产中介预约看房系统毕业设计毕设作品(springboot框架)
  18. L5W3作业2 关键字语音识别
  19. 使用阿里云服务器发送邮件
  20. 裴蜀定理(Noi Color)应用

热门文章

  1. 如何使用Apache Camel,Quarkus和GraalVM快速运行100个骆驼
  2. zipkin 自定义采样率_分组,采样和批处理– Java 8中的自定义收集器
  3. Spring Bean范围
  4. javafx中的tree_JavaFX中的塔防(2)
  5. 什么是javax.ws.rs.core.context? [第5部分]
  6. NetBeans Java EE技巧3:数据库中的RESTful Web服务
  7. openshift用户管理_OpenShift Express Web管理控制台:入门
  8. 代码挑战“ Vrolijke Framboos”事后验尸
  9. Lambdas中的例外:有点混乱的优雅解决方案
  10. WildFly 8的Camel子系统集成了Java EE –入门