Save all current changes: video profile, player fixes, and compatibility improvements

This commit is contained in:
2025-08-25 21:48:58 +03:00
parent f77f717af9
commit f4c73b54f7
12 changed files with 136 additions and 23 deletions

View File

@@ -251,3 +251,75 @@
[INFO] [SignageApp] Successfully downloaded start_page.jpeg to /home/pi/Desktop/tkinter_player/signage_player/static_data/media/start_page.jpeg
[INFO] [SignageApp] Preparing to download Big_Buck_Bunny_1080_10s_30MB.mp4 from http://digi-signage.moto-adv.com/media/Big_Buck_Bunny_1080_10s_30MB.mp4...
[INFO] [SignageApp] Successfully downloaded Big_Buck_Bunny_1080_10s_30MB.mp4 to /home/pi/Desktop/tkinter_player/signage_player/static_data/media/Big_Buck_Bunny_1080_10s_30MB.mp4
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$AR3TdZUp40MEqohrAIhp1uYvye7mp/.5t26NJXF8jYcracIOhb4KS', 'playlist': [{'duration': 15, 'file_name': 'cropped-cropped-main-picture-scaled-1.jpeg', 'url': 'http://digi-signage.moto-adv.com/media/cropped-cropped-main-picture-scaled-1.jpeg'}, {'duration': 15, 'file_name': 'start_page.jpeg', 'url': 'http://digi-signage.moto-adv.com/media/start_page.jpeg'}, {'duration': 10, 'file_name': 'Big_Buck_Bunny_1080_10s_30MB.mp4', 'url': 'http://digi-signage.moto-adv.com/media/Big_Buck_Bunny_1080_10s_30MB.mp4'}, {'duration': 10, 'file_name': 'Banner_poarta_2_x6.jpg', 'url': 'http://digi-signage.moto-adv.com/media/Banner_poarta_2_x6.jpg'}], 'playlist_version': 4}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] Local playlist version: 0, Server playlist version: 4
[INFO] [SignageApp] Preparing to download cropped-cropped-main-picture-scaled-1.jpeg from http://digi-signage.moto-adv.com/media/cropped-cropped-main-picture-scaled-1.jpeg...
[INFO] [SignageApp] Successfully downloaded cropped-cropped-main-picture-scaled-1.jpeg to /home/pi/Desktop/tkinter_player/signage_player/static_data/media/cropped-cropped-main-picture-scaled-1.jpeg
[INFO] [SignageApp] Preparing to download start_page.jpeg from http://digi-signage.moto-adv.com/media/start_page.jpeg...
[INFO] [SignageApp] Successfully downloaded start_page.jpeg to /home/pi/Desktop/tkinter_player/signage_player/static_data/media/start_page.jpeg
[INFO] [SignageApp] Preparing to download Big_Buck_Bunny_1080_10s_30MB.mp4 from http://digi-signage.moto-adv.com/media/Big_Buck_Bunny_1080_10s_30MB.mp4...
[INFO] [SignageApp] Successfully downloaded Big_Buck_Bunny_1080_10s_30MB.mp4 to /home/pi/Desktop/tkinter_player/signage_player/static_data/media/Big_Buck_Bunny_1080_10s_30MB.mp4
[INFO] [SignageApp] Preparing to download Banner_poarta_2_x6.jpg from http://digi-signage.moto-adv.com/media/Banner_poarta_2_x6.jpg...
[INFO] [SignageApp] Successfully downloaded Banner_poarta_2_x6.jpg to /home/pi/Desktop/tkinter_player/signage_player/static_data/media/Banner_poarta_2_x6.jpg
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$AR3TdZUp40MEqohrAIhp1uYvye7mp/.5t26NJXF8jYcracIOhb4KS', 'playlist': [{'duration': 15, 'file_name': 'cropped-cropped-main-picture-scaled-1.jpeg', 'url': 'http://digi-signage.moto-adv.com/media/cropped-cropped-main-picture-scaled-1.jpeg'}, {'duration': 15, 'file_name': 'start_page.jpeg', 'url': 'http://digi-signage.moto-adv.com/media/start_page.jpeg'}, {'duration': 10, 'file_name': 'Big_Buck_Bunny_1080_10s_30MB.mp4', 'url': 'http://digi-signage.moto-adv.com/media/Big_Buck_Bunny_1080_10s_30MB.mp4'}, {'duration': 10, 'file_name': 'Banner_poarta_2_x6.jpg', 'url': 'http://digi-signage.moto-adv.com/media/Banner_poarta_2_x6.jpg'}], 'playlist_version': 4}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] Local playlist version: 0, Server playlist version: 4
[INFO] [SignageApp] Preparing to download cropped-cropped-main-picture-scaled-1.jpeg from http://digi-signage.moto-adv.com/media/cropped-cropped-main-picture-scaled-1.jpeg...
[INFO] [SignageApp] File cropped-cropped-main-picture-scaled-1.jpeg already exists. Skipping download.
[INFO] [SignageApp] Preparing to download start_page.jpeg from http://digi-signage.moto-adv.com/media/start_page.jpeg...
[INFO] [SignageApp] File start_page.jpeg already exists. Skipping download.
[INFO] [SignageApp] Preparing to download Big_Buck_Bunny_1080_10s_30MB.mp4 from http://digi-signage.moto-adv.com/media/Big_Buck_Bunny_1080_10s_30MB.mp4...
[INFO] [SignageApp] File Big_Buck_Bunny_1080_10s_30MB.mp4 already exists. Skipping download.
[INFO] [SignageApp] Preparing to download Banner_poarta_2_x6.jpg from http://digi-signage.moto-adv.com/media/Banner_poarta_2_x6.jpg...
[INFO] [SignageApp] File Banner_poarta_2_x6.jpg already exists. Skipping download.
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$AR3TdZUp40MEqohrAIhp1uYvye7mp/.5t26NJXF8jYcracIOhb4KS', 'playlist': [{'duration': 15, 'file_name': 'cropped-cropped-main-picture-scaled-1.jpeg', 'url': 'http://digi-signage.moto-adv.com/media/cropped-cropped-main-picture-scaled-1.jpeg'}, {'duration': 15, 'file_name': 'start_page.jpeg', 'url': 'http://digi-signage.moto-adv.com/media/start_page.jpeg'}, {'duration': 10, 'file_name': 'Big_Buck_Bunny_1080_10s_30MB.mp4', 'url': 'http://digi-signage.moto-adv.com/media/Big_Buck_Bunny_1080_10s_30MB.mp4'}, {'duration': 10, 'file_name': 'Banner_poarta_2_x6.jpg', 'url': 'http://digi-signage.moto-adv.com/media/Banner_poarta_2_x6.jpg'}], 'playlist_version': 4}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] Local playlist version: 0, Server playlist version: 4
[INFO] [SignageApp] Preparing to download cropped-cropped-main-picture-scaled-1.jpeg from http://digi-signage.moto-adv.com/media/cropped-cropped-main-picture-scaled-1.jpeg...
[INFO] [SignageApp] File cropped-cropped-main-picture-scaled-1.jpeg already exists. Skipping download.
[INFO] [SignageApp] Preparing to download start_page.jpeg from http://digi-signage.moto-adv.com/media/start_page.jpeg...
[INFO] [SignageApp] File start_page.jpeg already exists. Skipping download.
[INFO] [SignageApp] Preparing to download Big_Buck_Bunny_1080_10s_30MB.mp4 from http://digi-signage.moto-adv.com/media/Big_Buck_Bunny_1080_10s_30MB.mp4...
[INFO] [SignageApp] File Big_Buck_Bunny_1080_10s_30MB.mp4 already exists. Skipping download.
[INFO] [SignageApp] Preparing to download Banner_poarta_2_x6.jpg from http://digi-signage.moto-adv.com/media/Banner_poarta_2_x6.jpg...
[INFO] [SignageApp] File Banner_poarta_2_x6.jpg already exists. Skipping download.
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$AR3TdZUp40MEqohrAIhp1uYvye7mp/.5t26NJXF8jYcracIOhb4KS', 'playlist': [{'duration': 15, 'file_name': 'cropped-cropped-main-picture-scaled-1.jpeg', 'url': 'http://digi-signage.moto-adv.com/media/cropped-cropped-main-picture-scaled-1.jpeg'}, {'duration': 15, 'file_name': 'start_page.jpeg', 'url': 'http://digi-signage.moto-adv.com/media/start_page.jpeg'}, {'duration': 10, 'file_name': 'Banner_poarta_2_x6.jpg', 'url': 'http://digi-signage.moto-adv.com/media/Banner_poarta_2_x6.jpg'}, {'duration': 101, 'file_name': 'WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4', 'url': 'http://digi-signage.moto-adv.com/media/WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] Local playlist version: 0, Server playlist version: 5
[INFO] [SignageApp] Preparing to download cropped-cropped-main-picture-scaled-1.jpeg from http://digi-signage.moto-adv.com/media/cropped-cropped-main-picture-scaled-1.jpeg...
[INFO] [SignageApp] File cropped-cropped-main-picture-scaled-1.jpeg already exists. Skipping download.
[INFO] [SignageApp] Preparing to download start_page.jpeg from http://digi-signage.moto-adv.com/media/start_page.jpeg...
[INFO] [SignageApp] File start_page.jpeg already exists. Skipping download.
[INFO] [SignageApp] Preparing to download Banner_poarta_2_x6.jpg from http://digi-signage.moto-adv.com/media/Banner_poarta_2_x6.jpg...
[INFO] [SignageApp] File Banner_poarta_2_x6.jpg already exists. Skipping download.
[INFO] [SignageApp] Preparing to download WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4 from http://digi-signage.moto-adv.com/media/WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4...
[INFO] [SignageApp] Successfully downloaded WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4 to /home/pi/Desktop/tkinter_player/signage_player/static_data/media/WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$AR3TdZUp40MEqohrAIhp1uYvye7mp/.5t26NJXF8jYcracIOhb4KS', 'playlist': [{'duration': 15, 'file_name': 'cropped-cropped-main-picture-scaled-1.jpeg', 'url': 'http://digi-signage.moto-adv.com/media/cropped-cropped-main-picture-scaled-1.jpeg'}, {'duration': 15, 'file_name': 'start_page.jpeg', 'url': 'http://digi-signage.moto-adv.com/media/start_page.jpeg'}, {'duration': 10, 'file_name': 'Banner_poarta_2_x6.jpg', 'url': 'http://digi-signage.moto-adv.com/media/Banner_poarta_2_x6.jpg'}, {'duration': 101, 'file_name': 'WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4', 'url': 'http://digi-signage.moto-adv.com/media/WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] Local playlist version: 0, Server playlist version: 5
[INFO] [SignageApp] Preparing to download cropped-cropped-main-picture-scaled-1.jpeg from http://digi-signage.moto-adv.com/media/cropped-cropped-main-picture-scaled-1.jpeg...
[INFO] [SignageApp] File cropped-cropped-main-picture-scaled-1.jpeg already exists. Skipping download.
[INFO] [SignageApp] Preparing to download start_page.jpeg from http://digi-signage.moto-adv.com/media/start_page.jpeg...
[INFO] [SignageApp] File start_page.jpeg already exists. Skipping download.
[INFO] [SignageApp] Preparing to download Banner_poarta_2_x6.jpg from http://digi-signage.moto-adv.com/media/Banner_poarta_2_x6.jpg...
[INFO] [SignageApp] File Banner_poarta_2_x6.jpg already exists. Skipping download.
[INFO] [SignageApp] Preparing to download WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4 from http://digi-signage.moto-adv.com/media/WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4...
[INFO] [SignageApp] File WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4 already exists. Skipping download.
[INFO] [SignageApp] Fetching playlist from URL: http://digi-signage.moto-adv.com/api/playlists with params: {'hostname': 'tv-terasa', 'quickconnect_code': '8887779'}
[INFO] [SignageApp] Server response: {'hashed_quickconnect': '$2b$12$AR3TdZUp40MEqohrAIhp1uYvye7mp/.5t26NJXF8jYcracIOhb4KS', 'playlist': [{'duration': 15, 'file_name': 'cropped-cropped-main-picture-scaled-1.jpeg', 'url': 'http://digi-signage.moto-adv.com/media/cropped-cropped-main-picture-scaled-1.jpeg'}, {'duration': 15, 'file_name': 'start_page.jpeg', 'url': 'http://digi-signage.moto-adv.com/media/start_page.jpeg'}, {'duration': 10, 'file_name': 'Banner_poarta_2_x6.jpg', 'url': 'http://digi-signage.moto-adv.com/media/Banner_poarta_2_x6.jpg'}, {'duration': 101, 'file_name': 'WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4', 'url': 'http://digi-signage.moto-adv.com/media/WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4'}], 'playlist_version': 5}
[INFO] [SignageApp] Fetched updated playlist from server.
[INFO] [SignageApp] Local playlist version: 0, Server playlist version: 5
[INFO] [SignageApp] Preparing to download cropped-cropped-main-picture-scaled-1.jpeg from http://digi-signage.moto-adv.com/media/cropped-cropped-main-picture-scaled-1.jpeg...
[INFO] [SignageApp] File cropped-cropped-main-picture-scaled-1.jpeg already exists. Skipping download.
[INFO] [SignageApp] Preparing to download start_page.jpeg from http://digi-signage.moto-adv.com/media/start_page.jpeg...
[INFO] [SignageApp] File start_page.jpeg already exists. Skipping download.
[INFO] [SignageApp] Preparing to download Banner_poarta_2_x6.jpg from http://digi-signage.moto-adv.com/media/Banner_poarta_2_x6.jpg...
[INFO] [SignageApp] File Banner_poarta_2_x6.jpg already exists. Skipping download.
[INFO] [SignageApp] Preparing to download WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4 from http://digi-signage.moto-adv.com/media/WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4...
[INFO] [SignageApp] File WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4 already exists. Skipping download.

