Windows WSL で Ubuntu 20 に ffmpeg をインストールして H264 RTSP ストリームを HLS 変換して Web 表示するメモ
Windows WSL で Ubuntu 20 に ffmpeg をインストールして H264 RTSP ストリームを HLS 変換して Web 表示するメモです。
ffmpeg のインストール

Ubuntu 20.04.6 でした。
Ubuntu 20.04 LTSにFFmpegをインストールする | ジコログ
こちらを参考にインストールしました。
sudo apt-get update
でアップデートしつつ、
sudo apt-get -y install ffmpeg
こちらでインストール。
Download FFmpeg ここにも情報は書かれていました。

これで ffmpeg とコマンド打つと、使い方の情報が出てきます。
ローカルの H264 RTSP ストリームを HLS 変換
ローカルに H264 RTSP ストリームを出す IP カメラがあるので HLS 変換します。
ffmpeg -rtsp_transport tcp -i rtsp://:@:/stream_path \
-c:v copy \
-c:a aac \
-hls_time 2 -hls_list_size 5 -hls_flags delete_segments \
/mnt/c/workspace/ffmpeg-hls-test/public/hls/playlist.m3u8
<username>- IP カメラの認証のユーザー名
<password>- IP カメラの認証のパスワード
<ipAddress>- IP カメラの認証の IP アドレス
<port>- IP カメラの認証のポート
/stream_path- IP カメラの RTSP のパス
を IP カメラの情報に合わせてつなぎます。これを実行すると、

こんな感じでログが出て、

対象の場所にデータを貯めていきます。
HLS を Web 表示する
この格納している public/hls フォルダは Node.js Express で表示できるフォルダです。

public/index.html を以下のように記述します。
<html>
<head>
<title>Index</title>
</head>
<body>
<h1>Index</h1>
<video id="video" width="640" height="480" controls></video>
<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>
<script>
if (Hls.isSupported()) {
const video = document.getElementById('video');
const hls = new Hls();
hls.loadSource('/hls/playlist.m3u8');
hls.attachMedia(video);
}
</script>
</body>
</html>
こちらで表示してみると、

以下のように RTSP から HLS に変換した video 要素で再生できます。(めちゃくちゃ家の中の映像なのでモザイクにしてます。)