Bezeichnung
hls - Konvertiert ein Video in einen geschützten Stream
Übersicht
hls Video
Beschreibung
AES-verschlüsseltes HTTP Live Streaming (HLS)
Abhängigkeiten
ffmpeg
1
2
3
4
5
|
#!/bin/bash
ffmpeg -hide_banner -y -i "${1}" \
-vf scale=w=640:h=360:force_original_aspect_ratio=decrease -c:a aac -b:a 128k -ac 2 -c:v h264 -preset medium -sc_threshold 0 -profile:v main -pix_fmt yuv420p -crf 20 -f hls -hls_time 6 -hls_enc 1 -hls_playlist_type vod -hls_segment_filename 360p_%03d.ts 360p.m3u8 \
-vf scale=w=1280:h=720:force_original_aspect_ratio=decrease -c:a aac -b:a 128k -ac 2 -c:v h264 -preset medium -sc_threshold 0 -profile:v main -pix_fmt yuv420p -crf 20 -f hls -hls_time 6 -hls_enc 1 -hls_playlist_type vod -hls_segment_filename 720p_%03d.ts 720p.m3u8 \
-vf scale=w=1920:h=1080:force_original_aspect_ratio=decrease -c:a aac -b:a 192k -ac 2 -c:v h264 -preset medium -sc_threshold 0 -profile:v main -pix_fmt yuv420p -crf 20 -f hls -hls_time 6 -hls_enc 1 -hls_playlist_type vod -hls_segment_filename 1080p_%03d.ts 1080p.m3u8;
|
Webseite
Abhängigkeiten
hls.js
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<!DOCTYPE html>
<html>
<head>
<title>AES-verschlüsselter HLS-Stream</title>
<script src="hls.js"></script>
</head>
<body>
<center>
<p><video id="video" width="600px" src="index.m3u8" type="application/x-mpegURL" controls></video></p>
</center>
<script src="stream.js"></script>
</body>
</html>
|
1
2
3
4
5
6
7
8
9
10
|
var video = document.getElementById('video');
var videoSrc = "index.m3u8";
if (Hls.isSupported()) {
var hls = new Hls();
hls.loadSource(videoSrc);
hls.attachMedia(video);
}
else if (video.canPlayType('application/vnd.apple.mpegurl')) {
video.src = videoSrc;
}
|
1
2
3
4
5
6
7
8
|
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=1500000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
360p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3000000,RESOLUTION=1280x720,CODECS="avc1.42e00a,mp4a.40.2"
720p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6000000,RESOLUTION=1920x1080,CODECS="avc1.42e00a,mp4a.40.2"
1080p.m3u8
|
Demo