Raspberry pi och power point slide show

Permalänk

Raspberry pi och power point slide show

Hej.

På jobbet tänkte vi köra några slides med power point dokument på en tv. Har sökt lite på google men inte hittat något direkt program för detta. Någon hade skrivit använd skärmsläckaren men det är jag inte ute efter. Min tanke är att ha något program som man kan bestämma vilken fil som kommer först och begränsa antalet filer m.m. Antingen kunna skicka filerna till raspberry pi:n via nätverket eller kunna använda ett usb-minne.
Någon som har tips och idéer ?
Väldigt tacksam för svar

/Force

Permalänk
Rekordmedlem
Skrivet av forcevision:

Hej.

På jobbet tänkte vi köra några slides med power point dokument på en tv. Har sökt lite på google men inte hittat något direkt program för detta. Någon hade skrivit använd skärmsläckaren men det är jag inte ute efter. Min tanke är att ha något program som man kan bestämma vilken fil som kommer först och begränsa antalet filer m.m. Antingen kunna skicka filerna till raspberry pi:n via nätverket eller kunna använda ett usb-minne.
Någon som har tips och idéer ?
Väldigt tacksam för svar

/Force

Libre office ? Impress är ju motsvarigheten i Linux.

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Medlem

Libre office opensource officepaket, kanske till och med förljer med i raspbian.

Permalänk

Okej men min fråga är nu då Libre office detta skall köras på en tv sliden. Det är ingen som kommer att starta sliden utan den måste köras så fort det finns filer att visas. Jag fattade det som att Libre office går man in manuellt och klickar på typ kör bildspel så startas det men det funkar inte här utan finns det filer på usb-minnet så körs bildspelet automatiskt finns inga filer eller usb-minne ikopplat så står det tex bildspel saknas.
Det får inte vara manuell start av bildspelet.

Permalänk
Rekordmedlem
Skrivet av forcevision:

Okej men min fråga är nu då Libre office detta skall köras på en tv sliden. Det är ingen som kommer att starta sliden utan den måste köras så fort det finns filer att visas. Jag fattade det som att Libre office går man in manuellt och klickar på typ kör bildspel så startas det men det funkar inte här utan finns det filer på usb-minnet så körs bildspelet automatiskt finns inga filer eller usb-minne ikopplat så står det tex bildspel saknas.
Det får inte vara manuell start av bildspelet.

Det borde gå att skriva ett script som sköter det men nu säger du bilder, är det en presentation eller bilder du vill visa eller är det kanske så att man kan preparera allt i förväg och spara som en film som spelas upp.
Kanske Pisignage är rätt om du vill ha en "skylt"
https://pisignage.com/

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Skrivet av mrqaffe:

Det borde gå att skriva ett script som sköter det men nu säger du bilder, är det en presentation eller bilder du vill visa eller är det kanske så att man kan preparera allt i förväg och spara som en film som spelas upp.
Kanske Pisignage är rätt om du vill ha en "skylt"
https://pisignage.com/

Oj ledsen, det är power point filer jag menar.

Permalänk

Okej, script. Men det finns inget program till raspberry pi som kan lösa detta alltså ?

Permalänk
Rekordmedlem
Skrivet av forcevision:

Okej, script. Men det finns inget program till raspberry pi som kan lösa detta alltså ?

Det verkar inte gå att göra det direkt från PP eftersom det använder ett proprietärt filformat.

https://blog.pisignage.com/displaying-powerpoint-in-digital-s...

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Medlem

Tror du är ute efter någon slideshow kiosk kanske? Den här hemsidan som är designad på 80-talet kanske är något på spåret https://shallowsky.com/blog/tech/raspberry-pi-kiosk.html

Permalänk
Hedersmedlem

Exportera till en mp4 från powerpoint så kommer det bli mycket enklare och se ut som du förväntar dig.

Visa signatur

Det kan aldrig bli fel med mekanisk destruktion

Permalänk
Skrivet av Aphex:

Exportera till en mp4 från powerpoint så kommer det bli mycket enklare och se ut som du förväntar dig.

Nja, presentationerna kommer ändra sig några gånger i veckan. Och exportera till mp4 blir inget bra och massa mer jobb då en slide kanske skall ändras och inte alla. Då är det enkelt att bara kunna ta bort en fil och lägga till en ny. Om det finns något bra sätt att fixa detta på då såklart.

