FFMPEG
佛魔是否
这个作者很懒,什么都没留下…
展开
-
QT + FFMPEG实现基本播放器(五):音频视频同步
QT + FFMPEG实现基本播放器(五):音频视频同步该文章主要参考:https://www.cnblogs.com/leisure_chn/p/10284653.html对于音视频播放来说,如果不进行同步的话,即使在视频开头是同步的,但是播放到后面肯定会出现不同步的现象。视频是按帧播放,图像显示设备每次显示一帧画面,视频播放速度由帧率确定,帧率指示每秒显示多少帧;音频按采样点播放,声音播放设备每次播放一个采样点,声音播放速度由采样率确定,采样率指示每秒播放多少个采样点。如果仅仅是视频按帧率播放,音原创 2020-08-04 15:20:19 · 1852 阅读 · 1 评论 -
QT + FFMPEG实现基本播放器(四):音频播放实现
QT + FFMPEG实现基本播放器(四):音频播放实现对于音频这里采用两种播放方式,一种使用QT的QAudioOutput,另一种使用SDL进行音频播放。在使用QAudioOutput的时候需要在pro文件中添加 QT += multimedia对于音频来说需要设置其相关的如声道,采样率,位数等参数:bool AudioThread::Start(){ Stop(); m_IsRuning = true;#ifndef _USE_SDL_ //使用QAu原创 2020-08-04 14:53:19 · 2289 阅读 · 2 评论 -
QT + FFMPEG实现基本播放器(三):视频播放实现
QT + FFMPEG实现基本播放器(三):视频播放实现在 《QT + FFMPEG实现基本播放器(二):FFMPEG解码功能实现》中,将所有avPacket放入到了全局的一个结构体的队列当中 g_MedieInfo.m_VideoPacketQueue.push(avPacket);因此可以实现视频的播放线程,从队列当中取出数据,从而可以将avPacket解码成原始的数据,从而将其转为QImage,发送到VideoWidget中进行显示:VideoThread继承QThread,因此主要实现run函原创 2020-08-04 11:11:24 · 1311 阅读 · 0 评论 -
QT + FFMPEG实现基本播放器(二):FFMPEG解码功能实现
QT + FFMPEG实现基本播放器(二):FFMPEG解码功能实现对于视频的解码模块,使用FFMPEG进行实现。将在上一节中实现的OpenFileHanle槽函数中,增加以下的代码,将提取到的文件名称,传给FFmpegThread,FFmpegThread使用单例模式管理FFMPEGint ret = FFmpegThread::Get()->OpenFile((const char *)strFileName.toLocal8Bit());if(ret < 0){ QMe原创 2020-07-28 14:26:22 · 1470 阅读 · 0 评论 -
QT + FFMPEG实现基本播放器(一):播放器基础界面实现
QT + FFMPEG实现基本播放器(一):播放器基础界面实现使用QT制作播放器的界面,界面使用QOpenGLWidget进行视频显示,将视频的每帧数据转为QImage,然后发送给Widget将QImage显示出来。想要将QImage显示在Widget上的话,需要重写panitEvent事件:void VideoWidget::paintEvent(QPaintEvent * /*e*/){ if (m_Image.isNull()) { return; }原创 2020-07-28 11:06:15 · 1951 阅读 · 2 评论