![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ffmpeg入门
文章平均质量分 90
ffmpeg入门
诺谦
热爱生活 活在当下
展开
-
12.QT-通过QOpenGLWidget显示YUV画面,通过QOpenGLTexture纹理渲染YUV
在上章11.QT-ffmpeg+QAudioOutput实现音频播放器,我们学习了如何播放音频,接下来我们便来学习如何通过opengl来显示YUV画面1.为什么使用QOpenGLWidget显示YUV如果软件中通过公式来实现软解码的话,会耗掉很多CPU,所以使用opengl,我们只需要将YUV数据传给opengl,然后opengl通过GPU硬件加速图形绘制来实现硬解码.需要学习:2.通过...原创 2020-11-02 17:02:00 · 1448 阅读 · 3 评论 -
11.QT-ffmpeg+QAudioOutput实现音频播放器
1.前言 由于QAudioOutput支持的输入数据必须是原始数据,所以播放mp3,WAV,AAC等格式文件,需要解封装后才能支持播放. 而在QT中,提供了QMediaPlayer类可以支持解封装,但是该类的解码协议都是基于平台的,如果平台自身无法播放,那么QMediaPlayer也无法播放.有兴趣的朋友可以去试试. 所以接下来,我们使用ffmpeg+QAudioO...原创 2020-09-10 21:14:00 · 831 阅读 · 2 评论 -
10.QT-QAudioOutput类使用
本章需要用到的类如下:QAudioDeviceInfo类提供音频输出设备QAudioFormat类提供音频参数设置QAudioOutput类提供了用于将PCM原始音频数据发送到音频输出设备的接口。1.QAudioDeviceInfo类用来提供音频输出设备,并且包含该设备支持的格式,排序,通道,编码器,频率,采样率等, 用户可以通过bool isFormatSupported(con...原创 2020-09-10 20:51:00 · 1974 阅读 · 0 评论 -
9.下载ffmpeg、使QT支持同时编译32位和64位
1.FFMPEG下载进入http://ffmpeg.org/download.html,如果下载源码,则在右下方:如果在linux中,直接输入git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg下载即可下载库到windows中,则点击:这里我们选择下载最新版本20200831的shared和dev:Static静态库 : 这个版本只...原创 2020-09-10 20:23:00 · 698 阅读 · 0 评论 -
8.ffmpeg-基础常用知识
1.封装格式MPEG-4其中 MPEG-1 和 MPEG-2 是采用相同原理为基础的预测编码、变换编码、 熵编码及运动补偿等第一代数据压缩编码技术;MPEG-4(ISO/IEC 14496)则是基于第二代压缩编码技术制定的国际标准,它以视听媒体对象为基本单元,采用基于内容的压缩编码,实现数字视音频、图形合成应用及交互式多媒体的集成。 MPEG 系列标准对 VCD、 DVD 等视听消费电子及数字电视和高清晰度电视(DTV&&HDTV)、 多媒体通信等信息产业的发展产生了巨大而深远的影响原创 2021-09-09 17:14:53 · 420 阅读 · 0 评论 -
7.SwrContext音频重采样使用
头文件位于#include <libswresample/swresample.h>SwrContext常用函数如下所示SwrContext *swr_alloc(void); //创建一个SwrContext,并设置为默认参数 struct SwrContext *swr_alloc_set_opts(struct SwrContext *s, int64_t out_...原创 2020-09-10 19:47:00 · 358 阅读 · 0 评论 -
6.AVCodecContext和AVCodec
AVCodecContextAVCodecContext 结构表示程序运行的当前 Codec 使用的上下文,着重于所有 Codec 共有的属性(并且是在程序运行时才能确定其值)和关联其他结构的字段。 extradata 和 extradata_size 两个成员表述了相应 Codec 使用的私有数据; codec成员关联相应的编解码器; priv_data 成员关联各个具体编解码器独...原创 2020-09-09 16:01:00 · 429 阅读 · 0 评论 -
5.AVStream和AVCodecParameters
AVStream和AVCodecParameters说明:AVStream 结构表示当前媒体流的上下文,着重于所有媒体流共有的属性(并且是在程序运行时才能确定其值)和关联其他结构的字段。 其中codecpar成员里存储了当前音视频媒体使用的编解码器信息; priv_data 成员关联解析各个具体媒体流解复用拆包用的 context;还有关键帧的索引表index_entries成员也存于此。...原创 2020-08-28 19:15:00 · 437 阅读 · 0 评论 -
4.FFMPEG-AVFrame
在ffmpeg中,解码前的数据结构体为AVPacket(参考:3.AVPacket使用),而解码后的数据为AVFrame(视频的YUV, RGB, 音频的PCM,数据量更大)1.AVFrame介绍AVFrame必须使用av_frame_alloc()来分配。注意,这只是分配AVFrame本身,缓冲区的数据(解码成功后的数据)必须通过其他途径被管理.因为AVFrame通常只分配一次,然后多...原创 2020-07-06 18:58:00 · 738 阅读 · 0 评论 -
3.AVPacket使用
1.使用注意 AVPacket需要用户通过av_packet_allc()创建好空间后.才能供给fimpeg进行获取解码前帧数据,由于解码前帧数据大小是不固定的(比如I帧数据量最大)所以ffmpeg会在AVPacket的成员里动态进行创建空间. 并且我们每一次使用完AVPacket后(再次调用av_read_frame()读取新帧之前),必须要通过av_packet_unref(...原创 2020-07-03 19:14:00 · 1534 阅读 · 0 评论 -
2.AVFormatContext和AVInputFormat
参考https://blog.csdn.net/leixiaohua1020/article/details/14214705AVFormatContext: 用来存储视音频封装格式(flv,mp4,rmvb,avi)中包含的所有信息 很多函数都要用到它作为参数。AVFormatContext结构体如下所示(显示部分成员,后续深入添加):typedef struct AVFormatCo...原创 2020-06-24 16:53:00 · 435 阅读 · 0 评论 -
1.ffmpeg、ffplay、ffprobe命令使用
1.学前知识1.1视频码率值码率公式: 码率(kbps)=文件大小(KB)*8/时间(秒)所以码率和视频文件大小成正比的,不过码率超过一定值后,人眼是看不出效果的.接下来,我们便先来学习ffmpeg命令使用2.ffmpeg常用命令使用ffmpeg命令- 用于转码的应用程序, 也可以从url/现场音频/视频源抓取输入源参考:http://ffmpeg.org/ffmpeg.ht...原创 2020-05-11 19:30:00 · 464 阅读 · 0 评论