View File

@@ -3,6 +3,8 @@ import json
import tkinter as tk
from PIL import Image, ImageTk
import vlc
import subprocess
import sys
CONFIG_PATH = os.path.join(os.path.dirname(__file__), 'main_data', 'app_config.txt')
PLAYLIST_DIR = os.path.join(os.path.dirname(__file__), 'static_data', 'playlist')
@@ -158,7 +160,7 @@ class SimpleTkPlayer:
self.video_canvas.pack(fill=tk.BOTH, expand=True)
self.root.attributes('-fullscreen', True)
self.root.update_idletasks()
self.vlc_instance = vlc.Instance()
self.vlc_instance = vlc.Instance('--vout=x11')
self.vlc_player = self.vlc_instance.media_player_new()
self.vlc_player.set_mrl(file_path)
self.vlc_player.set_fullscreen(True)
@@ -236,16 +238,39 @@ class SimpleTkPlayer:
if self.paused is not True:
self.paused = True
self.pause_btn.config(text='▶ Resume')
import subprocess, sys
# Explicitly pause VLC video if playing
if hasattr(self, 'vlc_player') and self.vlc_player:
try:
self.vlc_player.pause()
except Exception:
pass
# Destroy controls overlay so settings window is always interactive
if hasattr(self, 'controls_win') and self.controls_win:
self.controls_win.destroy()
self.controls_win = None
settings_path = os.path.join(os.path.dirname(__file__), 'appsettings.py')
# Open settings in a new process so it doesn't block the main player
proc = subprocess.Popen([sys.executable, settings_path])
proc = subprocess.Popen([sys.executable, settings_path], close_fds=True)
# Give the window manager a moment to focus the new window
self.root.after(300, lambda: self.root.focus_force())
# Wait for the settings window to close, then resume
self.root.after(1000, lambda: self.check_settings_closed(proc))
def check_settings_closed(self, proc):
if proc.poll() is not None:
# Resume playback and unpause VLC if needed
self.resume_play()
# Restore and recreate controls overlay
self.root.deiconify()
self.create_controls()
self.show_controls()
if hasattr(self, 'vlc_player') and self.vlc_player:
try:
# Only resume if it was paused by us
if self.vlc_player.get_state() == vlc.State.Paused:
self.vlc_player.play()
except Exception:
pass
else:
self.root.after(1000, lambda: self.check_settings_closed(proc))

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 537 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 737 KiB

