Skip to content

Commit

Permalink
Merge pull request #593 from shiguredo/feature/mp4-media-stream
Browse files Browse the repository at this point in the history
mediaType に mp4Media を追加する
  • Loading branch information
sile authored Oct 23, 2024
2 parents bc3392d + 22775e2 commit bf6b8b0
Show file tree
Hide file tree
Showing 21 changed files with 138 additions and 47 deletions.
7 changes: 7 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@

## develop

- [ADD] mediaType に mp4Media を追加する
- 指定された H.264 + Opus の MP4 ファイルからメディアストリームを取得して配信できるようにするもの
- ファイルの終端に達した場合には、先頭に戻って繰り返し再生する
- 制限:
- Chrome / Edge のみで利用可能
- B フレームを含んだ H.264 は正常に再生できない
- @sile
- [CHANGE] audioBitRate と videoBitRate を自由に設定できるようにする
- 自由入力にし、選択肢以外のビットレートでも Sora の接続パラメータとして使用できるようにする
- @tnamao
Expand Down
2 changes: 1 addition & 1 deletion dist/404.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">404: This page could not be found</title><link rel="preload" href="/_next/static/css/e3486d77095d9126.css" as="style"/><link rel="stylesheet" href="/_next/static/css/e3486d77095d9126.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-9640d30754de690a.js" defer=""></script><script src="/_next/static/chunks/framework-4ed78fcefec7e84d.js" defer=""></script><script src="/_next/static/chunks/main-1603c9fa885ed6bd.js" defer=""></script><script src="/_next/static/chunks/pages/_app-67d9c368dede9d33.js" defer=""></script><script src="/_next/static/chunks/pages/_error-8785461ced3f3251.js" defer=""></script><script src="/_next/static/sora_devtools/_buildManifest.js" defer=""></script><script src="/_next/static/sora_devtools/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"sora_devtools","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">404: This page could not be found</title><link rel="preload" href="/_next/static/css/e3486d77095d9126.css" as="style"/><link rel="stylesheet" href="/_next/static/css/e3486d77095d9126.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-9640d30754de690a.js" defer=""></script><script src="/_next/static/chunks/framework-4ed78fcefec7e84d.js" defer=""></script><script src="/_next/static/chunks/main-1603c9fa885ed6bd.js" defer=""></script><script src="/_next/static/chunks/pages/_app-5bef0d07bc52459c.js" defer=""></script><script src="/_next/static/chunks/pages/_error-8785461ced3f3251.js" defer=""></script><script src="/_next/static/sora_devtools/_buildManifest.js" defer=""></script><script src="/_next/static/sora_devtools/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"sora_devtools","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1 change: 1 addition & 0 deletions dist/_next/static/chunks/0e4af54b-f2b94e89f3a66a60.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/_next/static/chunks/pages/_app-5bef0d07bc52459c.js

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion dist/_next/static/chunks/pages/_app-67d9c368dede9d33.js

This file was deleted.

