MPEG4-ALSとは何かについてはこちらをご参照ください。
とりあえずハイレゾのストリーミングには「MPEG4-ALS」というコーデックが適しているそうなので実際に試してみました。
自社ストアでハイレゾ音源をダウンロード
ハイレゾ音源を購入&ダウンロードします。
自社ストアでダウンロードした音源のファイル形式はFLACでした。
VLC Media Playerをインストール
便利な音楽プレイヤー「VLC Media Player」をインストールします。
Macの方は以下からダウンロードできます。
http://www.videolan.org/vlc/index.ja.html
ファイルを読み込むと音源のコーデックなどを確認できます。
ffmpegでFLACをPCMに変換
MPEG4-ALSのコンバータがFLACに対応していないのでffmpegでWAV(PCM)に変換します。
Macの方は以下のコマンドでインストールできます。
brew install ffmpeg |
以下のコマンドでFLACをWAVに変換します。
ffmpeg -i Stealth.flac -acodec pcm_s24le Stealth.wav |
VLC Media Playerで確認するとコーデックがPCMになっています。
mp4alsRM23でWAVをMPEG4-ALSに変換
MPEG4-ALSのコンバータはこちらのサイトから入手できます。
Windowsの場合はexeが用意されているのでこちらのリンクからダウンロードします。
MPEG-4 ALS codec for Windows - mp4alsRM23.exe (ZIP, 212,3 KB)
Mac/Linuxの場合は以下からソースをダウンロードしてmakeします。
MPEG-4 ALS Reference Software Archive - RM23 (ZIP, 336,8 KB)
unzip mp4alsRM23.zip cd mp4alsRM23 make |
成功すると
mp4alsRM23/bin/mac/mp4alsRM23 に成果物ができます。
以下のコマンドで先ほど作成したWAVをMPEG4-ALSに変換します。
./mp4alsRM23/bin/mac/mp4alsRM23 –v –e -MP4 -r-1 -s2 -a -o15 -n256 "Stealth.wav" |
成功すると .wav と同じディレクトリに .mp4 が作成されます。
これでFLACからMPEG4-ALSの音源を作ることができました。
MP4Boxでストリーミング用のファイルに変換
MP4boxはmp4のAudio/Videoを操作するツールです。
Macの場合は以下でインストールできます。
brew install mp4box |
MP4Boxを使用して500ms毎のチャンクに分割します。
(この作業はなくてもストリーミング再生できるみたいですが一応)
mp4box -inter 500 Stealth.mp4 -out Stealth_.mp4 |
ここまで作成したファイルサイズを確認してみると以下のようになりました。
PCMはファイルサイズが非常に大きくなっていますがFLACとMPEG4-ALSはほぼ同じサイズのようです。
VLC Media Playerで再生
先ほど生成したストリーミング用のmp4ファイルをWebサーバなどに配置して、
「ファイル > ネットワークを開く」から
.mp4 ファイルのURLを指定すると再生できます。
まとめ
今回はFLACからMPEG4-ALSを使用してハイレゾ音源のストリーミングを試してみました。
MP4Boxを使用してMPEG-DASH形式にすることで動画にハイレゾ音源を組み合わせて、
動画のストリーミング配信を行うこともできるのでハイレゾのMVなどはすぐに作れそうです。
こちらのサービスはMPEG-DASHでのライブ配信に対応しているそうですが、
MPEG-DASHは回線速度に応じてチャネルを切り替えるAdaptive BItrate Streamingにも対応しているので、回線が遅い時は通常音源で速度が速い時はハイレゾ音源に切り替えるなどの応用もできるのではないかなと思います。
参考資料
この記事を書いた人
最近書いた記事
- 2021.12.10React NativeでWallet風UIを実装する
- 2018.11.19Elasticsearchで簡単な検索とscoreを調整する方法
- 2018.10.05ECSをEC2からFargateに切り替える際の注意点
- 2018.09.12AKB48グループ映像倉庫のWeb版をリリースしました