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

FFmpeg:打印音/视频信息(Meta信息)

多媒体文件基本概念

  1. 多媒体文件其实是个容器
  2. 在容器里面有很多流(Stream/Track)
  3. 每种流是由不同的编码器编码的
  4. 从流中读出的数据称为包
  5. 在一个包中包含着一个或多个帧

几个重要的结构体

  1. AVFormatContext
  2. AVStream
  3. AVPacket

FFmpeg操作流数据的基本步骤

打印音/视频信息(Meta信息)

  1. av_register_all() 
  2. avformat_open_input()/avformat_close_input()
  3. av_dump_format() :打印音视频的meta信息

具体来看一下 demo:

#include <stdio.h>
#include <libavformat/avformat.h>
#include <libavutil/log.h>

int main(int argc,char* argv[])
{
    int ret;
    AVFormatContext* fmt_ctx = NULL;

    av_log_set_level(AV_LOG_INFO);

    av_register_all();

    ret = avformat_open_input(&fmt_ctx,"./test.mp4",NULL,NULL);
    if(ret < 0)
    {
        av_log(NULL,AV_LOG_ERROR,"Can not open file: %s\n",av_err2str(ret));
        return -1;
    }

    av_dump_format(fmt_ctx,0,"./test.mp4",0);

    avformat_close_input(&fmt_ctx);

    return 0;
}

编译输出:

wj@ubuntu:~/FFmpeg$ gcc -g -o mediainfo mediainfo.c -lavformat -lavutil
mediainfo.c: In function ‘main’:
mediainfo.c:12:5: warning: implicit declaration of function ‘av_register_all’ [-Wimplicit-function-declaration]
   12 |     av_register_all();
      |     ^~~~~~~~~~~~~~~
wj@ubuntu:~/FFmpeg$ ./mediainfo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './test.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: isommp423gp5
    creation_time   : 2018-11-02T07:56:26.000000Z
    encoder         : FormatFactory : www.pcfreetime.com
  Duration: 00:05:26.05, bitrate: N/A
    Stream #0:0(und): Video: mpeg4 (mp4v / 0x7634706D), none, 151 kb/s, SAR 1:1 DAR 0:0, 14.90 fps, 14.90 tbr, 14898 tbn (default)
    Metadata:
      creation_time   : 2018-11-02T07:56:26.000000Z
      handler_name    : video
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, 2 channels, 125 kb/s (default)
    Metadata:
      creation_time   : 2018-11-02T07:56:26.000000Z
      handler_name    : sound
    Stream #0:2(und): Data: none (mp4s / 0x7334706D), 0 kb/s (default)
    Metadata:
      creation_time   : 2018-11-02T07:56:26.000000Z
      handler_name    : GPAC MPEG-4 OD Handler
    Stream #0:3(und): Data: none (mp4s / 0x7334706D), 0 kb/s (default)
    Metadata:
      creation_time   : 2018-11-02T07:56:26.000000Z
      handler_name    : GPAC MPEG-4 Scene Description Handler

相关文章:

  • B树和B+树的介绍和对比,以及MySQL为何选择B+树
  • AS环境,版本问题,android开发布局知识
  • ROS2 库包设置和使用 Catch2 进行单元测试
  • 【Java-LangChain:使用 ChatGPT API 搭建系统-2】语言模型,提问范式与 Token
  • 新款UI动态壁纸头像潮图小程序源码
  • Python安装指南:安装Python、配置Python环境(附安装包)
  • 华为云云耀云服务器L实例评测|部署个人音乐流媒体服务器 navidrome
  • AWS Lambda Golang HelloWorld 快速入门
  • Mac上如何修复损坏的音频?试试iZotope RX 10,对音频进行处理,提高音频质量!
  • PsychoPy Coder 心理学实验 斯特鲁普效应
  • 代码随想录Day57、58 | 392.判断子序列 | 115. 不同的子序列 | 583. 两个字符串的删除操作 | 72. 编辑距离
  • 《幸福之路》罗素(读书笔记)
  • 力扣-367.有效的完全平方数
  • Python中取2023, 9, 1——2023, 10, 31的全部时间
  • JAVA面经整理(8)
  • 使用Jest测试Cesium源码
  • Vue中实现自定义编辑邮件发送到指定邮箱(纯前端实现)
  • 分布式并行训练(DP、DDP、DeepSpeed)
  • 经典算法-----汉诺塔问题
  • 本地连接服务器 jupyter notebook
  • 14岁男孩膀胱内现52颗磁力珠,专家呼吁关注青春期少年心理健康
  • 杨小伟被查,国家广播电视总局党组:坚决拥护党中央决定
  • 碳访|储能行业将迎市场化考验,宁德时代:我们希望“卷价值”
  • 《隐秘的角落》再次被翻拍,将有美剧版
  • 广西京族人的“高跷捞虾”:以前老辈个个都会,现在展演收入赶得上真捕鱼
  • 深一度|从追赶到超越,她是深谙“时间管理学”的优雅棋后