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

音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息

通过FFprobe命令可以显示WAV音频文件每个packet(也称为数据包或多媒体包)的信息:

ffprobe -of json -show_packets XXX.wav

输出如下:

其中:

1.codec_type:packet类型,表示该路流是视频还是音频。
2.stream_index:packet的流索引,表示该路流是媒体文件中的第几路音视频流。
3.pts:Presentation Timestamp,即显示时间戳。
4.pts_time:以秒为单位的显示时间戳。
5.dts:DecodingTimestamp,即解码时间戳。
6.dts_time:以秒为单位的解码时间戳。
7.duration:packet占用的时间值。
8.duration_time:以秒为单位的packet占用的时间值。
9.size:packet的大小。
10.pos:packet所在的文件偏移位置。
11.flags:packet标记,表示是关键包还是非关键包。

上述FFprobe命令的输出内容实际是通过FFmpeg源码(ffprobe属于FFmpeg的一部分,所以也算是FFmpeg源码)目录下的fftools/ffprobe.c中的show_packet函数打印出来的。可以看到打印出来的实际是AVPacket中的成员变量(关于AVPacket结构体可以参考:《FFmpeg存放压缩后的音视频数据的结构体:AVPacket简介》):

static void show_packet(WriterContext *w, InputFile *ifile, AVPacket *pkt, int packet_idx)
{
//...if (s) print_str    ("codec_type", s);else   print_str_opt("codec_type", "unknown");print_int("stream_index",     pkt->stream_index);print_ts  ("pts",             pkt->pts);print_time("pts_time",        pkt->pts, &st->time_base);print_ts  ("dts",             pkt->dts);print_time("dts_time",        pkt->dts, &st->time_base);print_duration_ts("duration",        pkt->duration);print_duration_time("duration_time", pkt->duration, &st->time_base);print_val("size",             pkt->size, unit_byte_str);if (pkt->pos != -1) print_fmt    ("pos", "%"PRId64, pkt->pos);else                print_str_opt("pos", "N/A");print_fmt("flags", "%c%c%c",      pkt->flags & AV_PKT_FLAG_KEY ? 'K' : '_',pkt->flags & AV_PKT_FLAG_DISCARD ? 'D' : '_',pkt->flags & AV_PKT_FLAG_CORRUPT ? 'C' : '_');
//...
}


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

相关文章:

  • 自己开发完整项目一、登录注册功能-01
  • UML之时序图
  • 【Springboot服务实现类】用户登录逻辑梳理(未完待续)
  • 使用matplotlib可视化dataframe:让你的数据更生动有趣
  • Baumer工业相机堡盟工业相机如何通过NEOAPISDK实现根据每次触发信号移动感兴趣区域ROI(Python)
  • VMware安装Win10系统后,启动系统提示不支持的处理器,怎么解决
  • 记Spring HTTP Invoker远程调用的使用(二)基于Servlet方式,配置servlet映射url-pattern实现
  • 谷歌又出三款Gemini模型
  • NLP从零开始------文本中阶序列处理之语言模型(完整版)
  • OpenCV绘图函数(9)填充多边形函数fillPoly()的使用
  • 【软件测试】软件测试生命周期与Bug
  • Redis 数据结构与持久化机制详解及缓存异常处理策略
  • 前端开发学习Docker记录02容器操作
  • 焦虑相关症状与错误相关大脑活动的机器学习研究
  • 2024年西安交通大学软件工程专业考研915真题
  • 基于爬山法MPPT和PI的直驱式永磁同步风力发电机控制系统simulink建模与仿真
  • 「bug」nvitop ERROR: Failed to initialize curses
  • C语言——结构体
  • autoware整体架构的分析
  • 查看CPU占用率之Linux篇