使用ffmpeg和QT开发播放器(6)---读取视频帧、打开视频解码器

admin 2025-11-20 阅读:23 评论:0
读取视频帧 打开视频解码器 完整main函数 //qt的头文件 #include "xplay.h" #include //c++的头文件 #include using namespace std; //预处理指令导入库 #pragma...

读取视频帧

打开视频_读取视频帧_打开视频解码器

打开视频解码器

打开视频_读取视频帧_打开视频解码器

完整main函数

//qt的头文件

#include "xplay.h"

#include

//c++的头文件

#include

using namespace std;

//预处理指令导入库

#pragma comment(lib,"avformat.lib") // 文件格式 依赖库

#pragma comment(lib, "avutil.lib") // 工具类库 获取错误信息的库

#pragma comment(lib, "avcodec.lib") // 编码格式

// 引用c语言的头文件

extern"C" {

#include

/***************************************************************

f9 可设置断点

注释:ctrl + k c

取消注释:ctrl + k u

***************************************************************/

int main(int argc, char *argv

av_register_all(); //注册所有的格式

char *path = "video.mp4"; //设置路径 这个视频是放在我的bin目录下面的

AVFormatContext *ic = NULL; //存放打开视频或者流的信息

int re = avformat_open_input(&ic, path, 0, 0); //打开文件流

if (re != 0) //打开失败

char buf

1024

= { 0 };

av_strerror(re, buf, sizeof(buf)); // 输出错误的信息

printf("open %s failed: %s\n",path, buf );

getchar();

return -1;

// 获取视频的时长 单位s

int totalSec = ic->duration / AV_TIME_BASE;

printf("file totleSec is %d-%d\n",totalSec/60,totalSec%60);

// 打开视频解码器

int videoStream = 0;

for (int i = 0; i < ic->nb_streams; i++) // 遍历视频流

AVCodecContext *enc = ic->streams

->codec; // 解码器的值

if (enc->codec_type == AVMEDIA_TYPE_VIDEO) // 判断是不是一个视频

videoStream = i;

AVCodec *codec = avcodec_find_decoder(enc->codec_id);// 查找解码器 返回的是解码器的id

if (!codec)

printf("video code not find!\n");

return -1;

int err = avcodec_open2(encwhatsapp网页版, codec, NULL);// 打开这个解码器

if (err != 0)

char buf

1024

= {0};

av_strerror(err,bufwhatsapp网页版登录, sizeof(buf));

printf(buf);

return -2;

printf("open codec success!\n");

// 读视频的信息

for (;;)

// 一帧数据

AVPacket pkt;// 一个结构体存放视频信息

re = av_read_frame(ic, &pkt);

if (re != 0) break;

printf("pts = %lld\n",pkt.pts);// pts 存放的时间戳 来控制进度

av_packet_unref(&pkt);

avformat_close_input(&ic); //释放

QApplication a(argcwhatsapp web, argv);

Xplay w;

w.show();

return a.exec();

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

分享:

扫一扫在手机阅读、分享本文

热门文章
  • 详细指南:WhatsApp国内使用方法全攻略-下载安装、注册登录及功能使用攻略

    详细指南:WhatsApp国内使用方法全攻略-下载安装、注册登录及功能使用攻略
    一、下载与安装WhatsApp WhatsApp是一款全球使用范围极广的即时通讯软件,不仅可以实现文本聊天,还能进行语音、视频通话WhatsApp中文版,发送文件等功能。由于众所周知的原因,国内用户想要下载和安装WhatsApp可能会遇到一些困难。不过,只要按照以下步骤操作,就能顺利完成WhatsApp的下载和安装。 首先,我们需要解决的是下载问题。由于WhatsApp在国内的应用商店无法直接下载,所以我们需要寻找其他的下载途径。Android用户可以选择到各大安卓市场搜索下...
  • 苹果IOS5.1.1机完美越狱

    苹果IOS5.1.1机完美越狱
    越狱工具下载:(需手动复制: http://bbs./read-htm-tid-4804612.html ) 详细的越狱教程: Absinthe 2.0.4的越狱方法与Absinthe 1.0的越狱方法完全一样,非常简单的“傻瓜一键式”。不过这里绿毒有说明,最好重新刷固件。支持越狱设备IOS5.1.1的固件下载地址请点击本站的IOS固件下载,看下图: 下载完固件之后,把设备连接iTunes,开始刷固件。你也可以选择不刷,但是在越狱的过程之中,新的系统在越狱时会比较的顺利,...
  • 电脑微信的聊天照片文件在哪里微信图片保存电脑哪个文件夹

    电脑微信的聊天照片文件在哪里微信图片保存电脑哪个文件夹
    1. 怎么找到微信聊天图片在哪个文件夹里 图片保存路径:/storage/emulated/tencent/MicroMsg/WeiXin/文件夹,这个是完整路径。而在文件夹中只需要找到/tencent/MicroMsg/WeiXinWhatsApp中文版,就可以了,前面两个文件夹是系统根目录。以下是保存及查找图片的方法步骤介绍。 第一步、找到桌面的微信APP,直接点击打开这个微信的APP。 2. 电脑微信图片保存在哪个文件夹 个人微信文件夹。 电脑版微信聊天的图片,都保存到...
  • Windows 11版WhatsApp将从UWP/Native切换回WebView2打包模式

    Windows 11版WhatsApp将从UWP/Native切换回WebView2打包模式
    Meta(最近更名为 Meta AI)悄然宣布,WhatsApp 将在 Windows 11 上放弃 UWP(WinUI)WhatsApp中文版,退回采用基于 Chromium 的容器。这意味着 WhatsApp 又回到了几年前的样子。由于 web.whatsapp.com 一直领先于 Windows 应用开发,它确实拥有一些新功能,但速度更慢,占用更多内存。 如果独立开发者因为无力维护所有平台的代码库而选择 Web 应用程序,那是一回事,但当像 Meta 这样价值万亿美元...
  • 小米下載WhatsApp的完整指南:安装与使用注意事项

    小米下載WhatsApp的完整指南:安装与使用注意事项
    综上所述,确保您的小米手机具备以上条件,将有助于您顺利下载和安装WhatsApp,享受便捷的通讯服务。在满足这些条件后,您就可以按照后续步骤进行WhatsApp的下载和安装。 2. 下载和安装WhatsApp的具体步骤 在小米手机上下载和安装WhatsApp的具体步骤相对简单,但需注意一些特殊情况。首先,确保你的手机系统已更新到最新版本,以保证最佳的兼容性。由于安卓手机商店内无法直接找到WhatsApp,你可以通过APKPure等第三方应用商店进行下载。打开APKPure应用...