Chrome と Firefox では、HTMLMediaElement.captureMediaStream() を使用してストリームをキャプチャできます。ただし、Safari は HTMLMediaElement.captureMediaStream() をサポートしていません。
video タグのソースは、セグメントで受信した hls データです。
Safari でメディア データを MediaStream としてキャプチャする他の方法はありますか?
ご覧のとおり、少なくとも現時点では、Safari は直接の CaptureMediaStream メソッドをサポートしていませんが、これを実現する 1 つの方法は、ブラウザの ffmpeg ベースのメソッドを使用することです。
以前は、ffmpeg をブラウザーで実行することは、大きすぎて遅すぎるため、ほとんどのタスクにとって実用的ではありませんでしたが、最近の WASM (Web Assembly) ベースの ffmpeg 実装により、よりアクセスしやすくなりました。
次のライブラリを使用して、独自の ffmpeg ベースのソリューションを構築できます:
SharedArrayBuffer サポートの必要性を認識する必要があります:
上記のリンクはこちらです: https://caniuse.com/sharedarraybuffer
これは多くの一般的な ffmpeg タスクにはうまく機能することがわかりましたが、大きなビデオ ファイルには敏感です。HLS からファイルへの変換は試していないので、次のような場合に機能するかどうかを実験する必要があります。あなたの要望。ユースケースをテストできるデモは次のとおりです: https://ffmpegwasm.netlify。アプリケーション/#demo
使用する ffmpeg コマンドはオーディオによって異なりますが、おそらく次のとおりです:
(詳細については、この質問と回答を参照してください: HLS (m3u8) を MP4 に変換する)
チェックアウトできるオープンソースの既製ソリューションもいくつかあります - 例:
ご覧のとおり、少なくとも現時点では、Safari は直接の CaptureMediaStream メソッドをサポートしていませんが、これを実現する 1 つの方法は、ブラウザの ffmpeg ベースのメソッドを使用することです。
以前は、ffmpeg をブラウザーで実行することは、大きすぎて遅すぎるため、ほとんどのタスクにとって実用的ではありませんでしたが、最近の WASM (Web Assembly) ベースの ffmpeg 実装により、よりアクセスしやすくなりました。
次のライブラリを使用して、独自の ffmpeg ベースのソリューションを構築できます:
SharedArrayBuffer サポートの必要性を認識する必要があります:
上記のリンクはこちらです: https://caniuse.com/sharedarraybuffer
これは多くの一般的な ffmpeg タスクにはうまく機能することがわかりましたが、大きなビデオ ファイルには敏感です。HLS からファイルへの変換は試していないので、次のような場合に機能するかどうかを実験する必要があります。あなたの要望。ユースケースをテストできるデモは次のとおりです: https://ffmpegwasm.netlify。アプリケーション/#demo
使用する ffmpeg コマンドはオーディオによって異なりますが、おそらく次のとおりです:
(詳細については、この質問と回答を参照してください: HLS (m3u8) を MP4 に変換する)
チェックアウトできるオープンソースの既製ソリューションもいくつかあります - 例: