当我为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;
答案 0 :(得分:0)
消息由libavcodec / vc1dec.c在函数vc1_decode_init()中打印。该函数初始化VC1 / WMV3解码器。此时,它解析了WMV3标头,并认为该文件有一个存储在extradata中的序列标题;此外,高级序列标题可以在第一帧之前;最后,extradata的最后一个字节是版本号。
这种解释可能是不准确的,因为它基于评论,因为没有标点符号和大写作为e。即卡明斯诗歌。
纯粹从源代码判断,“消息意味着什么”只是标题比预期长一个字节,并且该字节的值为零。 (正如智者曾经说过的那样,调试代码,而不是注释。)