問題タブ [web-mediarecorder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 数秒を超える MediaRecorder ビデオが再生されない
ブラウザでビデオを録画し、ユーザーのために再生したいと思います。私は現在、これを行うために MediaRecorder API (現時点では Firefox でのみ利用可能) を使用しています。数秒未満のビデオでは問題なく動作しますが、それ以外の場合、ビデオはまったく表示されません。
コンソールなどにエラーはありません。また、ドキュメントにファイル サイズの制限について何も見つかりませんでした。
私が使用しているコードは次のとおりです(Firefoxのみ):
index.html:
script.js:
Codepen について: http://codepen.io/anon/pen/xGqKgE
これはバグ/ブラウザの問題ですか? 私が認識していないこの API の制限はありますか?
javascript - blob を Uint8Array として NodeJS に送信し、ファイルに保存する
Firefox の新しい MediaRecorder API からのブロブを NodeJS に送信してファイルに保存しようとしています。BLOB には、変換された webm ファイルとして記録が含まれています。webrtc データチャネルによって提供される帯域幅を介して送信できるように、送信する前に、このブロブを特定のサイズにチャンクしています。これは次のようになります。
nodeJS 側では、次のようにデータを webm ファイルに変換しようとしています。
チャンクが書き込まれたことがわかりますが、ファイルは空です。ブロブから派生したbase64でエンコードされた文字列で同じことを試みましたが、データが破損する可能性があるため、悪い考えのように思えました。
私は何が欠けていますか?または、ブロブを JavaScript から NodeJS に転送するより良い方法はありますか?
編集
uint8array-constructor は、入ってくるデータを文字列として受け入れないようです:
'0': 39、'1': 209、'2': 79、'3': 0、'4': 230、'5': 133、
'6': 190、'7': 138、'8 ': 188、'9': 103、'10': 131、
新しい Uint8Array(message.payload) 部分の後、配列の長さはまだ 0 です。代わりにどのように行う必要がありますか?
編集Ⅱ
JSON.stringify() を使用するときに .toString() を追加した後、希望どおりに UInt8Array を受け取ることができました。ただし、コードが上に示されているように、[object uint8array] のみがファイルに書き込まれます。
編集 III - ソリューション
上記のコードを使用すると問題なく動作します。
firefox - Firefox でビデオ/オーディオ ストリームのボリューム ゲインを制御する
MediaRecorder API for Firefox を使用してビデオ/オーディオ ファイルを記録しようとしています。
ノードの作成に Web Audio API を使用している場合 (ソース -> ゲイン -> 宛先)
記録されたファイルの出力は、宛先ノードからの戻りストリームがオーディオ ストリームであるため、オーディオのみです 。
オーディオのみではなくオーディオ/ビデオを記録するために、宛先出力でオーディオ/ビデオストリームを取得するための提案。
firefox - MediaRecorder でコーデックを指定する
MediaRecorder APIで使用されるコーデックを指定するにはどうすればよいですか? 私が見る唯一のオプションは、実際には十分ではないmimeType用です。mimeType オプションにコーデックを詰め込んでもうまくいかないようです。
これにより、Vorbis と VP8 を使用した WebM ストリームが生成されます。
オーディオ トラックのみ (ビデオなし) を持つ MediaStream を作成すると、MediaRecorder は Ogg コンテナーに Opus オーディオを出力します。
MediaRecorder API を使用して、WebM コンテナーで VP8 ビデオを使用して Opus オーディオを取得するにはどうすればよいですか?
Firefox v44.0.2
javascript - MediaSource がビデオをランダムに停止する
したいプロジェクトに取り組んでいます
動作するようになりましたが、数秒後にランダムに停止します。
私は WebRTC について知っていますが、私が取り組んでいるプロジェクトでは、WebRTC をサポートしていない Chrome 組み込みのバージョンである環境に基づいています。
サーバ:
クライアント:
javascript - mimeType で初期化されていない MediaRecorder から mimeType を取得する
MediaRecorder API を使用して、ページ上のメディアを記録しています。MediaRecorder の初期化では、特に何も必要としないため、コンテンツ タイプを指定していません。ブラウザは必要なものを選択できます。
ただし、その記録を保存するときは、blob の mimeType を知る必要があるため、適切なファイル名拡張子を決定できます。
MediaRecorder.mimeTypeプロパティは私が望むものですが、空の文字列です。mimeType
MediaRecorderのデフォルトに設定されていないため、デフォルトが何であるかを知る方法がないようmimeType
です。