基于FFmpeg的视频播放器之十三:抓图
Posted 草上爬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于FFmpeg的视频播放器之十三:抓图相关的知识,希望对你有一定的参考价值。
抓图的话当然可以用QImage来实现,但是得先把yuv图像转成图像再通过QImage保持,比较麻烦。这里直接通过ffmpeg从视频流中抓取图片,也就是在yuv渲染之前抓取。
这里文件名使用当前时间,因此只需要传入图片保持的路径就行,filePath就是传入的路径
time_t tt = time(nullptr);
struct tm *_time = localtime(&tt);
char szTime[64] = 0;
strftime(szTime, 32, "%Y%m%d%H%M%S", _time);
char mediaName[512] = 0;
sprintf(mediaName, "%s.jpg", szTime);
std::string mediaPath= filePath + "/" + mediaName;
整个takeSnapshot函数如下所示
void QHSnapshoter::takeSnapshot(AVFrame *frame, std::string filePath)
AVFrame *avFrame=frame;
int width=frame->width;
int height=frame->height;
time_t tt = time(nullptr);
struct tm *_time = localtime(&tt);
char szTime[64] = 0;
strftime(szTime, 32, "%Y%m%d%H%M%S", _time);
char mediaName[512] = 0;
sprintf(mediaName, "%s.jpg", s
以上是关于基于FFmpeg的视频播放器之十三:抓图的主要内容,如果未能解决你的问题,请参考以下文章