【ffmpeg命令入门】获取音视频信息

文章目录

  • 前言
    • 使用ffmpeg获取简单的音视频信息
        • 输入文件信息
        • 文件元数据
        • 视频流信息
        • 音频流信息
    • 使用ffprobe获取更详细的音视频信息
      • 输入文件信息
      • 文件元数据
      • 视频流信息
      • 音频流信息
  • 总结


前言

在处理多媒体文件时,了解文件的详细信息对于调试和优化处理过程至关重要。FFmpeg,作为一个强大的开源多媒体处理工具,提供了多种功能来获取音视频文件的详细信息。本文将简要介绍如何使用 FFmpeg 和其相关工具来获取音视频信息,帮助用户更好地理解和操作多媒体文件。

FFmpeg 的 ffprobe 是一个用于分析多媒体文件的工具,它可以详细列出文件的音视频流信息、编码格式、分辨率、比特率等关键参数。通过 ffprobe 命令,用户可以轻松获取这些信息,从而了解文件的具体结构和特性。除此之外,FFmpeg 还可以通过 ffmpeg 命令获取部分基本的信息,尽管它主要用于多媒体数据的转换和处理。


使用ffmpeg获取简单的音视频信息

我们可以使用下面的命令获取信息,只需要输入文件不需要输出文件:

ffmpeg -i "[板绘版][修补完成]一键三连变成女孩子有多么可爱!  60fps.mp4"

打印结果如下:

