当前位置: 首页 > news >正文

FFmpeg API

1. 快速打开媒体文件查看信息

#include "mainwindow.h"
#include <QApplication>
#include <iostream>
#include <QDebug>#undef main             // 不加这句会直接报错
#include "SDL.h"extern "C"
{#include <libavcodec/avcodec.h>#include <libavformat/avformat.h>#include <libswscale/swscale.h>#include <libavdevice/avdevice.h>#include <libavformat/version.h>#include <libavutil/time.h>#include <libavutil/mathematics.h>#include <libavutil/imgutils.h>
}int main(int argc, char *argv[])
{const char *input_file = "test.mp4";AVFormatContext *pFormatCtx = nullptr;int ret = avformat_open_input(&pFormatCtx, input_file, NULL, NULL);if(ret != 0){// av_log(nullptr, AV_LOG_ERROR, "Open Input File: %s failed: %s \n", input_file, av_err2str(ret));return -1;}av_dump_format(pFormatCtx, 0, input_file, 0);avformat_close_input(&pFormatCtx);qDebug() << "Finished! ";return 0;
}

  • 重要结构体说明

        (1)AVFormatContext :容器或者媒体文件的抽象层次。

        (2)AVStream:音频、视频或者字幕流。

        (3)AVCodecContext与AVCodec:编码格式和编码器的抽象。

        (4)AVPackge:数据包的抽象(未解码的数据)。

        (5)AVStream:数据帧的抽象。

  • 上边用到了SDL,可以注释掉。


http://www.mrgr.cn/news/51220.html

相关文章:

  • 【树莓派 5B】重启后vnc无法使用失效
  • 图的应用——最短路径
  • 【网络安全】IDOR与JWT令牌破解相结合,实现编辑、查看和删除数万帐户
  • 动态规划——子数组问题
  • 1161.转进制(递归)
  • Spring Boot框架的大创项目进度跟踪系统
  • 基于STM32的水温控制系统设计
  • 暴雨服务器获高密度存储专利积累
  • GWO-Transformer-LSTM灰狼算法优化深度学习多变量回归预测(Maltab)
  • CUDA 全局内存
  • 【教程】一键部署AI生图应用,创造你的游戏世界,做自己的“天命人”
  • 【日记】舞蹈是跟身体对话的一个过程(1451 字)
  • 中控室控制台处在自动状态怎么回事
  • 使用Qwen千问大模型和LangChain打造RAG应用
  • 私有变量、类函数、断言assert
  • 储能硬件实物图
  • 18714 迷宫问题
  • 机器学习数据标准化与归一化:提升模型精度的关键
  • Redis知识应用索引指南
  • 【大模型理论篇】大模型中的强化学习RLHF(PPO)、DPO(Direct Preference Optimization)等概念的理解与解析