我想制作一个网络应用程序,它提取 MP4 文件的每一帧,并将其另存为 PNG。设置
我正在使用VideoDecoder 。它有一个 decode
方法,该方法接收一个 EncodedVideoChunk,其中包含一个字节数组 - “视频 block ”。
我解析了this MP4 file获取“moov”-“trak”-0-“mdia”-“minf”-“stbl”。我从 stbl.stco[0]
中切出一段 MP4 文件,长度为 stbl.stsz[0]
(本例中为 80 和 42548)。字节为
[0, 0, 0, 2, 9, 16, 0, 0, 166, 42, 37, 136, 128, 67, 255, 235, ...]
我仍然看到一条错误消息:
Failed to execute 'decode' on 'VideoDecoder': A key frame is required after configure() or flush().
我做错了什么?如何找到应该提供给 VideoDecoder 的正确数据?
最佳答案
我的所有步骤都是正确的。问题是,VideoDecoder 在 configure()
期间错过了 description
参数。似乎没有它就无法解码任何 MP4 文件。
使用stbl.stsd.extraData.avcC
处的40字节序列作为描述
的值。
关于javascript - 使用 VideoDecoder 解码 MP4 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73184093/