
⑩M3U8生成WebAPIの動作確認(Python/AWS Lambda)
前回の記事はこちら
はじめに
前回作成したLambda関数を実際に動かして動作を確認してみます。

動作確認を行う前に、クラウドレコーダを5分程動かして、MPEG2-TSファイルをアップロードしておいてください。
また、その録画時刻もメモしておいてください。
Lambda関数の実行
前章で作成したLambda関数は、関数URLを作成している為、通常のウェブブラウザからアクセス可能になっています。
試しに、作成された関数URLにブラウザでアクセスしてみてください。
以下のように「bad request」が返却されると思います。
{"message":"bad request"}
この関数では、/m3u8 パスに、再生開始時間(start_datetime)と再生時間(duration)の2つの引数を付けてHTTP GETアクセスすることで、指定した区間の再生を行うためのM3U8ファイルの内容を返却するように実装されています。
start_datetime
再生を開始する動画の録画開始時間を協定世界時(UTC)で指定
書式はYYYYMMDDHHMMSSの形式
duration
再生する動画の再生時間(秒)
引数は、HHTPのQueryStringとして指定しますので、アクセスするURLの書式は以下のようになります。

指定する録画開始日時は協定世界時(UTC)ですので、注意してください。
今度は以下のようなURLでアクセスしてみてください。
https://5c2h7ixxxxxjfozx.lambda-url.ap-northeast-1.on.aws/m3u8?start_datetime=20230630173400&duration=120
指定した時間のMPEG2-TSファイルが存在する場合は、m3u8ファイルがダウンロード(ブラウザによっては表示)されます。
ちなみに、指定した時間に録画したMPEG2-TSファイルが存在しない場合は、以下のような返却になります。
{"message":"There is no movie!"}
VLC Media Playerで再生確認
Lambda関数が正しく動いていることが確認出来たら、今度は実際にHLSとして再生させてみます。
再生プレイヤーには、HLSの再生に対応している、VLC Media Playerを使用します。
ダウンロードしてインストールしたら、VLC Media Playerを起動、
「メディア」-「ネットワークストリームを開く」を選択して、ネットワークURの入力欄に、M3U8を返却するLambda関数のURLを入力してください
https://5c2h7ixxxxxjfozx.lambda-url.ap-northeast-1.on.aws/m3u8?start_datetime=20230630173400&duration=120

再生を押して正常に動画が再生されれば、完成です!
これで、VLC Playerでの再生は可能になりましたが、毎回アプリを起動し、URLを入力して再生するのは大変です。
そこで、以降の記事では、ブラウザ上で録画した動画を再生できるようにしていきます。