4

私は HTTP ライブ ストリーミング プロトコルの作業を開始し、非常に興味深いと感じました。Apple から提供された完全なドキュメントに目を通しました。

開発者フォーラムの 1 つに記載されている手順に従って、ストリーミング サーバーとして VLC プレーヤーを使用して、Vedio オン デマンドとライブ ストリーミングを試しましたが、正常にストリーミングできました。

今、私は自分の iPhone をストリーミングのソースにしたいと考えており、別の iPhone を使用してそのコンテンツを表示したいと考えています。

前述のように、mediastreamsegmenter は、UDP ネットワーク接続または sdtin から MPEG-2 トランスポート ストリームを受信するツールです。

私のiPhoneをストリーミングサーバーとして使い始め、コンテンツをストリーミングできるようにする方法について、誰かが光を当てることができますか. 私の知る限り、コンテンツをサーバーに送信し、サーバーがストリームを MPEG-2 トランスポート ストリームに変換してメディア ストリーム セグメンターに送信するクライアント (iPhone) アプリケーションが必要だと思います。残りの部分は、VLC プレーヤーでストリーミングしたときと同じであることを願っています。

誰かがこれを始める方法として私を助けることができれば素晴らしいでしょう.

4

2 に答える 2

2

これは私の推測です。肯定的な答えがある場合、これを投稿しないようにしました。しかし、今もなお、答えはありません。だから私は自分の意見を共有するためだけにこれを書いています。しかし、申し訳ありませんが、これは肯定的ではありません。

iOS デバイスからビデオを転送するだけなら簡単です。ビデオファイル自体を送信するだけです。だから私はあなたが望むのはライブビデオストリーミングだと思います。現在録画しているものを放送しています。

数週間前にこの問題について考えましたが、うまくいきませんでした。問題はメディア セグメンターではありません。MPEG2 TS はコンテナにすぎず、セグメンテーションはビデオを分割するだけなので、正確な仕様で簡単に (?) 実装できます。

本当の問題は、ビデオのエンコードです。iOS は、カメラ入力からの圧縮されたライブ ストリームを提供しません。(たぶんまだ?) 圧縮されたストリームのみをディスクに保存できます。圧縮されたビデオ ストリームを内部的に取得する方法が必要です。それなしでは FaceTime は不可能だからです。ただし、第三者には提供しません。

短いビデオを継続的に保存し、サーバーにアップロードすることができます。しかし、ビデオ セッションの開始/完了に時間がかかりすぎます。なのでこの方法はやめました。

別の方法として、iOS には非圧縮のビデオ ストリームが用意されているので、生のビデオ ストリームを自分で圧縮して作成することもできます。ffmpegとかそういうことで。ただし、Apple のビデオ エンコーディングは、ハードウェア機能を利用してパフォーマンスを向上させ (これにより、ビデオの品質をより低いサイズで向上させることができます)、エネルギーを節約します。ffmpegソフトウェアだけですべてのことを行います。もちろん、ハードウェア アクセラレーション エンコーダーを自作することも、ベンダーから購入することもできます。

市場には、ライブ ビデオ ストリーミング機能を備えたアプリがいくつかあります。私はそれらを使用しませんでした。しかし、おそらくこれらの1つです。

  • 生フレームを転送します。(圧縮なし、または高速だが弱い圧縮)
  • ffmpeg エンコーダー ベース。
  • 独立したハードウェア アクセラレーション エンコーダーの実装。

最初のものは帯域幅が多すぎて、大量のエネルギーを消費します。

2番目のものは間違いなく遅く、大量のエネルギーを消費します. しかし、それだけで十分かもしれません。

3 つ目は、小規模なアプリの場合、開発コストが高すぎます。でも、予算に余裕があればこれで十分です。iOS用の実装済みライブラリが市場に存在するかどうかはわかりません。

Apple がこの種の圧縮ビデオ ストリームをリリースしてくれることを願っています。Apple のハードウェア アクセラレーション エンコーダーで圧縮されています。しかし、Apple がデバイス間の高品質のライブ ビデオ ストリーミング機能をキラー機能である FaceTime として保護することをあきらめない限り、それは実現しないでしょう。

ただし、Apple がこの API をリリースする可能性はあります。そして、すべての API を検索したかどうかはわかりません。大事なことを確認できていない可能性があります。


アップデート

AVAssetWriterビデオデータを圧縮してファイルに書き込めるクラスを見つけました。これは、この種のアプリを作成するための鍵となる可能性があります。

于 2011-03-14T05:03:15.760 に答える
0

AVAssetWriter と AVAssetReader の良い例が AVAssetWriter - CRASHES を使用したビデオ エンコーディングにあります。リーダー部分は、収集したデータをネットワーク上で送信できます。

于 2011-12-30T08:42:48.370 に答える