对于WMV文件,avformat_find_stream_info()显示“额外数据:剩余8位,值:0”消息

时间:2013-02-27 06:02:12

标签: ffmpeg libavformat

当我为wmv文件调用avformat_find_stream_info()时,总会看到以下消息:
[wmv3 00FAEAE0]额外数据:剩余8位,值:0

之后该程序按预期工作,但无论如何我想知道该消息的含义是什么?谢谢!

文件信息(由ffmpeg -i提供):

Duration: 00:00:06.92, start: 0.000000, bitrate: 1514 kb/s
Stream #0:0(rus): Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, stereo, fltp, 128 kb/s
Stream #0:1(rus): Video: wmv3 (Main) (WMV3 / 0x33564D57), yuv420p, 720x576, 1368 kb/s, SAR 16:15 DAR 4:3, 25 tbr, 1k tbn, 1k tbc

代码:

AVFormatContext*    pFormatCtx = avformat_alloc_context();
if (avformat_open_input(&pFormatCtx, "file.wmv", NULL, NULL) < 0)
    return 0;
if (avformat_find_stream_info(pFormatCtx, NULL) < 0) // HERE WE HAVE GOT THAT MESSAGE
    return 0;

1 个答案:

答案 0 :(得分:0)

消息由libavcodec / vc1dec.c在函数vc1_decode_init()中打印。该函数初始化VC1 / WMV3解码器。此时,它解析了WMV3标头,并认为该文件有一个存储在extradata中的序列标题;此外,高级序列标题可以在第一帧之前;最后,extradata的最后一个字节是版本号。

这种解释可能是不准确的,因为它基于评论,因为没有标点符号和大写作为e。即卡明斯诗歌。

纯粹从源代码判断,“消息意味着什么”只是标题比预期长一个字节,并且该字节的值为零。 (正如智者曾经说过的那样,调试代码,而不是注释。)