23

jQuery で html5 オーディオ タグを使用し、サポートされていないブラウザー用のフラッシュ フォールバックを備えた jPlayer を使用して、インターネット ラジオ ストリーマーを開発しました。iPhone (iOS 5.0.1) でプレーヤーをテストしたところ、非常に独特な問題が発生しました。

iPhone が WiFi に接続されている場合、HE-AAC V2 ストリーム @ 64kbps 44.1kHz (Apple 製品に推奨されるコーデック) を使用して完全にストリーミングします。ただし、iPhone が 3G モバイル ネットワークに接続されている場合、1 ~ 2 分ごとに 1 ~ 2 秒間ストリーミングが途切れるか停止します (ストリーミングが完全に停止するわけではありません)。問題は、iPhone が同じビット レートで別の MP3 ストリームを使用することを余儀なくされた場合です。iPhone にはこの問題はなく、3G で非常にうまく動作します。

更新 5

最近、3G/4G Sprint モバイル ホットスポット デバイスを入手し、そのデバイスでこの問題をテストしました。iPhone がモバイル ホットスポットに接続されている場合、Wi-Fi デバイスに接続されているように表示され、実際の接続が 3G/4G 経由であっても問題は発生しません。これは、iPhone が HTTP ライブ ストリーミング経由で HE-AAC を処理せず、モバイル ネットワークに直接接続されている場合の問題を示している可能性があります。

更新 4

iPhone を iOS 5.1 に更新しましたが、問題は解決しません。

更新 3

SO モバイル ネットワークに接続したときにスクリプトが正しくレンダリングされないというさまざまな問題については、こちらをお読みください。指は、たとえば画像のダウンサイジングなど、ウェブページを提供するためにプロキシを挿入している可能性のあるモバイル ネットワーク キャリアを指しているようです。また、一部の JavaScript ページを挿入する可能性があります。テストページはこちら 注: このページは HE-AAC を使用しているため、iPhone でのみ動作します...

アップデート

iOS デバイス用の Apple の HTTP ライブ ストリーミング ドキュメントによると、「オーディオのみのコンテンツは、MPEG-2 トランスポートまたは MPEG 基本オーディオ ストリームのいずれかであり、ADTS ヘッダーを含む AAC 形式または MP3 形式のいずれかです。」私たちの音楽サーバーは、OddcastV3 エンコーダーを使用して、3 つのストリーム (MP3、HE-AAC V2、および Oggvorbis) を icecastV2 サーバーに送信します。エンコーダーが HE-AAC V2 ストリームの ADTS ヘッダーを挿入しているかどうかは不明です。これを確認する方法はありますか?

4

2 に答える 2

1

ラジオ企画の観点から - ここに私の2セントがあります:

あなたが説明していることは、帯域幅シェーピングのように聞こえます-これは、無線ネットワーク(3Gネットワ​​ークなど)の一般的でしばしば必要な設計です。私が働いていたほとんどの 3G オペレーターでは、ネットワークを最適化して高速バースト (画像のダウンロード、1 通の電子メールの送信、1 通の HTML ページの取得を考えてみてください) を「長時間実行」の高帯域幅サービスで実現していました。これは、ほとんどのユーザーがこれを望んでいる/必要としているという単純な事実によるものです。

このシェーピングは、一般的な 3GPP (GSM 3G) ネットワークで、最初に 384kbit をサポートする RAB (無線アクセス ベアラー) を取得し、デバイスがそれを受け入れる限りダウングレードされるという結果になる可能性があります。これは、通常、384 -> 256 -> 128 から 64kbit に切り替わり、デバイスがゆっくりとデータを受信し始め、ネットワークがそれをアップグレードし、しばらくしてから再びダウングレードすることを意味します。

では、なぜ MP3 ファイルが途切れないのでしょうか? 私の推測では、総 kbit レートが異なる可能性があるため、64kbit RAB で問題ありません。これはよくある現象です。

于 2012-07-01T19:08:52.847 に答える
0

まったく同じことが機能するようになりました。モバイルデバイス上の64kビットAAC-v2。私たちはファイルをストリーミングしており、安定したストリームではありません。ネットワークがトラフィックをバーストに優先させる方法を説明するとき、マグナスは正しいと思います。つまり、ファイルの大部分がすぐにあり、プレーヤーは次のときまで再生を続けることができます。バーストが発生します。これは、次のバーストが発生するまでストリームが一時停止することを意味します。

ストリーミングでより大きなチャンク(より大きなバッファー)に切り替えることができるか、代わりにファイル全体をストリーミングできるかどうか。

iOSで非常に奇妙な現象が発生しました。iOSでストリーミングできるようにするには、すべてのファイルの名前を.m4aから.aacに変更する必要がありました。名前を変更しなかった場合、iOSはそれらを再生しません。

幸運を。

于 2012-07-15T06:00:17.370 に答える