View File

@@ -1,20 +0,0 @@
{
"playlist": [
{
"file_name": "big-buck-bunny-1080p-60fps-30sec.mp4",
"url": "media/big-buck-bunny-1080p-60fps-30sec.mp4",
"duration": 30
},
{
"file_name": "call-of-duty-black-3840x2160-23674.jpg",
"url": "media/call-of-duty-black-3840x2160-23674.jpg",
"duration": 10
},
{
"file_name": "demo2.jpeg",
"url": "media/demo2.jpeg",
"duration": 10
}
],
"version": 4
}

View File

@@ -0,0 +1,25 @@
{
"playlist": [
{
"file_name": "cropped-cropped-main-picture-scaled-1.jpeg",
"url": "media/cropped-cropped-main-picture-scaled-1.jpeg",
"duration": 15
},
{
"file_name": "start_page.jpeg",
"url": "media/start_page.jpeg",
"duration": 15
},
{
"file_name": "Banner_poarta_2_x6.jpg",
"url": "media/Banner_poarta_2_x6.jpg",
"duration": 10
},
{
"file_name": "WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4",
"url": "media/WhatsApp_Video_2025-08-21_at_18.34.19_86a6f243.mp4",
"duration": 101
}
],
"version": 5
}

11
video_profile.txt Normal file
View File

@@ -0,0 +1,11 @@
Video Profile for Player Compatibility (based on intro1.mp4)
Codec: H.264
Profile: Main
Resolution: 1920x1080
Bitrate: ~14,700 kbps
Framerate: 29.97 fps
Recommended ffmpeg conversion command:
ffmpeg -i input.mp4 -c:v libx264 -profile:v main -b:v 14700k -vf "scale=1920:1080,fps=29.97" -c:a copy output_normalized.mp4