Wowza Media Serverを使ったのでメモですですです。
※完全に解決はできていない...(   )

目的

とりあえず、以下の端末で再生させる事を目標に頑張りました。

iOS端末
1. iPhone
2. iPad
3. iPod

Android端末
1. Android 4.0以降

iOSの場合

iOS系端末では、HLS(Http Live Streaming)が利用でき、音声ファイルも mp3,AAC(m4a)に対応しているので、ただ audioタグを書くだけ。

<audio controls>
    <source type="audio/mpeg" src="http://fuga.com:1935/vod/_definst_/mp3:hogehoge.mp3/playlist.m3u8">
</audio>

Androidの場合

問題はAndroid...

Android 4.0 以前は、Flash Playerがインストールされているため、HLSを使わず FlashでRTMPでストリーミングが行えました。 が、4.0では Flash Playerがインストールされておらず、2012年8月以降Google Play上での配布も停止しているため、Flashが使えません。

そこで、Android 4.0から正式に対応したとされるHLSを使いストリーミング再生を試みました。

試練 1

Androidは HLSを使ってmp3を再生する事ができない!!!

試練 2

Androidは HLSを使ってAAC(m4a)を再生する事ができない!!!!!!

......

ここで行き詰まりかけたのですが、Wowzaのフォーラムを漁る事で解決方法を発見。

Androidでは mp4(動画)であれば、HLSを使い再生する事が可能との事。そして、audioタグのtype属性には video/mp4 のように動画のマイムタイプも指定できるではありませんか!!

<audio controls>
    <source type="video/mp4" src="http://fuga.com:1935/vod/_definst_/mp4:test_media/v01_mp3.mp4/playlist.m3u8">
</audio>

↑これ↑で無事、再生できました。

ただ、端末により再生できない場合があるようなので、最悪 RTSP を使い動画プレイヤーでの再生を行う事で対応するしかないかもです...。

また、RTSPを利用する場合も mp3 は対応していないため、AAC(m4a)などの音声ファイルを用意する必要があります。

まとめなど

・iOSは mp3, AAC(m4a), mp4 などでHLSによるストリーミングが可能
・iOS4系では audioタグで動画を再生するとかわいそうな事になる
・Androidは mp4 のみ HLSに対応(..?)
・一部端末では動作しないもよう
・最悪、RTSP を使う(AAC=m4aを利用)
・Audioタグで mp4 を再生できる(type="video/mp4")

おまけメモ

ffmpeg で mp3 を mp4 に変換する

用意するもの

・動画の背景にする画像 (blank.jp)
・音声ファイル (mp3 or m4a)

$ ffmpeg -loop 1 -shortest -i blank.jpg -i sample.mp3 -acodec copy -vcodec libx264 sample.mp4

最後に