This file was deleted.

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/_next/static/sora_devtools/_buildManifest.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/devtools.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/index.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Sora DevTools</title><link rel="preload" href="/_next/static/css/e3486d77095d9126.css" as="style"/><link rel="stylesheet" href="/_next/static/css/e3486d77095d9126.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-9640d30754de690a.js" defer=""></script><script src="/_next/static/chunks/framework-4ed78fcefec7e84d.js" defer=""></script><script src="/_next/static/chunks/main-1603c9fa885ed6bd.js" defer=""></script><script src="/_next/static/chunks/pages/_app-67d9c368dede9d33.js" defer=""></script><script src="/_next/static/chunks/283-21d73a2e4ae4d6e4.js" defer=""></script><script src="/_next/static/chunks/pages/index-3e83addc1f704d08.js" defer=""></script><script src="/_next/static/sora_devtools/_buildManifest.js" defer=""></script><script src="/_next/static/sora_devtools/_ssgManifest.js" defer=""></script></head><body><div id="__next"><header><nav class="navbar navbar-expand-md navbar-dark bg-sora fixed-top"><div class="container"><a href="/" class="navbar-brand">Sora DevTools</a><button aria-controls="navbar-collapse" type="button" aria-label="Toggle navigation" class="navbar-toggler collapsed"><span class="navbar-toggler-icon"></span></button></div></nav></header><div class="container"><div class="row"><ul class="list-url"><li class="separator">マルチストリーム</li><li><a href="/devtools.html?role=sendrecv&amp;videoCodecType=VP9">マルチストリーム送受信</a></li><li><a href="/devtools.html?role=sendonly&amp;videoCodecType=VP9">マルチストリーム送信のみ</a></li><li><a href="/devtools.html?role=recvonly">マルチストリーム受信のみ</a></li><li><a href="/devtools.html?resolution=1280x720&amp;role=sendrecv&amp;simulcast=true&amp;videoBitRate=3000&amp;videoCodecType=VP8">マルチストリーム送受信 (サイマルキャスト有効)</a></li><li><a href="/devtools.html?resolution=1280x720&amp;role=sendonly&amp;simulcast=true&amp;videoBitRate=3000&amp;videoCodecType=VP8">マルチストリーム送信のみ (サイマルキャスト有効)</a></li><li><a href="/devtools.html?role=recvonly&amp;simulcast=true">マルチストリーム受信のみ (サイマルキャスト有効)</a></li><li class="separator">スポットライト</li><li><a href="/devtools.html?role=sendrecv&amp;simulcast=true&amp;spotlight=true&amp;videoBitRate=500&amp;videoCodecType=VP8">スポットライト送受信</a></li><li><a href="/devtools.html?role=sendonly&amp;simulcast=true&amp;spotlight=true&amp;videoBitRate=500&amp;videoCodecType=VP8">スポットライト送信のみ</a></li><li><a href="/devtools.html?role=recvonly&amp;simulcast=true&amp;spotlight=true">スポットライト受信のみ</a></li><li><a href="/devtools.html?role=sendrecv&amp;spotlight=true&amp;videoBitRate=500&amp;videoCodecType=VP8">スポットライト送受信 (サイマルキャスト無効)</a></li><li><a href="/devtools.html?role=sendonly&amp;spotlight=true&amp;videoBitRate=500&amp;videoCodecType=VP8">スポットライト送信のみ (サイマルキャスト無効)</a></li><li><a href="/devtools.html?role=recvonly&amp;spotlight=true">スポットライト受信のみ (サイマルキャスト無効)</a></li><li class="separator">データチャネルメッセージング</li><li><a href="/devtools.html?audio=false&amp;dataChannelSignaling=true&amp;dataChannels=%5B%0A%20%20%7B%0A%20%20%20%20%22label%22%3A%20%22%23devtools%22%2C%0A%20%20%20%20%22maxPacketLifeTime%22%3A%2010%2C%0A%20%20%20%20%22ordered%22%3A%20true%2C%0A%20%20%20%20%22compress%22%3A%20false%2C%0A%20%20%20%20%22direction%22%3A%20%22sendrecv%22%0A%20%20%7D%0A%5D&amp;debug=true&amp;debugType=messaging&amp;role=sendrecv&amp;video=false">メッセージングのみ</a></li></ul></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"sora_devtools","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Sora DevTools</title><link rel="preload" href="/_next/static/css/e3486d77095d9126.css" as="style"/><link rel="stylesheet" href="/_next/static/css/e3486d77095d9126.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-9640d30754de690a.js" defer=""></script><script src="/_next/static/chunks/framework-4ed78fcefec7e84d.js" defer=""></script><script src="/_next/static/chunks/main-1603c9fa885ed6bd.js" defer=""></script><script src="/_next/static/chunks/pages/_app-5bef0d07bc52459c.js" defer=""></script><script src="/_next/static/chunks/283-21d73a2e4ae4d6e4.js" defer=""></script><script src="/_next/static/chunks/pages/index-3e83addc1f704d08.js" defer=""></script><script src="/_next/static/sora_devtools/_buildManifest.js" defer=""></script><script src="/_next/static/sora_devtools/_ssgManifest.js" defer=""></script></head><body><div id="__next"><header><nav class="navbar navbar-expand-md navbar-dark bg-sora fixed-top"><div class="container"><a href="/" class="navbar-brand">Sora DevTools</a><button aria-controls="navbar-collapse" type="button" aria-label="Toggle navigation" class="navbar-toggler collapsed"><span class="navbar-toggler-icon"></span></button></div></nav></header><div class="container"><div class="row"><ul class="list-url"><li class="separator">マルチストリーム</li><li><a href="/devtools.html?role=sendrecv&amp;videoCodecType=VP9">マルチストリーム送受信</a></li><li><a href="/devtools.html?role=sendonly&amp;videoCodecType=VP9">マルチストリーム送信のみ</a></li><li><a href="/devtools.html?role=recvonly">マルチストリーム受信のみ</a></li><li><a href="/devtools.html?resolution=1280x720&amp;role=sendrecv&amp;simulcast=true&amp;videoBitRate=3000&amp;videoCodecType=VP8">マルチストリーム送受信 (サイマルキャスト有効)</a></li><li><a href="/devtools.html?resolution=1280x720&amp;role=sendonly&amp;simulcast=true&amp;videoBitRate=3000&amp;videoCodecType=VP8">マルチストリーム送信のみ (サイマルキャスト有効)</a></li><li><a href="/devtools.html?role=recvonly&amp;simulcast=true">マルチストリーム受信のみ (サイマルキャスト有効)</a></li><li class="separator">スポットライト</li><li><a href="/devtools.html?role=sendrecv&amp;simulcast=true&amp;spotlight=true&amp;videoBitRate=500&amp;videoCodecType=VP8">スポットライト送受信</a></li><li><a href="/devtools.html?role=sendonly&amp;simulcast=true&amp;spotlight=true&amp;videoBitRate=500&amp;videoCodecType=VP8">スポットライト送信のみ</a></li><li><a href="/devtools.html?role=recvonly&amp;simulcast=true&amp;spotlight=true">スポットライト受信のみ</a></li><li><a href="/devtools.html?role=sendrecv&amp;spotlight=true&amp;videoBitRate=500&amp;videoCodecType=VP8">スポットライト送受信 (サイマルキャスト無効)</a></li><li><a href="/devtools.html?role=sendonly&amp;spotlight=true&amp;videoBitRate=500&amp;videoCodecType=VP8">スポットライト送信のみ (サイマルキャスト無効)</a></li><li><a href="/devtools.html?role=recvonly&amp;spotlight=true">スポットライト受信のみ (サイマルキャスト無効)</a></li><li class="separator">データチャネルメッセージング</li><li><a href="/devtools.html?audio=false&amp;dataChannelSignaling=true&amp;dataChannels=%5B%0A%20%20%7B%0A%20%20%20%20%22label%22%3A%20%22%23devtools%22%2C%0A%20%20%20%20%22maxPacketLifeTime%22%3A%2010%2C%0A%20%20%20%20%22ordered%22%3A%20true%2C%0A%20%20%20%20%22compress%22%3A%20false%2C%0A%20%20%20%20%22direction%22%3A%20%22sendrecv%22%0A%20%20%7D%0A%5D&amp;debug=true&amp;debugType=messaging&amp;role=sendrecv&amp;video=false">メッセージングのみ</a></li></ul></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"sora_devtools","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
3 changes: 3 additions & 0 deletions instructions.json
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@
"fakeVolume": {
"description": "mediaType に fakeMedia を選択した際の音量を指定します。"
},
"mp4File": {
"description": "mediaType に mp4Media を選択した際に使用する MP4 ファイル (H.264 + Opus のみ対応) を指定します。"
},
"audioContentHint": {
"description": "MediaStreamTrack audio の contentHint を指定します。"
},
Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"dependencies": {
"@reduxjs/toolkit": "2.3.0",
"@shiguredo/light-adjustment": "2024.1.0",
"@shiguredo/mp4-media-stream": "2024.1.0",
"@shiguredo/noise-suppression": "2022.4.2",
"@shiguredo/virtual-background": "2023.2.0",
"bootstrap": "5.3.3",
Expand Down Expand Up @@ -57,6 +58,6 @@
},
"packageManager": "[email protected]",
"engines": {
"node": ">=18"
"node": ">=18.18"
}
}
}
Loading

0 comments on commit bf6b8b0

Please sign in to comment.