ffmpeg version 2024-07-15-git-350146a1ea-full_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developersbuilt with gcc 13.2.0 (Rev5, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libquirc --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprintlibavutil      59. 28.100 / 59. 28.100libavcodec     61. 10.100 / 61. 10.100libavformat    61.  5.101 / 61.  5.101libavdevice    61.  2.100 / 61.  2.100libavfilter    10.  2.102 / 10.  2.102libswscale      8.  2.100 /  8.  2.100libswresample   5.  2.100 /  5.  2.100libpostproc    58.  2.100 / 58.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '[板绘版][修补完成]一键三连变成女孩子有多么可爱!  60fps.mp4':Metadata:major_brand     : isomminor_version   : 512compatible_brands: isomiso2avc1mp41encoder         : Lavf59.27.100description     : Packed by Bilibili XCoder v2.0.2Duration: 00:00:39.23, start: 0.000000, bitrate: 2532 kb/sStream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x960, 2334 kb/s, 60 fps, 60 tbr, 16k tbn (default)Metadata:handler_name    : Bento4 Video Handlervendor_id       : [0][0][0][0]Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 186 kb/s (default)Metadata:handler_name    : Bento4 Sound Handlervendor_id       : [0][0][0][0]
At least one output file must be specified

你提供的 FFmpeg 输出信息包含了关于输入文件的详细音视频信息。下面逐条分析这些信息的含义:

输入文件信息
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '[板绘版][修补完成]一键三连变成女孩子有多么可爱!  60fps.mp4':
  • Input #0:输入文件的编号。FFmpeg 可以处理多个输入文件,这里表示第一个输入文件。
  • mov,mp4,m4a,3gp,3g2,mj2:表示文件的容器格式支持列表。这个文件是 MP4 容器格式,它也可能是 MOV、M4A、3GP、3G2 或 MJ2 格式。
  • from '[板绘版][修补完成]一键三连变成女孩子有多么可爱! 60fps.mp4':输入文件的路径和文件名。
文件元数据
  Metadata:major_brand     : isomminor_version   : 512compatible_brands: isomiso2avc1mp41encoder         : Lavf59.27.100description     : Packed by Bilibili XCoder v2.0.2
  • major_brand:文件的主要品牌,表示文件使用的主要格式或标准。isom 表示这个文件是符合 ISO 基本媒体文件格式标准的。
  • minor_version:文件的次要版本号。这里是 512
  • compatible_brands:文件兼容的品牌,表示文件可以与其他品牌兼容播放或处理。这里包括 isomiso2avc1(表示 H.264 视频)和 mp41
  • encoder:用于编码这个文件的 FFmpeg 版本。这里是 Lavf59.27.100,表示使用的是 FFmpeg 的 Lavf(Libavformat)库。
  • description:文件的描述信息,这里说明文件是通过 Bilibili XCoder v2.0.2 工具处理的。
视频流信息
  Duration: 00:00:39.23, start: 0.000000, bitrate: 2532 kb/s
  • Duration:视频的时长,这里是 39.23 秒。
  • start:视频流的起始时间,通常为 0。
  • bitrate:视频流的比特率,这里是 2532 kb/s,表示每秒传输的数据量。
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x960, 2334 kb/s, 60 fps, 60 tbr, 16k tbn (default)
  • Stream #0:0:视频流的编号。#0 表示第一个输入文件,:0 表示第一个流。
  • [0x1](und):流的 ID 和语言。[0x1] 是流的标识符,(und) 表示语言未定义。
  • Video: h264 (High) (avc1 / 0x31637661):视频编解码器和类型。这里使用的是 H.264 编码(High Profile),avc1 是 H.264 的 FourCC 代码。
  • yuv420p(progressive):视频的像素格式和扫描方式。yuv420p 表示 YUV 4:2:0 像素格式,progressive 表示逐行扫描。
  • 1920x960:视频分辨率,即宽度 1920 像素,高度 960 像素。
  • 2334 kb/s:视频流的比特率。
  • 60 fps:视频的帧率,即每秒 60 帧。
  • 60 tbr:视频流的时间基准,tbr 表示时间基准帧率。
  • 16k tbn:时间基准的分母,tbn 表示时间基准。
音频流信息
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 186 kb/s (default)
  • Stream #0:1:音频流的编号。#0 表示第一个输入文件,:1 表示第二个流。
  • [0x2](und):流的 ID 和语言。[0x2] 是流的标识符,(und) 表示语言未定义。
  • Audio: aac (LC) (mp4a / 0x6134706D):音频编解码器和类型。这里使用的是 AAC 编码(Low Complexity),mp4a 是 AAC 的 FourCC 代码。
  • 48000 Hz:音频的采样率,即每秒 48000 个样本。
  • stereo:音频的声道数,这里是立体声。
  • fltp:音频的样本格式,fltp 表示浮点样本。
  • 186 kb/s:音频流的比特率。
  • (default):标记该音频流为默认流。

使用ffprobe获取更详细的音视频信息

我们可以使用下面这个命令获取更详细音视频的信息:

ffprobe -i "[板绘版][修补完成]一键三连变成女孩子有多么可爱!  60fps.mp4"

它的输出如下:

ffprobe version 2024-07-15-git-350146a1ea-full_build-www.gyan.dev Copyright (c) 2007-2024 the FFmpeg developersbuilt with gcc 13.2.0 (Rev5, Built by MSYS2 project)configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libopenjpeg --enable-libquirc --enable-libuavs3d --enable-libxevd --enable-libzvbi --enable-libqrencode --enable-librav1e --enable-libsvtav1 --enable-libvvenc --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxeve --enable-libxvid --enable-libaom --enable-libjxl --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprintlibavutil      59. 28.100 / 59. 28.100libavcodec     61. 10.100 / 61. 10.100libavformat    61.  5.101 / 61.  5.101libavdevice    61.  2.100 / 61.  2.100libavfilter    10.  2.102 / 10.  2.102libswscale      8.  2.100 /  8.  2.100libswresample   5.  2.100 /  5.  2.100libpostproc    58.  2.100 / 58.  2.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '[板绘版][修补完成]一键三连变成女孩子有多么可爱!  60fps.mp4':Metadata:major_brand     : isomminor_version   : 512compatible_brands: isomiso2avc1mp41encoder         : Lavf59.27.100description     : Packed by Bilibili XCoder v2.0.2Duration: 00:00:39.23, start: 0.000000, bitrate: 2532 kb/sStream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x960, 2334 kb/s, 60 fps, 60 tbr, 16k tbn (default)Metadata:handler_name    : Bento4 Video Handlervendor_id       : [0][0][0][0]Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 186 kb/s (default)Metadata:handler_name    : Bento4 Sound Handlervendor_id       : [0][0][0][0]

下面是对你提供的 FFprobe 输出信息的逐条分析和介绍:

输入文件信息

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '[板绘版][修补完成]一键三连变成女孩子有多么可爱!  60fps.mp4':
  • Input #0:表示这是第一个输入文件(编号为 0)。FFprobe 允许分析多个输入文件,这里只涉及一个。
  • mov,mp4,m4a,3gp,3g2,mj2:这是输入文件支持的格式类型。这个文件是 MP4 格式,但也兼容其他格式如 MOV、M4A、3GP、3G2 和 MJ2。
  • from '[板绘版][修补完成]一键三连变成女孩子有多么可爱! 60fps.mp4':输入文件的名称和路径。

文件元数据

  Metadata:major_brand     : isomminor_version   : 512compatible_brands: isomiso2avc1mp41encoder         : Lavf59.27.100description     : Packed by Bilibili XCoder v2.0.2
  • major_brand:表示文件的主要品牌,isom 表示符合 ISO 基本媒体文件标准。
  • minor_version:文件的次要版本号,512
  • compatible_brands:兼容的品牌和格式,表示这个文件兼容 isomiso2avc1(H.264 视频编码)和 mp41
  • encoder:文件编码使用的库和版本,这里是 Lavf59.27.100(FFmpeg 的 Lavf 库)。
  • description:文件的描述信息,说明这个文件是通过 Bilibili XCoder v2.0.2 工具处理的。

视频流信息

  Duration: 00:00:39.23, start: 0.000000, bitrate: 2532 kb/s
  • Duration:视频的时长,为 39.23 秒。
  • start:视频流的起始时间,通常为 0。
  • bitrate:视频流的比特率,为 2532 kb/s,表示每秒传输的数据量。
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 1920x960, 2334 kb/s, 60 fps, 60 tbr, 16k tbn (default)Metadata:handler_name    : Bento4 Video Handlervendor_id       : [0][0][0][0]
  • Stream #0:0:视频流的编号。#0 表示第一个输入文件,:0 表示第一个流。
  • [0x1](und):流的 ID 和语言。[0x1] 是流的标识符,(und) 表示语言未定义。
  • Video: h264 (High) (avc1 / 0x31637661):视频编解码器和类型。这里使用的是 H.264 编码(High Profile),avc1 是 H.264 的 FourCC 代码。
  • yuv420p(progressive):视频的像素格式和扫描方式。yuv420p 表示 YUV 4:2:0 像素格式,progressive 表示逐行扫描。
  • 1920x960:视频分辨率,即宽度 1920 像素,高度 960 像素。
  • 2334 kb/s:视频流的比特率。
  • 60 fps:视频的帧率,即每秒 60 帧。
  • 60 tbr:视频流的时间基准帧率(tbr)。
  • 16k tbn:时间基准的分母(tbn)。

音频流信息

  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 186 kb/s (default)Metadata:handler_name    : Bento4 Sound Handlervendor_id       : [0][0][0][0]
  • Stream #0:1:音频流的编号。#0 表示第一个输入文件,:1 表示第二个流。
  • [0x2](und):流的 ID 和语言。[0x2] 是流的标识符,(und) 表示语言未定义。
  • Audio: aac (LC) (mp4a / 0x6134706D):音频编解码器和类型。这里使用的是 AAC 编码(Low Complexity),mp4a 是 AAC 的 FourCC 代码。
  • 48000 Hz:音频的采样率,即每秒 48000 个样本。
  • stereo:音频的声道数,这里是立体声。
  • fltp

:音频的样本格式,fltp 表示浮点样本。

  • 186 kb/s:音频流的比特率。
  • (default):标记该音频流为默认流。

总结

获取音视频信息是多媒体处理中的重要一步,尤其是在调试和优化多媒体文件时。FFmpeg 的 ffprobe 工具提供了一个强大且详细的接口,用于分析和提取文件的各种参数。掌握如何使用这些工具,可以帮助用户更高效地处理和管理多媒体文件,确保在编码、转换和编辑过程中获得最佳效果。无论是处理专业级的视频项目,还是进行简单的文件检查,了解如何获取和解读这些信息都是至关重要的技能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/50353.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后端面试题日常练-day11 【Java基础】

题目 希望这些选择题能够帮助您进行后端面试的准备,答案在文末 Java中的String和StringBuffer/StringBuilder有何区别? a) String是不可变的,StringBuffer/StringBuilder是可变的 b) String是线程安全的,StringBuffer/StringBuil…

