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

这篇具有很好参考价值的文章主要介绍了FFmpeg:打印音/视频信息(Meta信息)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

多媒体文件基本概念

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

几个重要的结构体

  1. AVFormatContext
  2. AVStream
  3. AVPacket

FFmpeg操作流数据的基本步骤

FFmpeg:打印音/视频信息(Meta信息),# FFmpeg软件,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;
}

编译输出:文章来源地址https://www.toymoban.com/news/detail-718278.html

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

到了这里,关于FFmpeg:打印音/视频信息(Meta信息)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue-router 路由元信息meta

    meta原信息是一个可以给路由记录携带一个对象的字段(字段名只能为meta,其他的设置了也没用),你可以在这个字段里存一些信息,例如该路由地址是否需要身份验证、该地址是否需要导航栏等。 获取方式如下: vue-router官方例子如下,是一个根据meta判断该路径是否需要验

    2024年02月13日
    浏览(29)
  • 【HTML系列】第六章 · 框架标签、HTML实体、HTML全局属性和meta元信息

            Hello大家好, 我是【 麟-小白 】,一位 软件工程 专业的学生,喜好 计算机知识 。希望大家能够一起 学习进步 呀!本人是一名 在读大学生 ,专业水平有限,如发现 错误 或 不足之处 ,请多多指正!谢谢大家!!!         如果 小哥哥小姐姐们 对我的文章感兴趣

    2023年04月08日
    浏览(53)
  • Java打印异常信息

    在Java中,我们可以使用以下三种方式打印异常信息: 使用Exception的getMessage()方法打印异常信息,如下所示: 使用Logger打印异常信息,这种方式需要先创建一个Logger对象,然后使用Logger的log()方法打印异常信息,如下所示: 例题 编写程序,要求输入一个价格(必须是数值,值

    2024年02月16日
    浏览(35)
  • python中如何打印日志信息

    日志打印方式 常见的Python日志打印方式为使用内置函数 print() 或者 logging 模块打印日志。 print() 只能将日志打印至控制台,不推荐此方式 logging 模块默认将日志打印至控制台,也可以配置打印到指定日志文件,推荐使用此方式 logging模块 日志等级 logging提供了函数来做日志处

    2024年02月06日
    浏览(44)
  • Python中打印彩色信息的方法

    在Python中,可以使用print()函数打印出彩色信息。在使用print()打印之前,需要调用os标准库对系统进行设置。 os是Operating System的简写,即“操作系统”。os标准库是一个操作系统接口模块,提供了使用操作系统相关功能的函数。 需要通过import导入该库,代码如下所示: 可以通

    2024年02月07日
    浏览(19)
  • kotlin Calendar打印每天的信息

    2024年02月11日
    浏览(21)
  • ffmpeg学习(印对应的文件信息,抽取音频文件信息)

    目录 打印对应的文件信息 抽取音频文件信息 # 概念 多媒体文件是个容器,在容器中有很多流,使用(stream或者track)表示。每种不同的流不交叉,是由不同的编码器的编码的(音频和视频的不同编码形似),从流中读取的数据为包,包中包含一帧或多个帧压缩数据, ``` AV

    2024年02月16日
    浏览(50)
  • 【ffmpeg基础】ffmpeg视频编码

    通过-s来指定输入yuv的分辨率(需要先指定分辨率); 通过-pix_fmt来指定输入yuv的像素格式; 通过-i来指定输入yuv的路径和名称; 通过-r 来指定要编码的帧率; 通过-vcodec来指定视频编码的编码器为libx264 通过-an参数来去掉输入input.mp4中的音频,并通过-vcodec libx264将输入的视频进

    2024年02月14日
    浏览(27)
  • Unity中打印信息的两种方式

    不继承MonoBehaviour的普通C#类中打印信息: 使用Debug类的方法: Unity提供了Debug类,其中包含了一些用于打印信息的静态方法。以下是常用的几种方法: Debug.Log(message) :打印普通信息。 Debug.LogWarning(message) :打印警告信息,通常用于提示潜在问题。 Debug.LogError(message) :打印错

    2024年01月22日
    浏览(67)
  • Springboot - 打印多个yml最终合并配置信息

    Springboot项目中多个yml配置优先级和最终配置容易混淆,本文帮助打出yml优先级和最终配置,以yml格式打印到控制台,便于开发调试。 一、服务启动后打印 二、监听事件打印

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包