Permalänk

kan inte bara koda en HTML sida med bara en enda stor bild slide på och bara spara varje sida som en bild?

sen kör du webläsaren i fullskärmsläge och när du uppdaterar får du VNCá in och köra en F5 i webläsaren efter du bytt ut bilderna.

Visa signatur

ASUS B550-f-Gaming, R9 5800X3D, HyperX 3200Mhz cl16 128Gb ram, rtx 3070ti.
[Lista] De bästa gratisprogrammen för Windows
[Diskussion] De bästa gratisprogrammen för Windows

Permalänk
Medlem
Skrivet av Rouge of Darkness:

kan inte bara koda en HTML sida med bara en enda stor bild slide på och bara spara varje sida som en bild?

sen kör du webläsaren i fullskärmsläge och när du uppdaterar får du VNCá in och köra en F5 i webläsaren efter du bytt ut bilderna.

Eller lägga in nått javascript som reloadar sidan en gång i timmen eller så

Visa signatur

5700x3D | RTX 2060 Super | 2 TB M.2 | 32 GB RAM | Gigabyte DS3H| 750 WATT

Permalänk
Medlem

Enda sättet att lösa det som jag kom på när jag löste det för en massa år sedan var att köra en windows server med citrix som autobootade in i en powerpoint-presentation, sedan X antal tunna klienter uppkopplade till skärmar och som auto-connectar till citrix-servern och speglar presentationen. Du ändrar på ett ställe, det reflekteras på 100 skärmar. Citrix är bandbreddseffektivt. Går köra Citrix-klient på Pi4 också.

Visa signatur

Asus B550E-Gaming / Ryzen 5900X stock / Corsair Vengeance 32GB 3600 MHz CL18 /
ASUS TUF 4080 Gaming OC / Samsung 980 PRO 2TB PCI-Ev4 + 2TB WD Black NVME PCI-Ev3 / Corsair RM850x v2 / Acer Predator XB273UGX 1440p 270 Hz G-Sync / Phantek P500A / Arctic Cooling LF II 240mm / Evo 4 / Sennheiser IE 300 / Rode NT1-A
Synology 1621+ 6*16 / 1513+ 5*8 / LG CX 65" / XBox Series X
Ownit > Bahnhof

Permalänk
Datavetare
Skrivet av forcevision:

Okej, script. Men det finns inget program till raspberry pi som kan lösa detta alltså ?

Kanske finns något program, har inte kollat.

Men är möjligt att starta LibreOffice Impress (som kan läsa Power Point filer) i fullskärmsläge från ett script

$ soffice --view <POWERPOINT_ATT_VISA>

Det som behöver till är ett script som listar alla filer i ett bibliotek och visar dem en efter en. En förutsättning är att presentationerna är konfigurerade så att de automatiskt byter slide på en timer.

Har inte tillgång till en desktop Linux tillgänglig just nu, så kan inte verifiera detaljer (men verkar fungera på MacOS).

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av Rouge of Darkness:

kan inte bara koda en HTML sida med bara en enda stor bild slide på och bara spara varje sida som en bild?

sen kör du webläsaren i fullskärmsläge och när du uppdaterar får du VNCá in och köra en F5 i webläsaren efter du bytt ut bilderna.

Jo absolut, bra ideer men dåliga i mitt ändamål. Jag har kollegor som inte kan något inom it och it-lösningar. Dom jobbar i power point och word, så det skall vara så lätt som möjligt. Då tänkte jag om det fanns program/script som man kan köra på en raspberry pi som är kopplad till en tv. Sedan kan användarna lägga till filer tex då på ett usb-minne som sedan raspberry pi:n kör program/script:et automatiskt hela tiden. Stoppa in minnet i raspberry pi:n och så startas silden.
So skrivit jag har försökt hitta lösningar på detta men inte lyckats därav vänder jag mig till er 😎

Permalänk
Skrivet av Aphex:

Exportera till en mp4 från powerpoint så kommer det bli mycket enklare och se ut som du förväntar dig.

Hmmm.... verkar vara bra, men går det att köra mp4 fil direkt från google drive och automatiskt när jag startar pi:n ?