springboot爱宠屋宠物商店管理系统-计算机毕业设计源码52726

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…

【机器学习】正规方程的简单介绍以及如何使用Scikit-Learn实现基于正规方程的闭式解线性回归

引言 Scikit-learn 是一个开源的机器学习库,它支持 Python 编程语言。它提供了多种机器学习算法的实现,并用于数据挖掘和数据分析 文章目录 引言一、正规方程的定义二、正规方程的原理三、使用 Scikit-Learn 实现基于正规方程的闭式解线性回归3.1 工具3.…

实验15.多线程调度

简介 实验.多线程调度 内核线程 1.在时钟中断函数中处理中,减少当前线程pcb的tick,tick为0则启动调度2.调度,把当前线程pcb放入就绪对立队尾,把就绪线程队首拿出来执行主要代码 引导 省略内核 list.h #ifndef __LIB_KERNEL_…

Nginx缓存配置实现CDN加速

Nginx缓存配置实现CDN加速 1. 前言2. 配置介绍2.1 proxy_cache_path2.2 proxy_cache2.3 proxy_cache_key2.4 proxy_cache_lock2.5 proxy_cache_lock_timeout2.6 proxy_cache_lock_age2.7 proxy_cache_min_uses2.8 proxy_cache_purge2.9 proxy_cache_valid 3. 强制分片4. 配置示…

【2024最新】 服务器安装Ubuntu20.04 (安装教程、常用命令、故障排查)持续更新中.....

安装教程(系统、NVIDIA驱动、CUDA、CUDNN、Pytorch、Timeshift、ToDesk、花生壳) 制作U盘启动盘,并安装系统 在MSDN i tell you下载Ubuntu20.04 Desktop 版本,并使用Rufus制作UEFI启动盘,参考UEFI安装Ubuntu使用GPTU…

