diff --git a/public/_player/videojs/player.html b/public/_player/videojs/player.html
index 5159ae9..8cc4a33 100644
--- a/public/_player/videojs/player.html
+++ b/public/_player/videojs/player.html
@@ -23,7 +23,7 @@
{{/if}}
-
+
diff --git a/src/utils/restreamer.js b/src/utils/restreamer.js
index c9a6e10..341507a 100644
--- a/src/utils/restreamer.js
+++ b/src/utils/restreamer.js
@@ -2259,9 +2259,12 @@ class Restreamer {
async UpdatePlayerConfig(channelid, metadata) {
metadata.player = this.InitPlayerSettings(metadata.player);
+ // use h264 preview stream if enabled
+ const channel_id_h264 = metadata.control.preview?.enable ? `${channelid}_h264`: channelid
+
const playerConfig = {
...metadata.player,
- source: this.GetChannelManifestPath(channelid, metadata.control.hls.storage),
+ source: this.GetChannelManifestPath(channel_id_h264, metadata.control.hls.storage),
poster: this.GetChannelPosterPath(channelid, metadata.control.hls.storage),
license: {
license: metadata.license,
diff --git a/src/views/Publication/Player.js b/src/views/Publication/Player.js
index 7281652..90e319a 100644
--- a/src/views/Publication/Player.js
+++ b/src/views/Publication/Player.js
@@ -336,6 +336,7 @@ export default function Edit({ restreamer = null }) {
const storage = $metadata.control.hls.storage;
const manifest = restreamer.GetChannelAddress('hls+' + storage, _channelid);
+ const manifest_preview = restreamer.GetChannelAddress('hls+' + storage, `${_channelid}_h264`);
const poster = $settings.poster ? prepareUrl($settings.poster) : restreamer.GetChannelAddress('snapshot+' + storage, _channelid);
const playerAddress = restreamer.GetPublicAddress('player', _channelid);
const iframeCode = restreamer.GetPublicIframeCode(_channelid);
@@ -361,7 +362,7 @@ export default function Edit({ restreamer = null }) {