随笔分类 -  4.4 ffmpeg-qt

摘要:在上章12.QT-通过QOpenGLWidget显示YUV画面,通过QOpenGLTexture纹理渲染YUV,我们学会了如何硬解码,但是ffmpeg图像解码过程还不知道.所以本章主要分析一下FFmpeg视频图像解码过程,只有真正了解了FFmpeg处理的基本流程,研读 ffmpeg 源代码才能事半功 阅读全文
posted @ 2020-11-03 18:03 诺谦 阅读(1993) 评论(0) 推荐(3) 编辑
摘要:在上章11.QT-ffmpeg+QAudioOutput实现音频播放器,我们学习了如何播放音频,接下来我们便来学习如何通过opengl来显示YUV画面 1.为什么使用QOpenGLWidget显示YUV 如果软件中通过公式来实现软解码的话,会耗掉很多CPU,所以使用opengl,我们只需要将YUV数 阅读全文
posted @ 2020-11-02 17:02 诺谦 阅读(6360) 评论(0) 推荐(0) 编辑
摘要:1.前言 由于QAudioOutput支持的输入数据必须是原始数据,所以播放mp3,WAV,AAC等格式文件,需要解封装后才能支持播放. 而在QT中,提供了QMediaPlayer类可以支持解封装,但是该类的解码协议都是基于平台的,如果平台自身无法播放,那么QMediaPlayer也无法播放.有兴趣 阅读全文
posted @ 2020-09-10 21:14 诺谦 阅读(6848) 评论(2) 推荐(2) 编辑
摘要:本章需要用到的类如下: QAudioDeviceInfo类提供音频输出设备 QAudioFormat类提供音频参数设置 QAudioOutput类提供了用于将PCM原始音频数据发送到音频输出设备的接口。 1.QAudioDeviceInfo类 用来提供音频输出设备,并且包含该设备支持的格式,排序,通 阅读全文
posted @ 2020-09-10 20:51 诺谦 阅读(8543) 评论(2) 推荐(2) 编辑
摘要:1.FFMPEG下载 进入http://ffmpeg.org/download.html,如果下载源码,则在右下方: 如果在linux中,直接输入git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg下载即可下载库到windows中,则点击: 这里我们选 阅读全文
posted @ 2020-09-10 20:23 诺谦 阅读(3672) 评论(3) 推荐(2) 编辑
摘要:1.封装格式MPEG-4其中 MPEG-1 和 MPEG-2 是采用相同原理为基础的预测编码、变换编码、 熵编码及运动补偿等第一代数据压缩编码技术;MPEG-4(ISO/IEC 14496)则是基于第二代压缩编码技术制定的国际标准,它以视听媒体对象为基本单元,采用基于内容的压缩编码,实现数字视音频、 阅读全文
posted @ 2020-09-10 20:03 诺谦 阅读(882) 评论(0) 推荐(0) 编辑
摘要:头文件位于#include <libswresample/swresample.h> SwrContext常用函数如下所示 SwrContext *swr_alloc(void); //创建一个SwrContext,并设置为默认参数 struct SwrContext *swr_alloc_set_ 阅读全文
posted @ 2020-09-10 19:47 诺谦 阅读(1684) 评论(0) 推荐(0) 编辑
摘要:AVCodecContext AVCodecContext 结构表示程序运行的当前 Codec 使用的上下文,着重于所有 Codec 共有的属性(并且是在程序运行时才能确定其值)和关联其他结构的字段。 extradata 和 extradata_size 两个成员表述了相应 Codec 使用的私有数 阅读全文
posted @ 2020-09-09 16:01 诺谦 阅读(2532) 评论(0) 推荐(0) 编辑
摘要:AVStream和AVCodecParameters 说明: AVStream 结构表示当前媒体流的上下文,着重于所有媒体流共有的属性(并且是在程序运行时才能确定其值)和关联其他结构的字段。 其中codecpar成员里存储了当前音视频媒体使用的编解码器信息; priv_data 成员关联解析各个具体 阅读全文
posted @ 2020-08-28 19:15 诺谦 阅读(2178) 评论(0) 推荐(0) 编辑
摘要:在ffmpeg中,解码前的数据结构体为AVPacket(参考:3.AVPacket使用),而解码后的数据为AVFrame(视频的YUV, RGB, 音频的PCM,数据量更大) 1.AVFrame介绍 AVFrame必须使用av_frame_alloc()来分配。注意,这只是分配AVFrame本身,缓 阅读全文
posted @ 2020-07-06 18:58 诺谦 阅读(2371) 评论(0) 推荐(0) 编辑
摘要:1.使用注意 AVPacket需要用户通过av_packet_allc()创建好空间后.才能供给fimpeg进行获取解码前帧数据,由于解码前帧数据大小是不固定的(比如I帧数据量最大)所以ffmpeg会在AVPacket的成员里动态进行创建空间. 并且我们每一次使用完AVPacket后(再次调用av_ 阅读全文
posted @ 2020-07-03 19:14 诺谦 阅读(4206) 评论(0) 推荐(0) 编辑
摘要:参考https://blog.csdn.net/leixiaohua1020/article/details/14214705 AVFormatContext: 用来存储视音频封装格式(flv,mp4,rmvb,avi)中包含的所有信息 很多函数都要用到它作为参数。 AVFormatContext结 阅读全文
posted @ 2020-06-24 16:53 诺谦 阅读(1989) 评论(0) 推荐(0) 编辑
摘要:1.学前知识 1.1视频码率值 码率公式: 码率(kbps)=文件大小(KB)*8/时间(秒) 所以码率和视频文件大小成正比的,不过码率超过一定值后,人眼是看不出效果的. 接下来,我们便先来学习ffmpeg命令使用 2.ffmpeg常用命令使用 ffmpeg命令- 用于转码的应用程序, 也可以从ur 阅读全文
posted @ 2020-05-11 19:30 诺谦 阅读(5526) 评论(2) 推荐(0) 编辑

点击右上角即可分享
微信分享提示