Permalänk
Medlem
Skrivet av forcevision:

Hmmm.... verkar vara bra, men går det att köra mp4 fil direkt från google drive och automatiskt när jag startar pi:n ?

Att visa videon från Google Drive: ja.
Att starta videon automatiskt med att systemet startas från Google Drive (lokalt och inte via webbläsaren): kanske. Enligt den här guiden ska det gå att starta en video automatiskt vid systemstart, via VLC.

Visa signatur

Citera mig om du vill att jag ska hitta till ditt svar.
airikr.me /device:desktop. Andra projekt: Keizai, Koroth & Serenum.

Permalänk

Nu har jag fastnat helt med mitt python script, jag har frågat chatgpt också men den kodar på samma sätt som jag gjord och hittar inget fel i min kod. Scriptet skall ladda ner en mp4 fil till min raspberry på via google drive och med api nyckel. Och varje minut skall scriptet kolla om det kommit en nyare mp4 fil som den skall ladda ner och köra. men detta funkar inte, vad som händer om jag kör scriptet är ingenting, jag startar det i terminal när jag trycker på enter så hoppar markören ner till raden under men sedan händer inget mer. Api nyckeln stämmer och mapp id stämmer det vet jag. Någon som kan se om det är något fel i koden.
Den ser ut som följande:

import os
import time
import io
from googleapiclient.discovery import build
from googleapiclient.http import MediaIoBaseDownload

# Ersätt med din faktiska API-nyckel
api_nyckel = 'DIN_API_NYCKEL'

# Skapa en service för att interagera med Google Drive API
drive_service = build('drive', 'v3', developerKey=api_nyckel)

# ID för den delade mappen på Google Drive där dina videofiler finns
drive_folder_id = 'MAPPENS_ID'

def ladda_ner_mp4(fil_id, namn):
request = drive_service.files().get_media(fileId=fil_id)
fh = io.FileIO(namn, 'wb')
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()

def spela_upp_mp4(namn):
os.system(f"vlc --fullscreen {namn}")

def hitta_nyaste_mp4():
result = drive_service.files().list(q=f"'{drive_folder_id}' in parents",
spaces='drive',
fields='files(id, name, modifiedTime)',
orderBy='modifiedTime desc',
pageSize=1).execute()
latest_file = result.get('files', [])[0]
powerpoint_file_id = latest_file.get('id')
powerpoint_file_name = latest_file.get('name')
return powerpoint_file_id, powerpoint_file_name

senaste_fil_id, senaste_fil_namn = hitta_nyaste_mp4()

while True:
# Hitta den senaste mp4-filen
nyaste_fil_id, nyaste_fil_namn = hitta_nyaste_mp4()

# Jämför filernas datum och tid
if nyaste_fil_id != senaste_fil_id:
ladda_ner_mp4(nyaste_fil_id, nyaste_fil_namn)
spela_upp_mp4(nyaste_fil_namn)
senaste_fil_id, senaste_fil_namn = nyaste_fil_id, nyaste_fil_namn

# Vänta en minut innan nästa kontroll
time.sleep(60)

Permalänk
Medlem
Skrivet av forcevision:

Nu har jag fastnat helt med mitt python script, jag har frågat chatgpt också men den kodar på samma sätt som jag gjord och hittar inget fel i min kod. Scriptet skall ladda ner en mp4 fil till min raspberry på via google drive och med api nyckel. Och varje minut skall scriptet kolla om det kommit en nyare mp4 fil som den skall ladda ner och köra. men detta funkar inte, vad som händer om jag kör scriptet är ingenting, jag startar det i terminal när jag trycker på enter så hoppar markören ner till raden under men sedan händer inget mer. Api nyckeln stämmer och mapp id stämmer det vet jag. Någon som kan se om det är något fel i koden.
Den ser ut som följande:

import os
import time
import io
from googleapiclient.discovery import build
from googleapiclient.http import MediaIoBaseDownload

# Ersätt med din faktiska API-nyckel
api_nyckel = 'DIN_API_NYCKEL'

# Skapa en service för att interagera med Google Drive API
drive_service = build('drive', 'v3', developerKey=api_nyckel)

