WebCodecsããããã³ããšã³ãéçºè ã«ããå ç¢ãªãªã¢ã«ã¿ã€ã ã¡ãã£ã¢ãã€ãã©ã€ã³ã®ãã©ãŠã¶å çŽæ¥æ§ç¯ãããã«å¯èœã«ããé«åºŠãªé³å£°ã»æ ååŠçã¢ããªã±ãŒã·ã§ã³ãå®çŸããããæ¢ããŸãã
ããã³ããšã³ãWebCodecsã¹ããªãŒã åŠçïŒãªã¢ã«ã¿ã€ã ã¡ãã£ã¢ãã€ãã©ã€ã³ã®æ§ç¯
ãŠã§ãã¯é·ããã¡ãã£ã¢ãæ¶è²»ããããã®ãã©ãããã©ãŒã ã§ããããæè¿ãŸã§ãé«åºŠãªãªã¢ã«ã¿ã€ã ã¡ãã£ã¢ã¢ããªã±ãŒã·ã§ã³ããã©ãŠã¶ã§çŽæ¥äœæããããšã¯å€§ããªèª²é¡ã§ãããåŸæ¥ã®ãŠã§ãAPIã¯ããããªäŒè°ãã©ã€ãã¹ããªãŒãã³ã°ãé«åºŠãªé³å£°ã»æ åç·šéãšãã£ãã¿ã¹ã¯ã«å¿ èŠãªäœã¬ãã«ã®å¶åŸ¡ãããã©ãŒãã³ã¹ãæ¬ ããŠããããšãå€ãã£ãã®ã§ããWebCodecsã¯ãããã³ããšã³ãéçºè ã«ãã©ãŠã¶ããŒã¹ã®ã³ãŒããã¯ãžã®çŽæ¥ã¢ã¯ã»ã¹ãæäŸããããšã§ãã®ç¶æ³ãå€ãã匷åã§ããã©ãŒãã³ã¹ãé«ããã«ã¹ã¿ãã€ãºå¯èœãªãªã¢ã«ã¿ã€ã ã¡ãã£ã¢ãã€ãã©ã€ã³ãæ§ç¯ããéãéããŸãã
WebCodecsãšã¯ïŒ
WebCodecsã¯ããã©ãŠã¶å ã®ãããªããã³ãªãŒãã£ãªã³ãŒããã¯ãžã®äœã¬ãã«ã¢ã¯ã»ã¹ãå ¬éããJavaScript APIã§ããããã«ãããéçºè ã¯å€ãã®äžè¬çãªã¿ã¹ã¯ã«ãããŠãå€éšãã©ã°ã€ã³ããµãŒããŒãµã€ãã®åŠçã«é Œãããšãªãããã©ãŠã¶å ã§çŽæ¥ã¡ãã£ã¢ããŒã¿ããšã³ã³ãŒãããã³ãŒããåŠçã§ããããã«ãªããŸããããã¯ãã€ã³ã¿ã©ã¯ãã£ãã§æ²¡å ¥æã®ããã¡ãã£ã¢äœéšãåµé ããããã®å¹ åºãå¯èœæ§ãè§£ãæŸã¡ãŸãã
WebCodecsã®äž»ãªå©ç¹ïŒ
- ããã©ãŒãã³ã¹ïŒ ãã€ãã£ãã®ã³ãŒããã¯ã¢ã¯ã»ã¹ã«ãããåŸæ¥ã®ã¢ãããŒããšæ¯èŒããŠããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããŸãã
- äœé å»¶ïŒ WebCodecsã¯ããããªäŒè°ãã©ã€ãã¹ããªãŒãã³ã°ãªã©ã®ãªã¢ã«ã¿ã€ã ã¢ããªã±ãŒã·ã§ã³ã«äžå¯æ¬ ãªãäœé å»¶ã®ã¡ãã£ã¢åŠçãå¯èœã«ããŸãã
- æè»æ§ïŒ éçºè ã¯ãšã³ã³ãŒãããã³ãã³ãŒãã®ãã©ã¡ãŒã¿ã现ããå¶åŸ¡ã§ããç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã«åãããã«ã¹ã¿ãã€ãºãæé©åãå¯èœã§ãã
- ã¢ã¯ã»ã·ããªãã£ïŒ WebCodecsã¯æšæºåãããWeb APIã§ãããææ°ã®ãã©ãŠã¶éã§å¹ åºãäºææ§ãä¿èšŒããŸãã
ã³ã¢ã³ã³ããŒãã³ãã®çè§£
WebCodecsã广çã«å©çšããããã«ã¯ããã®ã³ã¢ã³ã³ããŒãã³ããçè§£ããããšãéèŠã§ãïŒ
VideoEncoder: RAWãããªãã¬ãŒã ãå§çž®åœ¢åŒïŒäŸïŒH.264, VP9, AV1ïŒã«ãšã³ã³ãŒããã圹å²ãæ ããŸããVideoDecoder: å§çž®ããããããªããŒã¿ãRAWãããªãã¬ãŒã ã«ãã³ãŒããã圹å²ãæ ããŸããAudioEncoder: RAWãªãŒãã£ãªããŒã¿ãå§çž®åœ¢åŒïŒäŸïŒOpus, AACïŒã«ãšã³ã³ãŒããã圹å²ãæ ããŸããAudioDecoder: å§çž®ããããªãŒãã£ãªããŒã¿ãRAWãªãŒãã£ãªããŒã¿ã«ãã³ãŒããã圹å²ãæ ããŸããEncodedVideoChunk: åäžã®ãšã³ã³ãŒãããããããªãã¬ãŒã ã衚ããŸããEncodedAudioChunk: åäžã®ãšã³ã³ãŒãããããªãŒãã£ãªãã¬ãŒã ã衚ããŸããVideoFrame: RAWã®éå§çž®ãããªãã¬ãŒã ã衚ããŸããAudioData: RAWã®éå§çž®ãªãŒãã£ãªããŒã¿ã衚ããŸããMediaStreamTrackProcessor:MediaStreamTrackïŒã«ã¡ã©ããã€ã¯ããïŒãååŸããRAWã®ãªãŒãã£ãªãŸãã¯ãããªããŒã¿ã«VideoFrameãŸãã¯AudioDataãªããžã§ã¯ããšããŠã¢ã¯ã»ã¹ã§ããããã«ããŸããMediaStreamTrackGenerator: åŠçããããªãŒãã£ãªãŸãã¯ãããªããŒã¿ããæ°ããMediaStreamTrackãäœæã§ããããã衚瀺ãŸãã¯ã¹ããªãŒãã³ã°ã§ããŸãã
ã·ã³ãã«ãªãªã¢ã«ã¿ã€ã ãããªãã€ãã©ã€ã³ã®æ§ç¯ïŒå®è·µäŸ
WebCodecsã®åãããªã¢ã«ã¿ã€ã ãããªãã€ãã©ã€ã³ã®ç°¡ç¥åãããäŸã§ç€ºããŸãããããã®äŸã§ã¯ããŠã§ãã«ã¡ã©ãããããªããã£ããã£ããWebCodecsã䜿çšããŠãšã³ã³ãŒãããã³ãŒããããã³ãŒãããããããªãå¥ã®canvasèŠçŽ ã«è¡šç€ºããŸããããã¯åºæ¬çãªäŸã§ãããæ¬çªç°å¢ã§äœ¿çšããã«ã¯ãšã©ãŒåŠçãããå ç¢ãªèšå®ãå¿ èŠã§ããããšã«æ³šæããŠãã ããã
1. ãŠã§ãã«ã¡ã©ããã®ãããªãã£ããã£
ãŸããgetUserMedia APIã䜿çšããŠãŠãŒã¶ãŒã®ãŠã§ãã«ã¡ã©ã«ã¢ã¯ã»ã¹ããå¿
èŠããããŸãïŒ
async function startWebcam() {
try {
const stream = await navigator.mediaDevices.getUserMedia({ video: true, audio: false });
const videoElement = document.getElementById('webcamVideo'); // Assuming you have a
2. ãšã³ã³ãŒããŒãšãã³ãŒããŒã®ã»ããã¢ãã
次ã«ãVideoEncoderãšVideoDecoderãåæåããå¿
èŠããããŸãããã®äŸã§ã¯H.264ã³ãŒããã¯ã䜿çšããŸããããã©ãŠã¶ã®ãµããŒããç¹å®ã®èŠä»¶ã«å¿ããŠãVP9ãAV1ã䜿çšããããšãã§ããŸãã
async function setupWebCodecs(stream) {
const track = stream.getVideoTracks()[0];
const trackProcessor = new MediaStreamTrackProcessor(track);
const reader = trackProcessor.readable.getReader();
const videoDecoder = new VideoDecoder({
output: frame => {
// Assuming you have a
èšå®ã«é¢ããéèŠãªæ³šæç¹ïŒ
codecæååã¯éåžžã«éèŠã§ãã䜿çšããã³ãŒããã¯ãšãããã¡ã€ã«ãæå®ããŸãããµããŒããããŠããã³ãŒããã¯ãšãããã¡ã€ã«ã®å®å šãªãªã¹ãã«ã€ããŠã¯ãWebCodecsã®ããã¥ã¡ã³ããåç §ããŠãã ãããwidthãšheightã¯ãå ¥åãããªã®å¯žæ³ãšäžèŽãããå¿ èŠããããŸããframerateãšbitrateã¯ãå質ãšåž¯åå¹ ã®äœ¿çšéãå¶åŸ¡ããããã«èª¿æŽã§ããŸãã
3. ãã¬ãŒã ã®ãšã³ã³ãŒããšãã³ãŒã
ããã§ããŠã§ãã«ã¡ã©ã®ã¹ããªãŒã ãããã¬ãŒã ãèªã¿åãããšã³ã³ãŒããããã³ãŒãããããšãã§ããŸãããã³ãŒãããããã¬ãŒã ã¯canvasèŠçŽ ã«æç»ãããŸãã
async function processFrames(reader, videoEncoder) {
try {
while (true) {
const { done, value } = await reader.read();
if (done) {
break;
}
videoEncoder.encode(value);
value.close(); //Important to release the frame
}
} catch (error) {
console.error('Error processing frames:', error);
}
}
4. å šäœããŸãšãã
æåŸã«ããããã®é¢æ°ããã¹ãŠåŒã³åºããŠãããªãã€ãã©ã€ã³ãéå§ããŸãïŒ
async function main() {
const stream = await startWebcam();
if (stream) {
const {reader, videoEncoder} = await setupWebCodecs(stream);
await processFrames(reader, videoEncoder);
}
}
main();
ããã¯ç°¡ç¥åãããäŸã§ããããšã©ãŒåŠçã远å ãããšã³ã³ãŒããŒãšãã³ãŒããŒãé©åã«èšå®ããããŸããŸãªãã©ãŠã¶ã®å®è£ ã«å¯Ÿå¿ããå¿ èŠããããŸããããããããã¯WebCodecsã䜿çšããŠãªã¢ã«ã¿ã€ã ãããªãã€ãã©ã€ã³ãäœæããåºæ¬ååã瀺ããŠããŸãã
é«åºŠãªãŠãŒã¹ã±ãŒã¹ãšã¢ããªã±ãŒã·ã§ã³
WebCodecsã¯ãå€å²ã«ãããé«åºŠãªãŠãŒã¹ã±ãŒã¹ãžã®æãéããŸãïŒ
- ãããªäŒè°ïŒ èæ¯ãŒããããã€ãºãã£ã³ã»ã«ãç»é¢å ±æãªã©ã®é«åºŠãªæ©èœãåããã«ã¹ã¿ã ãããªäŒè°ãœãªã¥ãŒã·ã§ã³ã®æ§ç¯ããšã³ã³ãŒããã©ã¡ãŒã¿ã粟å¯ã«å¶åŸ¡ã§ãããããæ±åã¢ãžã¢ãã¢ããªã«ãªã©ã®å°åã®ã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ãéãããŠãããŠãŒã¶ãŒã«ãšã£ãŠéèŠãªãäœåž¯åå¹ ç°å¢åãã®æé©åãå¯èœã«ãªããŸãã
- ã©ã€ãã¹ããªãŒãã³ã°ïŒ ã²ãŒã ãã¹ããŒãããã®ä»ã®ã€ãã³ãåãã®äœé å»¶ã©ã€ãã¹ããªãŒãã³ã°ãã©ãããã©ãŒã ã®äœæãWebCodecsã¯ã¢ãããã£ããããã¬ãŒãã¹ããªãŒãã³ã°ãå¯èœã«ããèŠèŽè ã®ãããã¯ãŒã¯ç¶æ³ã«å¿ããŠãããªå質ãåçã«èª¿æŽããŸãã
- ãããªç·šéïŒ ãªã¢ã«ã¿ã€ã ãšãã§ã¯ãããã©ã³ãžã·ã§ã³ãåæãªã©ã®é«åºŠãªæ©èœãåãããŠã§ãããŒã¹ã®ãããªç·šéããŒã«ã®éçºãããã¯ãé«äŸ¡ãªãã¹ã¯ããããœãããŠã§ã¢ã«ã¢ã¯ã»ã¹ã§ããªãå¯èœæ§ã®ããçºå±éäžåœã®ã¯ãªãšã€ã¿ãŒã«ãšã£ãŠæçã§ãã
- æ¡åŒµçŸå®ïŒARïŒãšä»®æ³çŸå®ïŒVRïŒïŒ AR/VRã¢ããªã±ãŒã·ã§ã³åãã«ã«ã¡ã©ããã®ãããªã¹ããªãŒã ãåŠçããæ²¡å ¥åã§ã€ã³ã¿ã©ã¯ãã£ããªäœéšãå¯èœã«ããŸããããã«ã¯ãçŸå®äžçã«ããžã¿ã«æ å ±ãéãåãããïŒARïŒããå šãæ°ããä»®æ³ç°å¢ãåµé ããïŒVRïŒãå«ãŸããŸãã
- æ©æ¢°åŠç¿ïŒ ç©äœæ€åºãé¡èªèãªã©ã®æ©æ¢°åŠç¿ã¢ãã«ã®ããã®ãããªããŒã¿ã®ååŠçãäŸãã°ãã»ãã¥ãªãã£ç®çã§ç£èŠæ åãåæããããèªåæåèµ·ãããµãŒãã¹ãæäŸãããããŸãã
- ã¯ã©ãŠãã²ãŒãã³ã°ïŒ äœé å»¶ã§ã¯ã©ãŠãããã²ãŒã ãã¹ããªãŒãã³ã°ããã²ãŒããŒãäœã¹ããã¯ã®ããã€ã¹ã§èŠæ±ã®å³ããã²ãŒã ããã¬ã€ã§ããããã«ããŸãã
ããã©ãŒãã³ã¹ãšã¯ãã¹ãã©ãŠã¶äºææ§ã®ããã®æé©å
WebCodecsã¯å€§ããªããã©ãŒãã³ã¹äžã®å©ç¹ãæäŸããŸãããã³ãŒããæé©åããã¯ãã¹ãã©ãŠã¶äºææ§ãèæ ®ããããšãéèŠã§ãïŒ
ããã©ãŒãã³ã¹æé©åïŒ
- é©åãªã³ãŒããã¯ã®éžæïŒ H.264ãVP9ãAV1ã¯ãå§çž®å¹çãšãšã³ã³ãŒã/ãã³ãŒãã®è€éãã®éã§ç°ãªããã¬ãŒããªããæäŸããŸããããŒãºã«æãé©ããã³ãŒããã¯ãéžæããŠãã ãããåã³ãŒããã¯ã®ãã©ãŠã¶ãµããŒããèæ ®ããŠãã ãããAV1ã¯åªããå§çž®ãæäŸããŸãããæ®éçã«ãµããŒããããŠããªãå ŽåããããŸãã
- ãšã³ã³ãŒããŒãšãã³ãŒããŒã®èšå®ïŒ ãšã³ã³ãŒããã©ã¡ãŒã¿ïŒäŸïŒãããã¬ãŒãããã¬ãŒã ã¬ãŒããå質ïŒãæ éã«èšå®ããŠãããã©ãŒãã³ã¹ãšå質ã®ãã©ã³ã¹ãåããŸãã
- WebAssembly (Wasm) ã®äœ¿çšïŒ èšç®éã®å€ãã¿ã¹ã¯ã«ã¯ãWebAssemblyã䜿çšããŠãã€ãã£ãã«è¿ãããã©ãŒãã³ã¹ãå®çŸããããšãæ€èšããŠãã ãããWebAssemblyã¯ãã«ã¹ã¿ã ã³ãŒããã¯ãç»ååŠçã¢ã«ãŽãªãºã ã®å®è£ ã«äœ¿çšã§ããŸãã
- ã¡ã¢ãªã¢ãã±ãŒã·ã§ã³ã®æå°åïŒ äžèŠãªã¡ã¢ãªã¢ãã±ãŒã·ã§ã³ãšãã¢ãã±ãŒã·ã§ã³ãé¿ããŠãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®ãªãŒããŒããããåæžããŸããå¯èœãªéããããã¡ãåå©çšããŠãã ããã
- ã¯ãŒã«ãŒã¹ã¬ããïŒ èšç®éã®å€ãã¿ã¹ã¯ãã¯ãŒã«ãŒã¹ã¬ããã«ãªãããŒãããŠãã¡ã€ã³ã¹ã¬ããã®ããããã³ã°ãé²ããå¿çæ§ã®é«ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ãç¶æããŸããããã¯ç¹ã«ãšã³ã³ãŒãããã³ãã³ãŒãæäœã§éèŠã§ãã
ã¯ãã¹ãã©ãŠã¶äºææ§ïŒ
- æ©èœæ€åºïŒ æ©èœæ€åºã䜿çšããŠãWebCodecsããã©ãŠã¶ã§ãµããŒããããŠãããã©ããã倿ããŸãã
- ã³ãŒããã¯ãµããŒãïŒ äœ¿çšããããšããåã«ãã©ã®ã³ãŒããã¯ããã©ãŠã¶ã§ãµããŒããããŠãããã確èªããŸãããã©ãŠã¶ã¯ç°ãªãã³ãŒããã¯ããããã¡ã€ã«ããµããŒãããŠããå ŽåããããŸãã
- ããªãã£ã«ïŒ å€ããã©ãŠã¶ã§WebCodecsæ©èœãæäŸããããã«ããªãã£ã«ã®äœ¿çšãæ€èšããŠãã ããããã ããããªãã£ã«ã¯ãã€ãã£ãå®è£ ãšåãã¬ãã«ã®ããã©ãŒãã³ã¹ãæäŸããªãå ŽåããããŸãã
- ãŠãŒã¶ãŒãšãŒãžã§ã³ãã¹ãããã£ã³ã°ïŒ äžè¬çã«æšå¥šãããŸãããããã©ãŠã¶åºæã®ãã°ãå¶éãåé¿ããããã«ãå Žåã«ãã£ãŠã¯ãŠãŒã¶ãŒãšãŒãžã§ã³ãã¹ãããã£ã³ã°ãå¿ èŠã«ãªãããšããããŸããæ éã«ããããŠæ§ããã«äœ¿çšããŠãã ããã
ãªã¢ã«ã¿ã€ã ã¢ããªã±ãŒã·ã§ã³ã«ãããé å»¶ãžã®å¯ŸåŠ
é å»¶ã¯ããªã¢ã«ã¿ã€ã ã¡ãã£ã¢ã¢ããªã±ãŒã·ã§ã³ã«ãããéèŠãªèŠçŽ ã§ããWebCodecsã䜿çšããéã«é å»¶ãæå°éã«æããããã®ããã€ãã®æŠç¥ã以äžã«ç€ºããŸãïŒ
- ãããã¡ãªã³ã°ã®æå°åïŒ ãšã³ã³ãŒãããã³ãã³ãŒããã€ãã©ã€ã³ã§ã®ãããã¡ãªã³ã°éãæžãããŸãããããã¡ãå°ããã»ã©é å»¶ã¯äœããªããŸããããã¬ãŒã èœã¡ã®ãªã¹ã¯ãé«ãŸãå¯èœæ§ããããŸãã
- äœé å»¶ã³ãŒããã¯ã®äœ¿çšïŒ äžéšã®ã³ãŒããã¯ã¯äœé å»¶ã¢ããªã±ãŒã·ã§ã³åãã«èšèšãããŠããŸããVP8ãç¹å®ã®äœé å»¶ãããã¡ã€ã«ãæã€H.264ãªã©ã®ã³ãŒããã¯ã®äœ¿çšãæ€èšããŠãã ããã
- ãããã¯ãŒã¯è»¢éã®æé©åïŒ WebRTCãªã©ã®å¹ççãªãããã¯ãŒã¯ãããã³ã«ã䜿çšããŠããããã¯ãŒã¯é å»¶ãæå°éã«æããŸãã
- åŠçæéã®åæžïŒ åãã¬ãŒã ã®åŠçã«è²»ããæéãæå°éã«æããããã«ã³ãŒããæé©åããŸããããã«ã¯ããšã³ã³ãŒãããã³ãŒããããã³ãã®ä»ã®ç»ååŠçæäœã®æé©åãå«ãŸããŸãã
- ãã¬ãŒã ããããã³ã°ïŒ 極端ãªå Žåã«ã¯ãäœé å»¶ãç¶æããããã«ãã¬ãŒã ãããããããããšãæ€èšããŠãã ãããããã¯ããããã¯ãŒã¯ç¶æ³ãæªãå ŽåãåŠçèœåãéãããŠããå Žåã«æå¹ãªæŠç¥ãšãªãåŸãŸãã
WebCodecsã®æªæ¥ïŒæ°ããªãã¬ã³ããšãã¯ãããžãŒ
WebCodecsã¯æ¯èŒçæ°ããAPIã§ããããã®æ©èœã¯åžžã«é²åããŠããŸããWebCodecsã«é¢é£ããæ°ããªãã¬ã³ããšãã¯ãããžãŒãããã€ã玹ä»ããŸãïŒ
- AV1ã®æ¡çšïŒ AV1ã¯ãH.264ãVP9ãšæ¯èŒããŠåªããå§çž®å¹çãæäŸããæ¬¡äžä»£ãããªã³ãŒããã¯ã§ããAV1ã®ãã©ãŠã¶ãµããŒããå¢ããã«ã€ããŠãå€ãã®WebCodecsã¢ããªã±ãŒã·ã§ã³ã§æšå¥šãããã³ãŒããã¯ãšãªãã§ãããã
- ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ïŒ ãã©ãŠã¶ã¯ãWebCodecsã®ãšã³ã³ãŒããšãã³ãŒãã«ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ããŸããŸã掻çšããŠããŸããããã«ãããããã©ãŒãã³ã¹ãããã«åäžããæ¶è²»é»åãåæžãããŸãã
- WebAssemblyãšã®çµ±åïŒ WebAssemblyã¯ãã«ã¹ã¿ã ã³ãŒããã¯ãç»ååŠçã¢ã«ãŽãªãºã ã®å®è£ ã«äœ¿çšãããŠãããWebCodecsã®æ©èœãæ¡åŒµããŠããŸãã
- æšæºåã®åãçµã¿ïŒ WebCodecs APIã¯ãWorld Wide Web Consortium (W3C) ã«ãã£ãŠç¶ç¶çã«æ¹è¯ããã³æšæºåãããŠããŸãã
- AIãæŽ»çšããã¡ãã£ã¢åŠçïŒ ã€ã³ããªãžã§ã³ããšã³ã³ãŒãã£ã³ã°ãã³ã³ãã³ãã«å¿ããã¹ã±ãŒãªã³ã°ãèªåãããªç·šéãªã©ã®ã¿ã¹ã¯ã®ããã®æ©æ¢°åŠç¿ã¢ãã«ãšã®çµ±åãäŸãã°ãç°ãªãã¢ã¹ãã¯ãæ¯ã«åãããŠãããªãèªåçã«ããªãã³ã°ããããè¶ è§£åæè¡ã䜿çšããŠãããªå質ãåäžããããããŸãã
WebCodecsãšã¢ã¯ã»ã·ããªãã£ïŒå æ¬çãªã¡ãã£ã¢äœéšã®ç¢ºä¿
WebCodecsã§ã¡ãã£ã¢ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããéã«ã¯ãé害ãæã€ãŠãŒã¶ãŒã®ããã®ã¢ã¯ã»ã·ããªãã£ãèæ ®ããããšãäžå¯æ¬ ã§ãïŒ
- åå¹ãšãã£ãã·ã§ã³ïŒ ãã¹ãŠã®ãããªã³ã³ãã³ãã«åå¹ãšãã£ãã·ã§ã³ãæäŸããŸããWebCodecsã¯ãé³å£°åæã«åºã¥ããŠåçã«åå¹ãçæããããã«äœ¿çšã§ããŸãã
- é³å£°è§£èª¬ïŒ èŠèŠé害ã®ãããŠãŒã¶ãŒåãã«é³å£°è§£èª¬ãæäŸããŸããé³å£°è§£èª¬ã¯ããããªã®èŠèŠçèŠçŽ ããã¬ãŒã·ã§ã³ããŸãã
- ããŒããŒãããã²ãŒã·ã§ã³ïŒ ãã¹ãŠã®ã³ã³ãããŒã«ãããŒããŒãããã²ãŒã·ã§ã³ã§ã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããŸãã
- ã¹ã¯ãªãŒã³ãªãŒããŒã®äºææ§ïŒ ã¢ããªã±ãŒã·ã§ã³ãé©åã«ã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããããã«ãã¹ã¯ãªãŒã³ãªãŒããŒã§ãã¹ãããŸãã
- è²ã®ã³ã³ãã©ã¹ãïŒ èŠèŠé害ã®ãããŠãŒã¶ãŒãã³ã³ãã³ããèªã¿ãããããããã«ãååãªè²ã®ã³ã³ãã©ã¹ãã䜿çšããŸãã
WebCodecséçºã«ãããã°ããŒãã«ãªèæ ®äºé
ã°ããŒãã«ãªèŠèŽè åãã«WebCodecsã¢ããªã±ãŒã·ã§ã³ãéçºããéã«ã¯ã以äžãèæ ®ããŠãã ããïŒ
- æ§ã ãªãããã¯ãŒã¯ç¶æ³ïŒ äœåž¯åå¹ ãé«é å»¶ã®æ¥ç¶ãå«ããããŸããŸãªãããã¯ãŒã¯ç¶æ³ã«åãããŠã¢ããªã±ãŒã·ã§ã³ãæé©åããŸãããããã¯ãŒã¯ç¶æ³ã«åºã¥ããŠãããªå質ã調æŽããããã«ãã¢ãããã£ããããã¬ãŒãã¹ããªãŒãã³ã°ãæ€èšããŠãã ãããããã¯ç¹ã«ãã€ã³ã¿ãŒãããã€ã³ãã©ãéãããŠããçºå±éäžåœã®ãŠãŒã¶ãŒã«ãšã£ãŠéèŠã§ãã
- å°åçãªã³ã³ãã³ãå¶éïŒ å°åçãªã³ã³ãã³ãå¶éãã©ã€ã»ã³ã¹å¥çŽã«æ³šæããŠãã ãããäžéšã®ã³ã³ãã³ãã¯ç¹å®ã®åœã§å©çšã§ããªãå ŽåããããŸãã
- èšèªãµããŒãïŒ è€æ°ã®èšèªããµããŒãããŸããããã«ã¯ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ã®ç¿»èš³ããããŸããŸãªèšèªã§ã®åå¹ãšãã£ãã·ã§ã³ã®æäŸãå«ãŸããŸãã
- æåçãªé æ ®ïŒ æåçãªéãã«æ³šæããç¹å®ã®èŠèŽè ã«ãšã£ãŠäžå¿«ãŸãã¯äžé©åãšãªãåŸãã³ã³ãã³ããé¿ããŸãã
- ã¢ã¯ã»ã·ããªãã£åºæºïŒ WCAGïŒãŠã§ãã³ã³ãã³ãã¢ã¯ã»ã·ããªãã£ã¬ã€ãã©ã€ã³ïŒãªã©ã®åœéçãªã¢ã¯ã»ã·ããªãã£åºæºãéµå®ããŸãã
çµè«ïŒWebCodecs â ããã³ããšã³ãã¡ãã£ã¢åŠçã®ã²ãŒã ãã§ã³ãžã£ãŒ
WebCodecsã¯ãããã³ããšã³ãã®ãŠã§ãéçºã«ããã倧ããªé²æ©ã§ãããéçºè ãé«åºŠãªãªã¢ã«ã¿ã€ã ã¡ãã£ã¢ãã€ãã©ã€ã³ããã©ãŠã¶ã§çŽæ¥æ§ç¯ã§ããããã«ããŸããã³ãŒããã¯ãžã®äœã¬ãã«ã¢ã¯ã»ã¹ãæäŸããããšã§ãWebCodecsã¯ã€ã³ã¿ã©ã¯ãã£ãã§æ²¡å ¥æã®ããã¡ãã£ã¢äœéšãåµé ããããã®å¹ åºãå¯èœæ§ãè§£ãæŸã¡ãŸããWebCodecsã®ãã©ãŠã¶ãµããŒããæ¡å€§ãç¶ããã«ã€ããŠã次äžä»£ã®ã¡ãã£ã¢ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã³ããšã³ãéçºè ã«ãšã£ãŠããŸããŸãéèŠãªããŒã«ãšãªãã§ãããã
ãããªäŒè°ãã©ãããã©ãŒã ãã©ã€ãã¹ããªãŒãã³ã°ãµãŒãã¹ããŸãã¯ãŠã§ãããŒã¹ã®ãããªãšãã£ã¿ãæ§ç¯ããŠããå Žåã§ããWebCodecsã¯ãã°ããŒãã«ãªèŠèŽè ã«åããŠçã«é©æ°çã§é åçãªã¡ãã£ã¢äœéšãåµé ããããã«å¿ èŠãªããã©ãŒãã³ã¹ãæè»æ§ãããã³å¶åŸ¡ãæäŸããŸãã