我想知道哪些字符串可以作为codec传递给VideoEncoder.isConfigSupported({ codec, width, height }),但到目前为止我还没有找到明确的答案:
vp8是一个有效的编解码字符串。由于只有铬基浏览器目前支持这一点,所以我决定查找铬源代码,并找到列出更多编解码字符串的位置:
TEST.run运行的,这种测试不是从JS层触发的,而是从在这里,在这个python文件中找到的,其中提到了更多的编解码字符串:就在上面:avc1.42001E、vp8、vp09.00.10.08。video、h264、vp8、hevc、vp9、audio、aac、opus。所有这些都非常令人沮丧,因为我有一个相当大的编解码列表,有时可以传递给网络编解码器,但我不确定这是它的完整列表。我还应该去哪儿找呢?
const maybeCodecs = ["aac","ac-3","audio","avc1","avc1, mp4a.40","avc1, mp4a.40.02","avc1, mp4a.40.2","avc1.42001E","avc1.42101E","avc1.42701E","avc1.42E01E","avc1.42E01E, mp4a.40","avc1.42E01E, mp4a.40.02","avc1.42E01E, mp4a.40.2","avc1.42F01E","avc3","avc3, mp4a.40","avc3, mp4a.40.02","avc3", "mp4a.40.2","avc3.42801E","avc3.42C01E","avc3.42E01E","avc3.42E01E, mp4a.40","avc3.42E01E, mp4a.40.05","avc3.42E01E, mp4a.40.29","avc3.42E01E, mp4a.40.5","ec-3","flac","h264","hev1.1.6.L93.B0","hev1.1.6.L93.B0,mp4a.40.5","hevc","hvc1.1.6.L93.B0","hvc1.1.6.L93.B0,mp4a.40.5","mp4a.40","mp4a.40.02","mp4a.40.2","mp4a.66","mp4a.67","mp4a.68","mp4a.69","mp4a.6B","mp4a.A5","mp4a.A6","mp4a.a5","mp4a.a6","opus","theora","video","vp09.00.10.08","vp8","vp9"];
(async () => {
if (typeof VideoEncoder === "undefined") return console.log('web codecs is not supported');
const supportedCodecs = [];
const unsupportedCodecs = [];
const codecsThatTriggerError = [];
for (const codec of maybeCodecs) {
try {
const { supported } = await VideoEncoder.isConfigSupported({ codec, width: 256, height: 256 });
if (supported) supportedCodecs.push(codec);
else unsupportedCodecs.push(codec);
} catch(e) {
codecsThatTriggerError.push(codec);
}
}
console.log({ supportedCodecs, unsupportedCodecs, codecsThatTriggerError });
})()
发布于 2022-04-15 19:01:07
为了保持一致性,WebCodecs编解码器注册表中描述的格式字符串被设计成与ISOBMFF中使用的字符串相匹配。根据编解码器的不同,字符串中可能包含了相当数量的元数据,所以当列表是有限的时,是非常大的。
以AV1为例,ISOBMFF结合指定了
av01.<profile>.<level><tier>.<bitDepth>.<monochrome>.<chromaSubsampling>.
<colorPrimaries>.<transferCharacteristics>.<matrixCoefficients>.<videoFullRangeFlag>其中大部分字段是可选的。
通常,如果可以根据编解码器注册中的定义对编解码字符串进行解析,则编解码字符串是有效的。
https://stackoverflow.com/questions/71878207
复制相似问题