問題タブ [http-live-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.
java - LinuxサーバーでのHTTP-livesteaming
これに関する決定的な情報を見つけるのは難しいと思います。Debian5.0のデータセンターに専用サーバーがあります。私はJAVAEE(Glassfish 2.1)バックエンドを使用するiPhone / iPadアプリを持っており、アプリにビデオを実装しているところです。これにはライブストリーミングが含まれ、ビデオは10分以上HTTPライブストリーミングが必要です。
実装するのに最適なオープンソース/無料のソリューションは何ですか?これはパイロットプロジェクトにすぎないので、有料サービスには加入したくありません。現在、ライブストリーミングにはまだ何も用意されていないため、任意のシステム(サーバー側またはクライアント側)に柔軟に適応できます。
私は遭遇しました:
- ダーウィン(ただし、情報があまりないため、プロジェクトが生きているかどうかはわかりません)
- Red5(ただし、HTTPライブストリーミングの簡単な実装が可能になる場合は、決定的なものを見つけることができません)
- FFMPEG
ビデオに関しては、理想的には720pバージョンをサーバー(iPad用)にアップロードしてから、自動(要求されたときにオンザフライで、またはファイルのアップロード時に準備された)をiPhone/iTouchおよび低帯域幅に必要な形式に変換したいと思います。ライブストリーミングの場合、サーバーにストリーミングしてから約30秒でコンテンツを提供できるようにしたいと思います。
私は高い要求を想定していません(たとえば、多数の同時リクエスト。もしそうなら(たとえば、ライブイベント)、HTTPライブストリーミングを使用して処理できるはずの1つのストリームで、エンコードとセグメント化が1回だけ必要です)。
)それほど近くない)将来のAndroidもおそらくアプリの一部になるでしょう。
ヒント/チュートリアル/提案/アドバイスをいただければ幸いです。
ios - AVFoundationにローカルの.tsファイルの再生を強制することはできますか?
明らかに、AVFoundation(およびQuicktime X)は、適切にエンコードされ.tsたコンテナーをデマックスして再生できます。これは、.tsコンテナーがHTTPSライブストリーミングの下にあるためです。
.m3u8および関連ファイルを提供するためのローカルWebサービスを設定する以外に、ローカルファイルURIをHTTPURIであるかのように説得および/または受け入れる.tsことができるようにしたいと考えています。ライブストリーミングフープを飛び越えずに一連のファイルをロードして再生するために使用します。AVURLAssetURLAssetWithURL.m3u8AVQueuePlayer.ts
これを実行したい理由は、映画アセットをオンザフライでやや断片的にローカルで生成する必要があるためです。アセット全体が一度に利用可能になることはありませんが、時間が経つにつれて生成されます。明らかに、これは役に立ちますAVQueuePlayerが、さまざまな理由で、私のアセットフラグメントは.tsコンテナにパッケージ化されています。これはすべて、「ローカル」ライブストリーミングに最適のようです。
渡さURLAssetWithURLれた文字列の修飾を行ってから、ライブストリーミングソースを参照していることを通知するプロパティを設定し、フォーム内のトラックを期待するように指示しAVPlayerます。おそらくHTTPを見て、これがライブストリーミングであると判断します。AVQueuePlayer.ts
だから私の質問は、 AVFoundationを「だまして」.m3u8、リモートファイルとまったく同じようにローカルファイルを処理する方法を教えてください。
そして、ボーナスの質問は次のとおりです。アセットがアセットのトラックのステータスを返すように(再生の準備をする)、誰かがファイルAVAssetからを作成できましたか(もしそうならどのように)?.ts
TIA!
iphone - iPhoneから別のデバイス(ブラウザ、またはiPhone)へのリアルタイムオーディオ/ビデオストリーミング
iPhoneから別のデバイス(デスクトップブラウザまたは別のiPhone、たとえばポイントツーポイント)にリアルタイムのビデオを取得したいのですが。
注:現時点では、1対多ではなく、1対1です。オーディオは、ストリームの一部にすることも、iPhoneの電話を介して行うこともできます。
私が考えることができる4つの方法があります...
iPhoneでフレームをキャプチャし、メディアサーバーにフレームを送信し、メディアサーバーにホストWebサーバーを使用してリアルタイムビデオを公開させます。
iPhoneでフレームをキャプチャし、画像に変換し、httpserverに送信し、ブラウザのjavascript/AJAXでサーバーから画像をできるだけ速く再読み込みします。
iPhoneでhttpServerを実行し、iPhoneで1秒間の映画をキャプチャし、iPhoneでM3U8ファイルを作成し、他のユーザーにiPhoneのhttpServerに直接接続してライブストリーミングを行います。
iPhoneで1秒間の映画をキャプチャし、iPhoneでM3U8ファイルを作成し、httpServerに送信し、他のユーザーをhttpServerに接続してライブストリーミングを行います。これは良い答えです、誰かがそれを機能させることができましたか?
より良い、より効率的なオプションはありますか?iPhoneからデータを取得する最速の方法は何ですか?ASIHTTPRequestですか?
みんな、ありがとう。
ios - さまざまな長さのオーディオファイルを使用したHTTPライブストリーミング
AppleのHTTPライブストリーミングプロトコルを使用して、iOSおよびSafariクライアントにオーディオをストリーミングしようとしています。HTTPライブストリーミングの多くの一般的な実装とは異なり、私の目標は、長さがさまざまで、ほとんどが10〜30秒の範囲の短いオーディオクリップを使用することです。これらのセグメントからのオーディオのストリーミングに加えて、各セグメントのメタデータにアクセスして、表示を更新したり、特定のオーディオセグメントに関する詳細情報を取得するための追加オプションをユーザーに提供したりしたいと思います。
現在、ソースオーディオ(MP3)をさまざまな形式に変換し、iOSデバイスでテストするストリーミングM3Uファイルを作成するいくつかのテストケースを設定しましたが、どのアプローチも正しく機能しませんでした(正しくストリーミングしてクライアントにメタデータを渡す) 。AVPlayer作成したM3Uファイルをロードして再生するために使用しています。
アプローチ1:生のMP3ファイル
id3v2(v2.3.0)メタデータを含む元のソースMP3ファイルを取得し、それらをM3Uプレイリストに追加しました。
結果:timedMetadata最初のトラックの正しいID3情報で再生が開始されるとすぐに、プロパティが更新されます。最初のトラックは再生されますが、終わり近くで途切れます。2番目のトラックのID3データは表示されますが、2番目のトラックは再生を開始しません。しばらくすると、コンソールにエラーが表示されます。
アプローチ2:Appleのmediafilesegmenterを使用して個々のMP3ファイルを作成する
このアプローチではmediafilesegmenter、セグメントごとに新しいMP3ファイルを作成するために使用します。Appleのセグメンテーションツールは通常、セグメンテーションに使用されますが、私のオーディオクリップはすべて短く、さまざまな長さであるため、これは私のアプリケーションにはあまり適していません。999秒のターゲット期間をユーティリティに渡して、指定した入力ファイルごとに1つの出力ファイルを作成します。個々のトラックを作成するために使用するコマンドは次のとおりです。
vbindiffがファイルヘッダーの変更を示し、文字列「com.apple.streaming.transportStreamTimestamp」が新しいファイルの最初の数バイトに表示されるため、結果のMP3ファイルにはタイムスタンプデータが含まれているようです。その文字列を調査すると、 HTTPライブストリーミングドラフト仕様に一節が表示されます。
エレメンタリーオーディオストリームファイルは、ID3 PRIVタグ[ID3]に「com.apple.streaming.transportStreamTimestamp」の所有者識別子を付加することにより、ファイル内の最初のサンプルのタイムスタンプを通知する必要があります。バイナリデータは、上位31ビットがゼロに設定されたビッグエンディアンの8オクテット数として表される33ビットのMPEG-2プログラムエレメンタリーストリームタイムスタンプである必要があります。
次に、アプローチ1と同じようにM3Uファイルを作成します(mediafilesegmenterを使用すると、事前に作成されたID3タグファイルとID3タイムオフセットを記述したメタファイルを使用してID3情報を渡すこともできます。これらのファイルを正しく再生することもできます。)
結果:最初のトラックはアプローチ1と同じようにストリーミングされます。トラックは終わり近くで再び切断され、2番目のトラックは再生されません。メタデータは存在しませんが、mediafilesegmenterの-Mオプションを使用して簡単に追加できます。
アプローチ3:ffmpegを使用してMPEGトランスポートストリームファイルを作成する
この最後のアプローチを使用して、ソースMP3ファイルをffmpegに渡し、MPEGトランスポートストリームデータを作成します。
次に、最初の2つのアプローチと同じようにM3Uを作成します。
結果:このアプローチは実際に機能します。すべてのファイルがクライアント上でスムーズにストリーミングされます。ただし、メタデータをクライアントに渡すことができません。-metadata title="My Title"運が悪かったので、ffmpegのような引数を渡してみました。
plugins - ブラウザでの HTTP ライブ ストリーミング
iOS デバイス アプリで使用している暗号化された HTTP ライブ ストリームがいくつかあります。同じストリームを使用して、さまざまなブラウザーにコンテンツをストリーミングしたいと考えています。サファリでは、quicktime プラグインが正常に動作し、ストリームを再生するため、問題はありません。しかし、friefox、chrome、IE では、これらのストリームを再生する方法に関して問題が発生しています。
これらのブラウザ用の QuickTime プラグイン (これらすべてで使用できると仮定) は、ストリームを再生できますか。ブラウザで HTTP ライブ ストリーム (暗号化されたストリーム) を再生するために使用できるブラウザ プラグインを備えた他のプレーヤーはありますか?
ありがとう。
python - Apple HTTP Liveストリーム(HLS)用のPythonモジュール?
HTTPライブストリーム用のPythonモジュールを知っている人はいますか?そうでない場合、tsファイルをローカルにダウンロードする単純なクライアントを作成するための最良のモジュールは何でしょうか?
ios - 実行時に m3u8 ファイルを動的に変更する (iOS)
アプリの実行時に m3u8 ファイルを動的に変更できるかどうかを知っている人はいますか?
シナリオは次のとおりです。たとえば、 1.ts 、 2.ts 、 3.ts など、複数の .ts ファイルを順番に再生する準備ができているとします。
実行時に、順序を 1.ts 、 3.ts 、次に 2.ts に変更したいと考えています。
これは可能ですか?
ありがとう、
silverlight - IIS Smooth Streaming と Apple HTTP Live Streaming の互換性
IIS Smooth StreamingとApple HTTP Live Streamingはどちらも(同一ではないにしても) 同様の基本的なメカニズムを使用しているようです。特に、どちらもセグメント化された H.264 / MP4 ファイルに依存しています。
Mobile Safari クライアントと Silverlight クライアントの両方で同じビデオ データを利用できるように、ビデオ セグメントを出力することはできますか? プレイリストのフォーマットが唯一の違いである場合、これは簡単に対処できるように思えます...
編集:またはより一般的には、この種の適応 HTTP ストリーミングが同じ静的ソース ファイルから iOS プレーヤーと Silverlight プレーヤー (および/または Flash も) の両方に可能になるようにセグメント化する一般的な方法はありますか?
apache - ApacheWebサーバーを使用したHttpライブストリーミング
Apache WebサーバーでHLSを実行することは可能ですか?「ここにデータチャンクのあるプレイリストを置く」だけで十分でしょうか?そんなに簡単ですか?または、その目的に使用できるモジュールはありますか?
返信ありがとうございます
iphone - HTTP ライブ ストリーミングによる正確なスクラビング
iPhone アプリに HTTP ストリーミングを使用しています (Apple の要求に応じて)。ただし、ビデオのスクラブは著しく不正確です。ビデオの時間をシークすると、最も近いセグメントの開始時間にジャンプします。これは、MPMoviePlayerController と AVPlayer の両方で発生します (seekToTime: を許容値 0 で使用)。
他の人もこの問題に遭遇しましたか? HTTP ライブ ストリーミングで正確なスクラブを取得する方法を見つけた人はいますか? 必要に応じて低レベルに進みます。Youtube アプリには正確なスクラブがありますが、HTTP ライブ ストリーミングを使用しているとは思えません。誰でも確認/拒否できますか?
更新: デフォルト設定 (10 秒/チャンク) で mediafilesegmenter を使用しています。私のマスター.m3u8は次のようになります
個々の .m3u8s は次のようになります
ありがとう!