WebCodecsãšã³ã³ãŒããŒãããã¡ã€ã«ãšããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°èšå®ã®è€éããæ¢ããŸãã倿§ãªãã©ãããã©ãŒã ã§ããã©ãŒãã³ã¹ãå質ãäºææ§ãæé©åãããããªãšã³ã³ãŒãã£ã³ã°ãå®çŸããŸãããã
WebCodecsãšã³ã³ãŒããŒãããã¡ã€ã«ïŒããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°èšå®ã®æ·±æã
WebCodecsã¯ããã©ãŠã¶ããµããŒããããããªããã³ãªãŒãã£ãªã³ãŒããã¯ã«çŽæ¥ã¢ã¯ã»ã¹ã§ãã匷åãªJavaScript APIã§ããããã«ãããéçºè ã¯Flashã®ãããªå€ãæè¡ã®å¶éãåé¿ããæŽç·Žãããã¡ãã£ã¢ã¢ããªã±ãŒã·ã§ã³ããã©ãŠã¶ã§çŽæ¥æ§ç¯ã§ããŸããWebCodecsã广çã«äœ¿çšããäžã§æãéèŠãªåŽé¢ã®äžã€ã¯ãç¹ã«ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°æ©èœã掻çšããå Žåããšã³ã³ãŒããŒãããã¡ã€ã«ãçè§£ããèšå®ããããšã§ãã
ãšã³ã³ãŒããŒãããã¡ã€ã«ãšã¯ïŒ
ãšã³ã³ãŒããŒãããã¡ã€ã«ã¯ããããªãŸãã¯ãªãŒãã£ãªã¹ããªãŒã ãã©ã®ããã«ãšã³ã³ãŒããããããå®çŸ©ããèšå®ãã©ã¡ãŒã¿ã®ã»ããã§ãããããã®ãã©ã¡ãŒã¿ã¯ããšã³ã³ãŒãããã»ã¹ã®ããŸããŸãªåŽé¢ãå¶åŸ¡ããŸããäŸãã°ã以äžã®ãããªãã®ããããŸãã
- ã³ãŒããã¯: 䜿çšããç¹å®ã®ã³ãŒããã¯ïŒäŸïŒAV1ãH.264ãVP9ïŒã
- ãããã¬ãŒã: ãšã³ã³ãŒããããã¹ããªãŒã ã®ããŒã¿ã¬ãŒãïŒäŸïŒ2 MbpsïŒã
- è§£å床: ãããªãã¬ãŒã ã®å¹ ãšé«ãïŒäŸïŒ1920x1080ïŒã
- ãã¬ãŒã ã¬ãŒã: 1ç§ãããã®ãã¬ãŒã æ°ïŒäŸïŒ30 fpsïŒã
- å質: ãšã³ã³ãŒããããã¹ããªãŒã ã®èŠèŠçãªå質ïŒäŸïŒåºå®éååãã©ã¡ãŒã¿ïŒCQPïŒãå¯å€ãããã¬ãŒãïŒVBRïŒïŒã
- ãããã¡ã€ã«ãšã¬ãã«: ç¹å®ã®ã³ãŒããã¯å ã§ã®å¶çŽã§ãè€éããšãµããŒããããæ©èœãå®çŸ©ããŸãã
ã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠããããªãšã³ã³ãŒãã£ã³ã°ã®èŠä»¶ã¯ç°ãªããŸããäŸãã°ããããªäŒè°ã¢ããªã±ãŒã·ã§ã³ã¯é«å質ãããäœé å»¶ãåªå ãããããããŸãããããããªã¹ããªãŒãã³ã°ãµãŒãã¹ã¯äœé å»¶ãããé«å質ãåªå ããã§ãããããšã³ã³ãŒããŒãããã¡ã€ã«ã䜿çšãããšãéçºè ã¯ã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®ããŒãºã«åãããŠãšã³ã³ãŒãããã»ã¹ã調æŽã§ããŸãã
ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã° vs. ãœãããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°
ãããªãšã³ã³ãŒãã£ã³ã°ã¯2ã€ã®æ¹æ³ã§å®è¡ã§ããŸãã
- ãœãããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°: ãšã³ã³ãŒãåŠçã¯CPUã«ãã£ãŠå®è¡ãããŸããããã¯ç¹å®ã®ããŒããŠã§ã¢æ©èœã«äŸåããªããããããæè»ãªã¢ãããŒãã§ããããããç¹ã«é«è§£å床ãé«ãã¬ãŒã ã¬ãŒãã®ãããªã§ã¯ãCPUã«å€§ããªè² è·ããããå¯èœæ§ããããŸãã
- ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°: ãšã³ã³ãŒãåŠçã¯ãGPUãå°çšã®ãããªãšã³ã³ãŒãã£ã³ã°ããããªã©ã®å°çšããŒããŠã§ã¢ã«ãªãããŒããããŸããããã«ãããCPU䜿çšçãšæ¶è²»é»åãå€§å¹ ã«åæžã§ããããããœãããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãããã¯ããã«å¹ççã§ããããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã¯ããããªäŒè°ãã©ã€ãã¹ããªãŒãã³ã°ãªã©ã®ãªã¢ã«ã¿ã€ã ãããªã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠäžå¯æ¬ ãªå Žåãå€ãã§ãã
WebCodecsã§ã¯ãããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãšãœãããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã®ã©ã¡ãã䜿çšããããéžæã§ããŸãããã ããããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãå©çšã§ãããã©ããã¯ããã©ãŠã¶ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãããã³ããŒããŠã§ã¢èªäœã«äŸåããŸãã
ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã®å©ç¹
ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã«ã¯ãããã€ãã®å€§ããªå©ç¹ããããŸãã
- CPU䜿çšçã®åæž: ãšã³ã³ãŒãåŠçãå°çšããŒããŠã§ã¢ã«ãªãããŒãããããšã§ãCPUã¯ä»ã®ã¿ã¹ã¯ãå®è¡ããããã«è§£æŸãããŸããããã¯ãæºåž¯é»è©±ãã©ãããããã®ãããªãªãœãŒã¹ã«å¶çŽã®ããããã€ã¹ã«ãšã£ãŠç¹ã«éèŠã§ãã
- ããã©ãŒãã³ã¹ã®åäž: ããŒããŠã§ã¢ãšã³ã³ãŒããŒã¯ãç¹ã«é«è§£å床ãããªã«ãããŠãéåžžãœãããŠã§ã¢ãšã³ã³ãŒããŒãããã¯ããã«é«éã§ããããã«ãããããã¹ã ãŒãºãªãããªåçãšé«éãªãšã³ã³ãŒãæéãå®çŸããŸãã
- äœæ¶è²»é»å: ããŒããŠã§ã¢ãšã³ã³ãŒããŒã¯äžè¬çã«ãœãããŠã§ã¢ãšã³ã³ãŒããŒãããé»åå¹çãè¯ãã§ããããã«ãããã¢ãã€ã«ããã€ã¹ã®ããããªãŒå¯¿åœãå»¶ã°ãããšãã§ããŸãã
- ãªã¢ã«ã¿ã€ã æ©èœ: ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã«ããããªã¢ã«ã¿ã€ã ãããªã¢ããªã±ãŒã·ã§ã³ïŒãããªäŒè°ãã©ã€ãã¹ããªãŒãã³ã°ãªã©ïŒãã¯ããã«å®çŸå¯èœã«ãªããŸããé å»¶ã®åæžãšããã©ãŒãã³ã¹ã®åäžã¯ããããã®ãŠãŒã¹ã±ãŒã¹ã«ãšã£ãŠéåžžã«éèŠã§ãã
WebCodecsã«ããããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã®èšå®
WebCodecsã§ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãèšå®ããã«ã¯ãVideoEncoderã€ã³ã¹ã¿ã³ã¹ãäœæããéã«é©åãªãšã³ã³ãŒããŒãããã¡ã€ã«ãæå®ããå¿
èŠããããŸããå
·äœçãªãããã¡ã€ã«ãªãã·ã§ã³ã¯ã䜿çšããã³ãŒããã¯ã«ãã£ãŠç°ãªããŸããæãäžè¬çãªã³ãŒããã¯ã®äŸãèŠãŠã¿ãŸãããã
H.264
H.264ã¯ãå質ãšå§çž®ã®ãã©ã³ã¹ãåãããåºããµããŒããããŠãããããªã³ãŒããã¯ã§ããH.264ã®ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãèšå®ããã«ã¯ã以äžã®ãªãã·ã§ã³ã䜿çšã§ããŸãã
const encoderConfig = {
codec: 'avc1.42E01E', // Baseline profile, Level 3.0
width: 1280,
height: 720,
framerate: 30,
bitrate: 2000000, // 2 Mbps
hardwareAcceleration: 'prefer-hardware', // 'prefer-hardware' or 'no-preference'
};
const encoder = new VideoEncoder(encoderConfig);
説æ:
- codec:
codecæååã¯ãH.264ã³ãŒããã¯ãšãã®ãããã¡ã€ã«ããã³ã¬ãã«ãæå®ããŸãããavc1ãã¯H.264ã瀺ããã42E01Eãã¯ããŒã¹ã©ã€ã³ãããã¡ã€ã«ãšã¬ãã«3.0ãå®çŸ©ããŸããä»ã®ãããã¡ã€ã«ã«ã¯ãã¡ã€ã³ïŒ4DïŒããã€ïŒ64ïŒããããŸããã¬ãã«ã¯æå€§ãããã¬ãŒããšè§£å床ãèŠå®ããŸãã - width & height: ãããªã®è§£å床ããã¯ã»ã«åäœã§æå®ããŸãã
- framerate: 1ç§ãããã®ãã¬ãŒã æ°ã§ãã
- bitrate: ã¿ãŒã²ãããããã¬ãŒããããã/ç§ã§æå®ããŸãã
- hardwareAcceleration: ãã®éèŠãªãã©ã¡ãŒã¿ã¯ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãå¶åŸ¡ããŸããããã
'prefer-hardware'ã«èšå®ãããšããã©ãŠã¶ã¯å©çšå¯èœãªå Žåã«ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãåªå ããããã«æç€ºãããŸããããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãå©çšã§ããªãå Žåããã©ãŠã¶ã¯ãœãããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã«ãã©ãŒã«ããã¯ããŸãã'no-preference'ã«èšå®ãããšããã©ãŠã¶ãéžæã§ããŸããrequire-hardwareãªãã·ã§ã³ã¯ãããŸããããã©ãŠã¶ã¯åžžã«ããœãããŠã§ã¢ã«ãã©ãŒã«ããã¯ãããããšã³ã³ãŒããŒãå šãåæåããªãããéžæã§ããŸãã
ãããã¡ã€ã«ãšã¬ãã«ã«é¢ããèæ ®äºé :
- ããŒã¹ã©ã€ã³ãããã¡ã€ã«: ããã€ã¹éã§æãåºãäºææ§ãæäŸããŸãããå§çž®å¹çã¯äœãå ŽåããããŸããå€ãããã€ã¹ãäºææ§ãæåªå ãããç¶æ³ã«æé©ã§ãã
- ã¡ã€ã³ãããã¡ã€ã«: äºææ§ãšå§çž®å¹çã®è¯ã劥åç¹ã§ãã
- ãã€ãããã¡ã€ã«: æé«ã®å§çž®å¹çãæäŸããŸããããã¹ãŠã®ããã€ã¹ã§ãµããŒããããŠãããšã¯éããŸããã
- ã¬ãã«: ãããã¬ãŒããè§£å床ããã®ä»ã®ãã©ã¡ãŒã¿ãå¶éããŸããã¿ãŒã²ããããã€ã¹ã®èœåã«åºã¥ããŠé©åãªã¬ãã«ãéžæããŠãã ãããäŸãã°ãã¬ãã«3.1ã¯æå€§720p30ããµããŒãããã¬ãã«4.0ã¯æå€§1080p30ããµããŒãããŸãã
VP9
VP9ã¯ãGoogleã«ãã£ãŠéçºããããã€ã€ãªãã£ããªãŒã®ãããªã³ãŒããã¯ã§ããH.264ãããåªããå§çž®å¹çãæäŸããŸããããµããŒãã®åºãã§ã¯å£ãå ŽåããããŸããããŒããŠã§ã¢ã«ããVP9ãšã³ã³ãŒãã£ã³ã°ã¯ãŸããŸãäžè¬çã«ãªã£ãŠããŸãã以äžã®èšå®ãªãã·ã§ã³ã¯ãWebCodecsã§ãããèšå®ããæ¹æ³ã瀺ããŠããŸãã
const encoderConfig = {
codec: 'vp09.00.10.08', // VP9 profile 0, level 1.0, bit depth 8
width: 1280,
height: 720,
framerate: 30,
bitrate: 2000000, // 2 Mbps
hardwareAcceleration: 'prefer-hardware',
};
const encoder = new VideoEncoder(encoderConfig);
説æ:
- codec:
codecæååã¯ãVP9ã³ãŒããã¯ãšãã®ãããã¡ã€ã«ããã³ã¬ãã«ãæå®ããŸããVP9ãããã¡ã€ã«ã¯H.264ãããã·ã³ãã«ã§ãã'vp09.00.10.08'ã¯VP9ããããã¡ã€ã«0ïŒæãäžè¬çïŒãã¬ãã«1.0ãããã³8ãããã®è²æ·±åºŠãæå®ããŸãã - ãã®ä»ã®ãã©ã¡ãŒã¿ïŒ
widthãheightãframerateãbitrateãhardwareAccelerationïŒã¯H.264ãšåãã§ãã
AV1
AV1ã¯ãVP9ãããããã«åªããå§çž®å¹çãæäŸããæ¬¡äžä»£ã®ãã€ã€ãªãã£ããªãŒãããªã³ãŒããã¯ã§ãããµããŒãã¯åºããã€ã€ãããŸãããããŒããŠã§ã¢AV1ãšã³ã³ãŒããŒã¯ãŸã æ¯èŒçæ°ããã§ãã以äžã«ãã®èšå®æ¹æ³ã瀺ããŸãã
const encoderConfig = {
codec: 'av01.0.00M.08', // AV1 Main Profile, Level 2.0, 8-bit color depth
width: 1280,
height: 720,
framerate: 30,
bitrate: 2000000, // 2 Mbps
hardwareAcceleration: 'prefer-hardware',
};
const encoder = new VideoEncoder(encoderConfig);
説æ:
- codec:
codecæååã¯ãAV1ã³ãŒããã¯ããããã¡ã€ã«ãããã³ã¬ãã«ãæå®ããŸãã'av01.0.00M.08'ã¯AV1ãã¡ã€ã³ãããã¡ã€ã«ïŒ0ïŒãã¬ãã«2.0ãããã³8ãããã®è²æ·±åºŠãæå®ããŸããä»ã®äžè¬çãªãããã¡ã€ã«ã«ã¯ããã€ãšãããã§ãã·ã§ãã«ããããŸãã - ãã®ä»ã®ãã©ã¡ãŒã¿ã¯ä»ã®äŸãšåãã§ãã
ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãµããŒãã®æ€åº
æ®å¿µãªãããWebCodecsã¯ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã䜿çšãããŠãããã©ãããæç¢ºã«å€æããçŽæ¥çãªæ¹æ³ãæäŸããŠããŸããããããããšã³ã³ãŒãäžã®CPU䜿çšçãæž¬å®ããããšã§æšæž¬ããããšãã§ããŸããhardwareAcceleration: 'prefer-hardware'ã䜿çšããå Žåã«ãæå®ããªãå ŽåïŒãœãããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãèš±å¯ïŒãšæ¯èŒããŠCPU䜿çšçãèããäœãå ŽåãããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã䜿çšãããŠããå¯èœæ§ãé«ãã§ãã
ããäžã€ã®éæ¥çãªæ¹æ³ã¯ãVideoFrameã®ã¿ã€ã ã¹ã¿ã³ãã確èªããããšã§ããããŒããŠã§ã¢ãšã³ã³ãŒããŒã¯ãœãããŠã§ã¢ãšã³ã³ãŒããŒãšæ¯èŒããŠãããäžè²«ããã¿ã€ã ã¹ã¿ã³ãçæã瀺ã*å¯èœæ§*ããããŸãããããã¯ä¿èšŒãããææšã§ã¯ãããŸããã
ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã®åé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãããŸãæ©èœããªãå Žåã¯ã以äžã®ç¹ã確èªããŠãã ããã
- ãã©ãŠã¶ã®äºææ§: ã䜿ãã®ãã©ãŠã¶ãWebCodecsãšã䜿çšããŠããã³ãŒããã¯ã®ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ããµããŒãããŠããããšã確èªããŠãã ããããã©ãŠã¶ã®ãªãªãŒã¹ããŒããWebCodecsã®ããã¥ã¡ã³ãã確èªããŸãããã
- ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã : äžéšã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ã¯ãããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã®ãµããŒãã«å¶éãããå ŽåããããŸããOSã«å¿ èŠãªãã©ã€ããŒãšã³ã³ããŒãã³ããã€ã³ã¹ããŒã«ãããŠããããšã確èªããŠãã ããã
- ããŒããŠã§ã¢ã®èœå: ããã€ã¹ã«ã¯äºææ§ã®ããããŒããŠã§ã¢ãšã³ã³ãŒããŒãå¿ èŠã§ããããã€ã¹ã®ä»æ§ã確èªããããã·ã¹ãã æ å ±ããŒã«ã䜿çšããŠããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã®èœåã確èªããŠãã ããã
- ã³ãŒããã¯æåå: ãšã³ã³ãŒããŒèšå®ã®ã³ãŒããã¯æååãå確èªããŠãã ãããäžæ£ãªã³ãŒããã¯æååã¯ãããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãæå¹ã«ãªãã®ã劚ããå¯èœæ§ããããŸããWebCodecs仿§ã§å®çŸ©ãããŠããæå¹ã§ãµããŒããããŠããã³ãŒããã¯æååã®ã¿ã䜿çšããŠãã ããã
- ãã©ã€ããŒã®åé¡: å€ããŸãã¯ç Žæããã°ã©ãã£ãã¯ãã©ã€ããŒã¯ãããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãæ£ããæ©èœããªãåå ãšãªãããšããããŸããã°ã©ãã£ãã¯ãã©ã€ããŒãææ°ããŒãžã§ã³ã«æŽæ°ããŠãã ããã
- ç«¶åãããœãããŠã§ã¢: ã¹ã¯ãªãŒã³ã¬ã³ãŒããŒãä»®æ³ã«ã¡ã©ãªã©ã®äžéšã®ãœãããŠã§ã¢ã¯ãããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãšå¹²æžããããšããããŸãããããã®ã¢ããªã±ãŒã·ã§ã³ãç¡å¹ã«ããŠãåé¡ã解決ãããã©ãã詊ããŠã¿ãŠãã ããã
- ãªãœãŒã¹ã®å¶çŽ: ã·ã¹ãã ãªãœãŒã¹ïŒã¡ã¢ãªãGPUã¡ã¢ãªãªã©ïŒãäžè¶³ããŠãããšãããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãæ£ããæ©èœããªãããšããããŸããäžèŠãªã¢ããªã±ãŒã·ã§ã³ãéããŠãããäžåºŠè©ŠããŠãã ããã
- å®éš: ç°ãªããããã¡ã€ã«ãã¬ãã«ããããã¬ãŒãã詊ããŠããããããããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãæå¹ã«ããã確èªããŠãã ãããç¹å®ã®çµã¿åãããããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãããªã¬ãŒããäžæ¹ã§ãä»ã®çµã¿åããã¯ããã§ãªãå ŽåããããŸãã
- ãããã°ããŒã«: ãã©ãŠã¶ã®éçºè ããŒã«ïŒChrome DevToolsãªã©ïŒã䜿çšããŠãWebCodecsã®ã€ãã³ããšãšã©ãŒã¡ãã»ãŒãžãæ€æ»ããŸããããã«ãããããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã倱æããŠããçç±ã«é¢ããæããããåŸãããããšããããŸãã
å®è·µçãªäŸãšãŠãŒã¹ã±ãŒã¹
以äžã¯ãããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãåããWebCodecsã䜿çšããæ¹æ³ã®å®è·µçãªäŸã§ãã
- ãããªäŒè°: ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã䜿çšããŠCPU䜿çšçãåæžããç¹ã«ã¢ãã€ã«ããã€ã¹ã§ã®ããã©ãŒãã³ã¹ãåäžããããããªäŒè°ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŸããããã«ãããããŒãšã³ãã®ããŒããŠã§ã¢ã§ãã¹ã ãŒãºãªãããªé話ãä¿èšŒãããŸãã
- ã©ã€ãã¹ããªãŒãã³ã°: ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã䜿çšããŠãæå°éã®é å»¶ã§ãªã¢ã«ã¿ã€ã ã®ãããªã¹ããªãŒãã³ã°ãå¯èœã«ããã©ã€ãã¹ããªãŒãã³ã°ãã©ãããã©ãŒã ãäœæããŸããã€ãã³ãã®æŸéãã²ãŒã ã¹ããªãŒã ããŸãã¯ã€ã³ã¿ã©ã¯ãã£ããªã©ã€ãã»ãã·ã§ã³ã«æé©ã§ãã
- ãããªç·šé: ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã䜿çšããŠãããªã®ãšã³ã³ãŒããšãšã¯ã¹ããŒããé«éåãããŠã§ãããŒã¹ã®ãããªãšãã£ã¿ãéçºããŸããããã«ããããããªãããžã§ã¯ãã®åŠçãšã¬ã³ããªã³ã°ã«ãããæéãå€§å¹ ã«ççž®ã§ããŸãã
- ç»é¢é²ç»: ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã䜿çšããŠãæå°éã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ã§é«å質ã®ç»é¢é²ç»ããã£ããã£ããç»é¢é²ç»ã¢ããªã±ãŒã·ã§ã³ãå®è£ ããŸãããã¥ãŒããªã¢ã«ããã¢ããŸãã¯ãã¬ãŒã³ããŒã·ã§ã³ã®äœæã«åœ¹ç«ã¡ãŸãã
- ãããªãã©ã³ã¹ã³ãŒãã£ã³ã°: ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã䜿çšããŠããããªãç°ãªããã©ãŒããããè§£å床ã«è¿ éãã€å¹ççã«å€æãããããªãã©ã³ã¹ã³ãŒãã£ã³ã°ãµãŒãã¹ãæ§ç¯ããŸããããã¯ãç°ãªãããã€ã¹ããã©ãããã©ãŒã åãã«ãããªãé©å¿ãããã®ã«åœ¹ç«ã¡ãŸãã
- é²ç¯ã«ã¡ã©: é²ç¯ã«ã¡ã©ããã®ãããªã¹ããªãŒã ãå¹ççã«ãšã³ã³ãŒãããäœåž¯åå¹ ã§ã®ã¹ããªãŒãã³ã°ãšé²ç»æ åã®ä¿åãå¯èœã«ããŸãã
ã°ããŒãã«ãªèæ ®äºé
ã°ããŒãã«ãªèŠèŽè åãã«WebCodecsã¢ããªã±ãŒã·ã§ã³ãéçºããå Žåã以äžã®ç¹ãèæ ®ããããšãéèŠã§ãã
- ããã€ã¹ã®å€æ§æ§: äžçäžã§äœ¿çšãããŠããããã€ã¹ã¯ãããŒããŠã§ã¢ã®èœåãç°ãªããŸããããŸããŸãªçš®é¡ã®ããã€ã¹ã§åºããµããŒããããŠããã³ãŒããã¯ãšãããã¡ã€ã«ãåªå ããŸããããŒã¹ã©ã€ã³H.264ã¯ãæãåºç¯ãªäºææ§ã®ããã®å®å šãªéžæè¢ã§ããç¶ããŸãã
- ãããã¯ãŒã¯ç¶æ³: ãããã¯ãŒã¯ã®é床ãšä¿¡é Œæ§ã¯ãå°åã«ãã£ãŠå€§ããç°ãªãå ŽåããããŸãããŠãŒã¶ãŒã®ãããã¯ãŒã¯æ¥ç¶ã«åºã¥ããŠãããªå質ã調æŽããããã«ãã¢ãããã£ããããã¬ãŒãã¹ããªãŒãã³ã°ãå®è£ ããŸãã
- å°åã®èŠå¶: äžéšã®åœã§ã¯ããããªãšã³ã³ãŒãã£ã³ã°ãšã¹ããªãŒãã³ã°ã«é¢ããèŠå¶ãããå ŽåããããŸãããããã®èŠå¶ãèªèããã¢ããªã±ãŒã·ã§ã³ããããã«æºæ ããŠããããšã確èªããŠãã ããã
- ã¢ã¯ã»ã·ããªãã£: ã¢ããªã±ãŒã·ã§ã³ãé害ã®ãããŠãŒã¶ãŒã«ãã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããŠãã ããããããªã«åå¹ããã£ãã·ã§ã³ãé³å£°è§£èª¬ãæäŸããŸãã
- ããŒã«ã©ã€ãŒãŒã·ã§ã³: ããåºãèŠèŽè ã«ãªãŒãããããã«ãã¢ããªã±ãŒã·ã§ã³ãããŸããŸãªèšèªã«ããŒã«ã©ã€ãºããŸããããã«ã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãåå¹ãé³å£°è§£èª¬ã®ç¿»èš³ãå«ãŸããŸãã
- ã³ã¹ã: ç¹ã«ã¯ã©ãŠãããŒã¹ã®ãã©ãããã©ãŒã ã䜿çšããŠããå Žåã¯ãããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ãµãŒãã¹ã®ã³ã¹ããèæ ®ããŠãã ãããäžéšã®ã¯ã©ãŠããããã€ããŒã¯ãããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã«è¿œå æéãè«æ±ããå ŽåããããŸãã
- ã©ã€ã»ã³ã¹: 䜿çšããŠããã³ãŒããã¯ã«é¢é£ããã©ã€ã»ã³ã¹æã«æ³šæããŠãã ãããVP9ãšAV1ã¯ãã€ã€ãªãã£ããªãŒã§ãããH.264ã¯ç¹å®ã®ç¶æ³ã§ã©ã€ã»ã³ã¹æãå¿ èŠã«ãªãå ŽåããããŸãã
çµè«
WebCodecsã¯ãé«åºŠãªã¡ãã£ã¢ã¢ããªã±ãŒã·ã§ã³ããã©ãŠã¶ã§çŽæ¥æ§ç¯ããããã®åŒ·åãªæ¹æ³ãæäŸããŸãããšã³ã³ãŒããŒãããã¡ã€ã«ãç¹ã«ããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã®çè§£ãšèšå®ã¯ãããã©ãŒãã³ã¹ãå質ãäºææ§ãæé©åããããã«äžå¯æ¬ ã§ãããã®èšäºã§èª¬æããèŠçŽ ãæ éã«èæ ®ããããšã§ãWebCodecsãæŽ»çšããŠãã°ããŒãã«ãªèŠèŽè åãã«é åçãªã¡ãã£ã¢äœéšãåµåºã§ããŸãã
WebCodecsãé²åãç¶ããã«ã€ããŠãããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã®ãµããŒãã¯ããå ç¢ã§ç®¡çãããããªãã§ããããææ°ã®ãã©ãŠã¶ãªãªãŒã¹ãšWebCodecsã®ä»æ§ãåžžã«ææ¡ããæ°æ©èœãæ¹åç¹ã掻çšããŠãã ãããç¹å®ã®ãŠãŒã¹ã±ãŒã¹ãšã¿ãŒã²ãããªãŒãã£ãšã³ã¹ã«æé©ãªèšå®ãèŠã€ããããã«ãããŸããŸãªèšå®ã詊ãç¶ããŠãã ããã
WebCodecsã¯ããŠã§ãããŒã¹ã®ãããªåŠçã«å€ãã®å¯èœæ§ãéããããŒããŠã§ã¢ãšã³ã³ãŒãã£ã³ã°ã®ç¢ºããªçè§£ããã®æœåšèœåãæå€§éã«åŒãåºãéµãšãªããŸãã