# ID för den delade mappen på Google Drive där dina videofiler finns
drive_folder_id = 'MAPPENS_ID'

def ladda_ner_mp4(fil_id, namn):
request = drive_service.files().get_media(fileId=fil_id)
fh = io.FileIO(namn, 'wb')
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()

def spela_upp_mp4(namn):
os.system(f"vlc --fullscreen {namn}")

def hitta_nyaste_mp4():
result = drive_service.files().list(q=f"'{drive_folder_id}' in parents",
spaces='drive',
fields='files(id, name, modifiedTime)',
orderBy='modifiedTime desc',
pageSize=1).execute()
latest_file = result.get('files', [])[0]
powerpoint_file_id = latest_file.get('id')
powerpoint_file_name = latest_file.get('name')
return powerpoint_file_id, powerpoint_file_name

senaste_fil_id, senaste_fil_namn = hitta_nyaste_mp4()

while True:
# Hitta den senaste mp4-filen
nyaste_fil_id, nyaste_fil_namn = hitta_nyaste_mp4()

# Jämför filernas datum och tid
if nyaste_fil_id != senaste_fil_id:
ladda_ner_mp4(nyaste_fil_id, nyaste_fil_namn)
spela_upp_mp4(nyaste_fil_namn)
senaste_fil_id, senaste_fil_namn = nyaste_fil_id, nyaste_fil_namn

# Vänta en minut innan nästa kontroll
time.sleep(60)

Använd kodtaggar, annars är Python hopplöst att felsöka.

[code]din kod här[/code]

Permalänk
Skrivet av Chibariku:

Använd kodtaggar, annars är Python hopplöst att felsöka.

[code]din kod här[/code]

Sorry

import os import time import io from googleapiclient.discovery import build from googleapiclient.http import MediaIoBaseDownload # Ersätt med din faktiska API-nyckel api_nyckel = 'DIN_API_NYCKEL' # Skapa en service för att interagera med Google Drive API drive_service = build('drive', 'v3', developerKey=api_nyckel) # ID för den delade mappen på Google Drive där dina videofiler finns drive_folder_id = 'MAPPENS_ID' def ladda_ner_mp4(fil_id, namn): request = drive_service.files().get_media(fileId=fil_id) fh = io.FileIO(namn, 'wb') downloader = MediaIoBaseDownload(fh, request) done = False while done is False: status, done = downloader.next_chunk() def spela_upp_mp4(namn): os.system(f"vlc --fullscreen {namn}") def hitta_nyaste_mp4(): result = drive_service.files().list(q=f"'{drive_folder_id}' in parents", spaces='drive', fields='files(id, name, modifiedTime)', orderBy='modifiedTime desc', pageSize=1).execute() latest_file = result.get('files', [])[0] powerpoint_file_id = latest_file.get('id') powerpoint_file_name = latest_file.get('name') return powerpoint_file_id, powerpoint_file_name senaste_fil_id, senaste_fil_namn = hitta_nyaste_mp4() while True: # Hitta den senaste mp4-filen nyaste_fil_id, nyaste_fil_namn = hitta_nyaste_mp4() # Jämför filernas datum och tid if nyaste_fil_id != senaste_fil_id: ladda_ner_mp4(nyaste_fil_id, nyaste_fil_namn) spela_upp_mp4(nyaste_fil_namn) senaste_fil_id, senaste_fil_namn = nyaste_fil_id, nyaste_fil_namn # Vänta en minut innan nästa kontroll time.sleep(60)

Permalänk
Medlem

Inte för att förstöra kreativiteten att göra något eget. Men har du tittat på detta projekt?
https://anthias.screenly.io/

Visa signatur

.: Learn the system, Play the system, Break the system :.

Permalänk
Medlem
Skrivet av forcevision:

Sorry

