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

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

cpp 复制代码
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简介》):

cpp 复制代码
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' : '_');
//...
}
相关推荐
VidDown4 小时前
从视频画面里提取文字:OCR、文字检测与结构化输出
python·网络协议·ocr·音视频·视频编解码·视频
音视频牛哥5 小时前
一帧视频的底层工程:像素格式、内存带宽、GPU 与 AI
音视频·像素格式·yuv rgb·nv12 nv21·rgb565·rtsp yuv·rtmp rgb
VidDown5 小时前
文件没问题但网页播不了:播放器接入实战与那些“环境问题
python·网络协议·音视频·视频编解码·视频
the3clipse6 小时前
视频编码技术如何赋能游戏性能优化:从硬件隔离到AI驱动的带宽革命
游戏·性能优化·音视频·视频编码·硬件加速·ai编码·自适应编码
I Am a robert girl6 小时前
打破音频生态壁垒:用 WinAirCast 把 Windows 声音塞进 HomePod
windows·音视频·跨平台开发·音频串流·airplay 2·homepod
揽秀亭长6 小时前
视频转脚本有哪些技术路线?三种常见方案对比分析
人工智能·音视频
VidDown7 小时前
从一堆脚本到能维护的系统:视频处理管道的工程化
服务器·ffmpeg·音视频·视频编解码
轻口味7 小时前
HarmonyOS 7 新特性2:音频编创——轻音台里的降噪、环绕与格式转换
华为·音视频·harmonyos·鸿蒙·音频编创
技灵AI8 小时前
Seedance 长剧生产实战:用首尾帧接戏解决角色崩脸与场景漂移(含 return_last_frame 用法与提示词模板)
人工智能·prompt·aigc·音视频
2601_9623811310 小时前
做城市历史视频时,AI 自动生成变迁动效的实现路径拆解
人工智能·音视频