問題タブ [smooth-streaming]
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.
video - IIS Smooth Streaming からの mp4 フラグメントの h264 のデコード
そこで、学習課題として IIS の Smooth Streaming 用の独自のクライアントを作成しようと決めましたが、mp4 フラグメントのデコードに苦労しています。
次のフラグメントがあります: http://www.mediafire.com/download/n32660d920g291c/part+1.mp4
ffmpeg を使用してデコードしようとすると、次のようになります。
読んだ後、PPS/SPS は、IIS が提供するマニフェストの CodecPrivateData に由来することがわかりました。
バイナリ: http://www.mediafire.com/download/hm3av6h3i1g7ojf/CodecPrivateData
これは附属書 b 00000001[SPS]00000001[PPS] だと思いますが、どうすればよいかわかりません。ファイルの先頭に配置しようとしましたが、同じエラーが発生し、データだけを取得しようとしましたmdatでそれをffmpegに送信しますが、取得します
それで、 mdat セクションの直前に CodecPrivateData を配置しようとしたところ、これが得られました
これをデコードするために何かが欠けているようです。何がわからないので、h264に詳しい人が助けてくれることを願っています! 最終的には、これを DirectShow で動作させたいと思っていますが、ffmpeg で動作させるだけでも大きな助けになります!
drm - PlayReady ストリームで暗号化されていないフラグメントを送信する
PlayReadyで保護されたSmooth Streamがあり、これを手動で暗号化します (Protection
要素をクライアント マニフェストに追加し、各フラグメントのボックス内にSample Encryption Boxtraf
を追加し、実際のmdat
ペイロードを暗号化します)。
新しい機能を実装しようとしています - そのストリーム内でいくつかの暗号化されていないフラグメント (たとえば、広告またはストリームの最初の N フラグメント) を送信します。
Microsoft の PIFF 規格を読んだ後、flags
フィールドを 0x00001 に設定し、サンプル暗号化ボックスのalgorithm_id
、sample_count
およびフィールドをゼロに設定して、暗号化されていないデータを送信しようとしkey_id
ました (PIFF 規格のセクション 5.3.2.2 に記載されているとおり)。
そのストリームを再生しようとしているときに、私がテストしたサンプル プレーヤー ( http://playready.directtaps.net/pr/doc/slee/および player.smooth.vertigo.com/) はコンテンツを再生しましたが、暗号化されていないフラグメントをスキップし、暗号化されたものから直接開始されます。
この機能を実装することは可能ですか? 私は何か間違ったことをしていますか?
PS、サンプル暗号化ボックスを完全に省略しようとしましたが、その結果、プレーヤーはストリームを完全に再生することを拒否しました.
どんな助けでも大歓迎です。
azure - Azure Media Services を使用した Web およびモバイル用のビデオのエンコード
私は Azure Media Services を使用して、Web で表示する必要があるアダプティブ ビデオをエンコードしています (これにはスムーズ ストリーミングを使用しています)。また、iOS と Android の両方で (両方に HLS を使用しています)。Azureのドキュメントには、1080p で Smooth Streaming にエンコードするためのプリセットがあり、SS ファイルを HLS に再多重化するためのドキュメントもあります。ここまでは順調ですね。
問題は、1080p Smooth Streaming を HLS に変換すると、結果が Android で再生できないことです。私はそれについて検索しましたが、メディア サービス プリセットが h264 ハイ プロファイルを使用してビデオをエンコードし、Android がそのプロファイルをサポートしていないことが問題のようです。
この問題のエンコードを 2 つの異なる Smooth Streaming プリセットに修正しました: "H264 Smooth Streaming 1080p" と "H264 Smooth Streaming 720p" (後者は h264 メイン プロファイルにエンコードされるため)、720p ファイルを使用して HLS ビデオを生成します。これは最適ではありません。なぜなら、必要な時間をもう一度エンコードし、720p スムーズ ストリーミング ファイルを使用していないからです。それで... 720p スムーズ ストリーミング エンコーディングをスキップする方法はありますか? たぶん 1080p でスムーズ ストリーミングにエンコードしますが、メイン プロファイルを使用しますか?
actionscript-3 - スムーズ ストリーミング メディア要素を使用した OSMF シリアル コンポジション
複数または単一のマニフェスト (.isml) からのメディア要素の特定の部分を使用して、スムーズ ストリーミング メディア要素のシリアル コンポジションを作成したいと考えています。isml を使用してシリアル コンポジションを作成しようとしました。そのクリップ セクションは 10 秒から 50 秒に始まり、次に他のマニフェストから 50 秒から 150 秒のセクションを再生するためにシリアル コンポジションに次の要素を追加します。ただし、マニフェストの指定された部分を再生する代わりに、最初から最後まで再生し、最初の isml が再生されると、シリアル構成の次の要素に切り替わりません。Mozilla の発火バグに取り組んでいることを確認すると、フラグメント要求が継続的に送信されていることがわかりましたが、プレイヤーはそれを表示できません。
コード:-
パッケージ {
}
ありがとう
google-cast - 実際に (format=mpd-time-csf) を使わずに Chromecast で SmoothStreaming 動画を再生することは可能ですか?
Chromecast で動画を再生しようとしています。MS Smooth Streaming マニフェスト ( example )として利用できますが、その形式では利用できないため、指定できませんformat=mpd-time-csf
( example )。
マニフェスト URL を Chromecast に直接渡すことはまだ機能しませんが、Les Vogel が次のように述べているように、最終的な SDK リリースで利用できるようになります: Playing Smoothstreaming URL by provide Manifest file of Smoothstreaming to Chromecast device
私が理解しているように、 dash.jsプレーヤーをレシーバーアプリに埋め込むことで、ダッシュ/スムーズビデオを再生できます。ただし、dash.js は、(format=mpd-time-csf) が指定されている場合にのみスムーズ ストリーミング ビデオを再生します。通常のスムーズ マニフェストは機能しません。
これは、現在の状態では、Chromecast は mpd-time-csf 形式のスムーズなビデオのみをサポートするということですか? Netflix アプリは Chromecast アプリに Smooth を使用していると思いますが、これが彼らのやり方ですか?
google-cast - PlayReady によるスムーズ ストリーミングの Chromecast サポート
Chromecast レシーバーの開発者向けプレビューについては承知しています。Smooth Streaming マニフェスト URL を完全にはサポートしていません (アップデート#1を参照) .
GitHub プロジェクトのサンプルアプリ プロバイダーを使用して、 Microsoft PlayReady(TM) Test Server - Smooth Streaming アセットによって提供されるコンテンツをテストしました。receiver
スムーズ ストリーミングのサポート
予想通り、 (アップデート#1を参照) . しかし、個々のmanifest
ファイルが機能しませんismv
ファイルを再生することはできました (ただし、低ビットレートのみ)。より高いビットレートを使用すると、ビデオ コンテナーは黒のままです。
PlayReady サポート
PlayReady
保護された低ビットレートファイルを再生しようとしたときismv
、何らかのコール バックを期待していましたMediaProtocolMessageStream.onKeyRequested()
。しかし、そうはなりませんでした。これが私のアンドロイドCustomMediaProtocolMessageStream実装です。
では、 Chromecast を使用する方法PlayReady
または使用することになっている方法を知っている人はいますか? Widevine
アプリが Chromecast にロードされたときに、Netflix がバイナリ シェル コマンドを呼び出すのを見てきました。しかし、彼らはこれを達成するために Google と協力したと思います。
追加の SO リソース
- Chromecast でスムーズなストリーミング ビデオを再生するには?
- 実際に (format=mpd-time-csf) を使わずに Chromecast で SmoothStreaming 動画を再生することは可能ですか?
- Smoothstreaming のマニフェストファイルを Chromecast デバイスに提供して Smoothstreaming URL を再生する
更新 #1
Les Vogel の回答に基づいて、アダプティブ ビットレート ストリーミング用のスムーズ ストリーミング マニフェスト ファイルが Chromecast でサポートされています。それを処理するにはカスタムプレーヤーが必要です。私が知る限り、現在それを処理できる 2 つの JS プレーヤーがありますが、それらが Chromecast で動作するかどうかはわかりません。
dash.js
- DASH 業界フォーラム ( https://github.com/Dash-Industry-Forum/dash.js )Microsoft HTML5 Player Framework
- Microsoft Media Platform の一部 ( http://playerframework.codeplex.com/ )
google-cast - Chromecast での SmoothStreaming の問題
スムーズ ストリーミング メディアを chromecast に読み込もうとしています。そのために、Google が提供するサンプルを使用しました。
そして送信者で:
私は .ism であるメディア #1 を試しています - /Manifest でも試しましたが、うまくいきませんでした。デバッグコンソールで私は得ています:
何か案が???
ありがとう!
javascript - Google Chromecast: スムーズ ストリーミング LIVE でアプリケーションが "LOAD_FAILED" メディア エラーになるのはなぜですか?
Chromecast Javascript アプリケーションで何が問題になっているのかを理解するのに助けが必要です。私の目標は、isml 形式でライブをキャストし、Chromecast 開発者ライブラリを介してその再生を管理することです。ライブ コンテンツを再生しようとすると、レシーバー アプリケーションでエラーが返されます。
スムーズ ストリーミング ライブを正しく読み込むための実際のコードの例を教えてください。
サーバーは CORS ヘッダーを正しく送信することに注意してください。
これは、レシーバー アプリ コンソールのスタック トレースです。
ありがとう!C.
windows - マシンの再起動後の IIS Media Services 公開ポイントの状態
Smooth Streaming プロジェクトに取り組んでおり、Windows Azure 仮想マシン (Windows Server 2008 R2) を使用してメディア コンテンツを保存しています。ストリーミングは正常に機能していますが、公開ポイントの状態に問題があります。公開ポイントの状態は
アイドル: 公開ポイントが作成されました/シャットダウン
開始中: 公開ポイントが接続されています
開始済み: ストリーミング中です
Stopped: ストリーミングを停止しました
次の 2 つのケースをお読みください。
ケース 1: Windows Azure 仮想マシン (Windows Server 2008 R2) このマシンに IIS Media Services をインストールしました。公開ポイントを作成し、Microsoft Expression Encoder を使用してエンコードを開始します。現在、公開ポイントは停止状態になっています。ストリーミングをアーカイブすることを選択しました。したがって、公開ポイントは、メディア コンテンツ (ismv、ism、ismc) のアーカイブ パスを関連付けます。ただし、仮想マシンを手動または不注意で再起動すると、すべての公開ポイントがアイドル状態になります。その場合、関連するアーカイブ パスを失い、オンデマンド ストリーミングを実行できなくなりました。
ケース 2: ローカル コンピューター Windows 8 Pro ケース 1 と同じことを行いますが、再起動/再起動後に公開ポイントの状態が以前と同じになる点が異なります。つまり、アイドル状態の公開ポイントはアイドル状態になり、停止すると停止します。その場合、オンデマンド ストリーミングを行うことができます。
最後に、マシンの再起動後にオンデマンド ストリーミングを停止したくありません。公開ポイントを同じ状態にしたい。
私を助ける方法/ユーティリティはありますか?