Save all current changes: video profile, player fixes, and compatibility improvements
This commit is contained in:
Binary file not shown.
@@ -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.
|
||||
|
||||
@@ -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))
|
||||
|
||||
|
||||
BIN
signage_player/static_data/media/Banner_poarta_2_x6.jpg
Normal file
BIN
signage_player/static_data/media/Banner_poarta_2_x6.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 848 KiB |
Binary file not shown.
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 |
BIN
signage_player/static_data/media/start_page.jpeg
Normal file
BIN
signage_player/static_data/media/start_page.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 737 KiB |
@@ -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
|
||||
}
|
||||
25
signage_player/static_data/playlist/server_playlist_v5.json
Normal file
25
signage_player/static_data/playlist/server_playlist_v5.json
Normal 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
11
video_profile.txt
Normal 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
|
||||
Reference in New Issue
Block a user