import os import time import io from googleapiclient.discovery import build from googleapiclient.http import MediaIoBaseDownload # Ersätt med din faktiska API-nyckel api_nyckel = 'DIN_API_NYCKEL' # Skapa en service för att interagera med Google Drive API drive_service = build('drive', 'v3', developerKey=api_nyckel) # ID för den delade mappen på Google Drive där dina videofiler finns drive_folder_id = 'MAPPENS_ID' def ladda_ner_mp4(fil_id, namn): request = drive_service.files().get_media(fileId=fil_id) fh = io.FileIO(namn, 'wb') downloader = MediaIoBaseDownload(fh, request) done = False while done is False: status, done = downloader.next_chunk() def spela_upp_mp4(namn): os.system(f"vlc --fullscreen {namn}") def hitta_nyaste_mp4(): result = drive_service.files().list(q=f"'{drive_folder_id}' in parents", spaces='drive', fields='files(id, name, modifiedTime)', orderBy='modifiedTime desc', pageSize=1).execute() latest_file = result.get('files', [])[0] powerpoint_file_id = latest_file.get('id') powerpoint_file_name = latest_file.get('name') return powerpoint_file_id, powerpoint_file_name senaste_fil_id, senaste_fil_namn = hitta_nyaste_mp4() while True: # Hitta den senaste mp4-filen nyaste_fil_id, nyaste_fil_namn = hitta_nyaste_mp4() # Jämför filernas datum och tid if nyaste_fil_id != senaste_fil_id: ladda_ner_mp4(nyaste_fil_id, nyaste_fil_namn) spela_upp_mp4(nyaste_fil_namn) senaste_fil_id, senaste_fil_namn = nyaste_fil_id, nyaste_fil_namn # Vänta en minut innan nästa kontroll time.sleep(60)

Behövs även se hur du indenterat koden, Python är känslig för blanksteg och indragningar.

Permalänk
Skrivet av Chibariku:

Behövs även se hur du indenterat koden, Python är känslig för blanksteg och indragningar.

Fungerar en skärm dump eller vad är enklast ?

Permalänk
Medlem

Kolla in www.yodeck.com som är en digital signade plattform som är gratis för en skärm och finns färdig .iso för raspberry pi.

Användarvänlig webbbaserat system. Vi använde det på mitt gamla jobb på ett konferenshus för att visa schema och rumsbokningar. Vi hade det kopplat till Google docs och det var enkelt för administrativ personal att byta innehåll dagligen.

Permalänk
Skrivet av arowicki:

Kolla in www.yodeck.com som är en digital signade plattform som är gratis för en skärm och finns färdig .iso för raspberry pi.

Användarvänlig webbbaserat system. Vi använde det på mitt gamla jobb på ett konferenshus för att visa schema och rumsbokningar. Vi hade det kopplat till Google docs och det var enkelt för administrativ personal att byta innehåll dagligen.

Skall kolla på det.
Tackar för tipset.

Permalänk
Medlem
Skrivet av forcevision:

Fungerar en skärm dump eller vad är enklast ?

Ja en skärmdump på texten funkar.

Permalänk

Någon som vet hur man får pi:n att starta ett python script varje gång man startar om eller upp Pi:n ?
Scriptet kör vlc med en mp4 film.
Pi:n kör i grafiskt miljö.

Permalänk
Medlem
Skrivet av forcevision:

Någon som vet hur man får pi:n att starta ett python script varje gång man startar om eller upp Pi:n ?
Scriptet kör vlc med en mp4 film.
Pi:n kör i grafiskt miljö.

Hade försökt köra det från /etc/rc.local eller som cronjobb. Det första är nog enklast.

Har inte jättemkt erfarenhet av att automatisera grafiska grejer, men kan tänka mig att man kan behöva köra det som den inloggade användaren. Kommandot su är din vän. Kommandot sleep kan eventuellt också vara användbart om du behöver lägga på fördröjning för att systemet ska få tid att starta riktigt innan ditt script körs.

Edit: ...men först kan du ju kolla om det finns någon autostartfunktion i det grafiska gränssnittet, kanske är allra bäst/smidigast i sådana fall

Visa signatur

Nu lurade jag dig att slösa bort ett par värdefulla sekunder av ditt liv på att läsa denna fullständigt poänglösa signatur!

Permalänk
Medlem
Skrivet av forcevision:

Någon som vet hur man får pi:n att starta ett python script varje gång man startar om eller upp Pi:n ?
Scriptet kör vlc med en mp4 film.
Pi:n kör i grafiskt miljö.

Här finns lite olika sätt att lösa det på
https://www.dexterindustries.com/howto/run-a-program-on-your-...