mysql 的MHA

mysql 的MHA 什么是MHA 高可用模式下的故障切换,基于主从复制。 单点故障和主从复制不能切换的问题。 至少需要3台。 故障切换过程0-30秒。 vip地址,根据vip地址所在的主机,确定主备。 主 vip 备 vip 主和备不是优先确定的&#xff…

文件内容查找-Windows Linux

findstr /s /i /m /c:^huggingface.co^ *.js C盘的js文件内容包含huggingface.co 的文件名 grep "keyword" -r filename

InternLM Linux 基础知识

完成SSH连接与端口映射并运行hello_world.py 创建并运行test.sh文件 使用 VSCODE 远程连接开发机并创建一个conda环境

“pandas”的坑

参考:百度安全验证 本文基于python第三方数据分析库pandas,分享这几天所遇到的3个爬坑的案例,希望对也在爬坑的同学们尽一份绵薄之力,如有错误或者写得不好的地方,烦请指正,谢谢。 01df中startswith的坑 …

led灯什么牌子的质量好?led灯护眼效果好的五款爆品分享

大家在选择led灯的时候,最关心的就是“led灯什么牌子的质量好?”市面上商家推出来的led灯品牌众多,型号以及功能也是令人眼花缭乱的,既然如此,那我们应该如何买到质量过关又好用的led灯呢?接下来我将为大家…

敏感信息泄露wp

1.右键查看网页源代码 2.前台JS绕过,ctrlU绕过JS查看源码 3.开发者工具,网络,查看协议 4.后台地址在robots,拼接目录/robots.txt 5.用dirsearch扫描,看到index.phps,phps中有源码,拼接目录,下载index.phps …

网页封装app:如何将网站转换为移动应用程序?(网页封装app)

随着移动互联网的普及,越来越多的企业开始关注移动应用程序的开发。但是,对于一些小型企业或个人,开发一款移动应用程序可能需要投入大量的时间和金钱。这时,网页封装app就成了一个不错的选择。 app在线封装www,ppzhu.net 什么是…

【AI人工智能】文心智能体,00后疯感工牌生成器,低代码工作流的简单应用以及图片快速响应解决方案,干货满满,不容错过哦

背景 文心智能体平台,开启新一轮活动,超级创造营持续百日活动。 在AI 浪潮席卷的今天,如雨后春笋般丛生的 AI 应用,昭告着时代风口显然已随之到来。 如何能把握住时代红利,占据风口,甚至打造新风向&#x…

探索 Kubernetes 持久化存储之 Longhorn 初窥门径

作者:运维有术星主 在 Kubernetes 生态系统中,持久化存储扮演着至关重要的角色,它是支撑业务应用稳定运行的基石。对于那些选择自建 Kubernetes 集群的运维架构师而言,选择合适的后端持久化存储解决方案是一项至关重要的选型决策。…

React Native 开发项目初体验

引言 React Native 是 Facebook 推出的一款用于构建原生移动应用的框架,它允许开发者使用 JavaScript 和 React 来编写应用,同时可以访问设备的原生功能。本文将带你体验如何从零开始搭建一个 React Native 项目,并实现一些基本功能。 1. 环…

会员购项目面试题解析:高效数据抓取与异常处理

会员购项目 亮点 日志记录信息协程异步抓取数据,大大提高抓取速度捕获异常,并添加重试机制 源码 import logging import timeimport requests import asyncio import aiohttp from aiohttp import ContentTypeError import csv# 配置日志 logging.ba…

因为媳妇的一句话,我做了一个AI画图软件

因为媳妇的一句话,我做了一个AI画图软件 T恤的配图 前些天媳妇参加了一个创业比赛,其中一个比赛任务是参赛成员需要穿主题队服,队服的图案完全需要自己设计,需要独一无二还得漂亮。 问我:“能不能用AI做一张图&#…

Python酷库之旅-第三方库Pandas(052)

目录 一、用法精讲 191、pandas.Series.drop方法 191-1、语法 191-2、参数 191-3、功能 191-4、返回值 191-5、说明 191-6、用法 191-6-1、数据准备 191-6-2、代码示例 191-6-3、结果输出 192、pandas.Series.droplevel方法 192-1、语法 192-2、参数 192-3、功能…

C# 介绍

文章目录 一. 一个简单的helloworld二. 程序结构三. 类型和变量四. 表达式1. f(x)2. []3. typeof4. default5. new6. checked和unchecked7. sizeof8. 移位9. is和as10. null合并 五. 语句六. 类和对象1. 可访问性2. 类型参数3. 基类和派生类4. 字段5. 方法6. 参数7. 扩展方法&a…