問題タブ [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.

0 投票する
0 に答える
194 参照

javascript - 数秒を超える MediaRecorder ビデオが再生されない

ブラウザでビデオを録画し、ユーザーのために再生したいと思います。私は現在、これを行うために MediaRecorder API (現時点では Firefox でのみ利用可能) を使用しています。数秒未満のビデオでは問題なく動作しますが、それ以外の場合、ビデオはまったく表示されません。

コンソールなどにエラーはありません。また、ドキュメントにファイル サイズの制限について何も見つかりませんでした。

私が使用しているコードは次のとおりです(Firefoxのみ):

index.html:

script.js:

Codepen について: http://codepen.io/anon/pen/xGqKgE

これはバグ/ブラウザの問題ですか? 私が認識していないこの API の制限はありますか?

0 投票する
1 に答える
5768 参照

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 - ソリューション

上記のコードを使用すると問題なく動作します。

0 投票する
1 に答える
916 参照

firefox - Firefox でビデオ/オーディオ ストリームのボリューム ゲインを制御する

MediaRecorder API for Firefox を使用してビデオ/オーディオ ファイルを記録しようとしています。

ノードの作成に Web Audio API を使用している場合 (ソース -> ゲイン -> 宛先)

記録されたファイルの出力は、宛先ノードからの戻りストリームがオーディオ ストリームであるため、オーディオのみです

オーディオのみではなくオーディオ/ビデオを記録するために、宛先出力でオーディオ/ビデオストリームを取得するための提案。

0 投票する
2 に答える
3521 参照

firefox - MediaRecorder でコーデックを指定する

MediaRecorder APIで使用されるコーデックを指定するにはどうすればよいですか? 私が見る唯一のオプションは、実際には十分ではないmimeType用です。mimeType オプションにコーデックを詰め込んでもうまくいかないようです。

これにより、Vorbis と VP8 を使用した WebM ストリームが生成されます。

オーディオ トラックのみ (ビデオなし) を持つ MediaStream を作成すると、MediaRecorder は Ogg コンテナーに Opus オーディオを出力します。

MediaRecorder API を使用して、WebM コンテナーで VP8 ビデオを使用して Opus オーディオを取得するにはどうすればよいですか?

Firefox v44.0.2

0 投票する
0 に答える
720 参照

javascript - MediaSource がビデオをランダムに停止する

したいプロジェクトに取り組んでいます

動作するようになりましたが、数秒後にランダムに停止します。

私は WebRTC について知っていますが、私が取り組んでいるプロジェクトでは、WebRTC をサポートしていない Chrome 組み込みのバージョンである環境に基づいています。

サーバ:

クライアント:

0 投票する
2 に答える
1460 参照

javascript - mimeType で初期化されていない MediaRecorder から mimeType を取得する

MediaRecorder API を使用して、ページ上のメディアを記録しています。MediaRecorder の初期化では、特に何も必要としないため、コンテンツ タイプを指定していません。ブラウザは必要なものを選択できます。

ただし、その記録を保存するときは、blob の mimeType を知る必要があるため、適切なファイル名拡張子を決定できます。

MediaRecorder.mimeTypeプロパティは私が望むものですが、空の文字列です。mimeTypeMediaRecorderのデフォルトに設定されていないため、デフォルトが何であるかを知る方法がないようmimeTypeです。