Configurazione server domestico

Ottimo sei un grande, leggendo in giro per Plex sotto Docker non era possibile avere l’accelerazione hardware.
Solo sotto linux erano risuciti ad abbilitarla ma ci avevo provato e non ci ero riuscito. Grazie per la soluzione provo a vedere se riesco a farlo anche io.

@PaoloC grazie per la guida ho abilitato accelerazione HW sotto docker anche io.
tutto ok con un 4k H264 invece ho notato che i 4k H265 non sfrutta accelerazione HW :thinking ti è capitato?

Prego, figurati. Non ho fatto prove con il 4k. Direi che la prima cosa da fare è analizzare bene la codifica video del file (codec, bit, fps ecc.), Postaci tutti i dettagli in questione.

@PaoloC le specifiche del file incriminato sono queste:

Report Mediainfo

General
Unique ID : 174402927608102629033053234290650822094 (0x8334C83589B7ACA4B54371C9A120B5CE)
Complete name : D:\Sintel\Sintel.4k.UHD.ENG.FLAC.ITA.ENG.Sub.DMRip.1744p.X265_ZMachine.mkv
Format : Matroska
Format version : Version 4 / Version 2
File size : 3.25 GiB
Duration : 14mn 48s
Overall bit rate mode : Variable
Overall bit rate : 31.4 Mbps
Movie name : Sintel (4K UltraHD) - ZMachine
Encoded date : UTC 2014-12-17 12:15:59
Writing application : mkvmerge v7.2.0 (‘On Every Street’) 32bit built on Sep 13 2014 15:42:11
Writing library : libebml v1.3.0 + libmatroska v1.4.1
Attachements : cover.jpg

Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Codec ID : V_MPEGH/ISO/HEVC
Duration : 14mn 48s
Width : 4 096 pixels
Height : 1 744 pixels
Display aspect ratio : 2.35:1
Frame rate mode : Constant
Frame rate : 24.000 fps
Title : Video (4K UltraHD) HEVC/H.265 (Encoded by ZMachine)
Default : Yes
Forced : Yes

Audio
ID : 2
Format : FLAC
Format/Info : Free Lossless Audio Codec
Codec ID : A_FLAC
Duration : 14mn 48s
Bit rate mode : Variable
Channel(s) : 6 channels
Channel positions : Front: L C R, Back: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Title : Audio FLAC 5.1
Writing library : libFLAC 1.2.1 (UTC 2007-09-17)
Language : English
Default : Yes
Forced : No

Text #1
ID : 3
Format : UTF-8
Codec ID : S_TEXT/UTF8
Codec ID/Info : UTF-8 Plain Text
Title : Sub
Language : Italian
Default : Yes
Forced : No

Non si riesce a capire qual è lo spazio colore e la profondità di bit del file. Mi pare che il nostro processore supporti l’accelerazione hw per gli 8 e i 10 bit, ma non per i 12. Inoltre tempo fa Plex aveva problemi con il 10 bit, che forse hanno risolto ma non ne sono certo. Non dedicandomi ancora al 4K non posso esserti di grande aiuto ma cercherei di concentrarmi testando file a 8, 10 e 12 bit con spazi colore diversi e capire la compatibilità esatta dei vari formati con l’accelerazione hw e Plex… Facci sapere.

Grazie per info farò qualche oriva con qualche file 4k e vi aggiorno

1 Like

Ciao e grazie per aver scritto la procedura per abilitare la transcodifica hardware con docker.

Mi é venuto subito un dubbio, appena ho letto il tuo commento, che si é accresciuto sempre più coi successivi.

Ciò che non ho capito é come hai fatto a lanciare PMS da docker senza che esso avesse i provilegi per la transcodifica HW.

Non ricordo esattamente la procedura, ma non mi pare che mi abbia dato questi problemi.
Riproduco multipli 1080p, ma il processore (ho un j4105) non si é mai impiantato così tanto da farmi domandare se effettivamente fosse tutto in regola.
Ho seguito una guida strana o non me ne sono mai accorto?

Riguardo alla domanda che avevo posto in precedenza sull’accesso remoto alla fine confesso che ho risolto da solo (non mi era arrivata la notifica e col tempo mi sono dimenticato di rispondere!). Attualmente uso OpenVPN per accedere ai servizi da esterno alla LAN.

I permessi di cui stiamo discutendo sono quelli relativi all’accesso ai driver della scheda video, che vengono chiamati soltanto durante l’elaborazione hw delle conversioni. Quando si lancia il docker senza fargli puntare /dev/dri Plex gira senza accedere alla GPU, quindi le conversioni le opererà il processore, per cui si può lanciare benissimo e non dà nemmeno errori di sorta. Quando gli facciamo puntare /dev/dri non riusciremo a lanciarlo se non risolviamo prima le questioni relative ai permessi.

Se usi quindi Plex nel docker e non ti sei mai posto il problema probabilmente le conversioni sono state eseguite sempre dal processore, il tutto merita una verifica (semplicissima) perché sin quando la conversione è una può andare, ma se ne vengono lanciate diverse in simultanea la GPU fa la differenza.

Sto invece testando il miglior modo per accedere all’interfaccia web di OMV da fuori, ho risolto con il provider i vari problemi e riesco a farmi aprire le porte, per cui Plex è ok, ma se provo a forwardare ad es. la porta 443 per tentare di chiamare OMV entrano in ballo dei redirect e subentra Plex. Temo quindi sia necessario andare in VPN, te che prove hai fatto? Hai optato per il plugin o per il docker?

Per prova va bene “lanciare 4 film contemporaneamente da browser e dirgli di convertirli?” Ora provo e poi ti dico come è andata, così nel caso applico la procedura che hai esposto tu sopra.

Io ho installato il plugin di OpenVPN col certificato così non ho dovuto aprire altre porte particolari se non quella che uso appunto per la VPN. Con quella riesco ad accedere a tutto tranne che alla shell (forse perché ho configurato male qualche cosa?). Per risolvere ho installato Putty che uso in VPN senza problemi.
Ho però notato che quando accedo al server Samba di condivisione cartelle in VPN fa davvero fatica e cercando in rete ho visto che alcuni hanno avuto di questi problemi di velocità per il trasferimento file (che di fatto mi risulta molto lento da remoto). Ora sto provando CloudCommander, vediamo come va.

Per prova va bene “lanciare 4 film contemporaneamente da browser e dirgli di convertirli?”

Per provare basta metterne in play uno e andare in alto a destra su Attività → In riproduzione adesso e passare con il mouse sopra il contenuto in play, appariranno sopra delle informazioni. Se nella descrizione della transcodifica video appare “(hw)” significa che sta avvenendo tramite la GPU, quindi sta funzionando, altrimenti se ne sta occupando il processore. Vedi screenshot:

09 36

Sto per attivare anch’io OpenVPN, te che settings stai usando? Personalmente se fossi in remoto preferirei trasferire i file in FTP piuttosto che con SMB, dovrebbe essere molto più efficiente.

1 Like

Hai ragione. Lo avevo dato per scontato anche perché prima di installare Plex su docker lo avevo usato “senza”.
Ora seguo la tua guida e ti aggiorno. Grazie ancora. Non si finisce mai di imparare!

Con OpenVPN sto usando queste impostazioni:

  1. aprire la porta 1194 UDP nel router.
  2. abilitare la repositary omv extras
  3. selezionare e installare il plugin “Openmediavault OpenVPN”
  4. nella schermata dei servizi, selezionate OpenVPN e modificate solamente quanto segue:
  • abilita: si
  • porta: 1194
  • protocollo: UDP
  • utilizza compressione: si
  • autenticazione PAM: si
  • interfaccia gateway: la scheda di rete a cui è connesso il nas
  • gateway predefinito: si
  • Server DNS: l’indirizzo LAN del vostro router
  • indirizzo pubblico: l’ip statico o l’indirizzo che avete creato con DuckDNS.org
  1. nella schermata “certificati” create un nuovo certificato selezionando un utente e nominatelo con un qualunque nome valido
  2. scaricate il certificato (vi servirà su ogni macchina con la quale volete connettervi al NAS da remoto)
  3. installare il software/app che vi permetterà di stabilire un collegamento sicuro da remoto

Devo dire che OpenVPN funziona molto bene per l’aspetto sicurezza (per quello che ne posso capire e che leggo in rete). Però… ho letto che di fatto spesso va molto lento. Sto leggendo qui qualche cosa su come risolvere la questione e, nonostante sia riuscito a modificare il file di configurazione nel client, non trovo quello nel server. Qualcuno sa dove posso trovarlo? Lo devo inserire in qualche campo “extra” del plugin?

Persone come te vanno valorizzate.
Non esagero a dire che la soluzione da te postata deve avere davvero maggiore risalto. Io, che credevo comunque di sapere qualche cosina di Plex, mi sono perso questo passo fondamentale.

Posso infatti dire che l’accesso alla scheda video ha:

  • effettivamente abilitato la transcodifica hardware
  • diminuito i tempi di risposta per il caricamento delle tracce audio, locandine e degli stessi film
  • diminuito di netto i tempi di risposta in tutto il sistema (possibile miracolo?).

In pratica ha rivoluzionato l’esperienza. di uso di Plex per chi lo esegue da docker. Io uso OpenMediaVault (debian 9) e la differenza è stata come passare dalla notte al giorno.

Grazie ancora!!

Ho testato OpenVPN, mi pare ok, ma ho solo verificato che tutto funzioni (a parte SMB che ci vorrei dedicare un capitolo a parte, anche se vorrei disabilitarlo definitivamente e limitarmi a FTP), mi mancano dei test più approfonditi. Ho però disabilitato la compressione in quanto è una opzione ormai deprecata e rimossa dalla versione 2.5 in poi, con l’opzione attiva basta quindi un upgrade lato server o client e potrebbe non funzionare più la connessione, meglio farne a meno da subito. Puoi trovare le configurazioni del server qui: /etc/openvpn/server.conf. Fammi sapere se riesci a trovare un setting più performante.

Relativamente all’accelerazione hw da docker è in effetti un bel salto quantico, ho notato anche io un cambio notevolissimo nella risposta ed esperienza con Plex. Ho anche fatto rifare l’analisi delle librerie Video “generiche” rigenerando così molto velocemente tutte le immagini di anteprima (che probabilmente non erano state generate o per l’assenza dell’accelerazione hw o per la configurazione dei dischi in noexec al momento di quando generai le library). Per il futuro vorrei mettere in rete un HDHomeRun HDHR5-4DT(EU) o un VBox XTi-3442 o simili e gestirlo da Plex. A quel punto ci sarà da listare /dev/dri, dove saranno elencati anche i driver del nuovo apparato e bisognerà aggiornare lo script che abbiamo creato /usr/local/bin/permissions.sh per far eseguire il chown e chmod per far funzionare il tutto. Qualcuno ha esperienza con HDHomeRun o qualche altro Live TV / DVR?

Ciao a tutti ho fatto qualche prova con film in 4k a 10bit e vengono convertiti con accelerazione hw solo su uno mi da un errore sulla tv samsung (PLAYER_ERROR_NOT_SUPPORTED_FORMAT (AVPlay).
Sono molto soddisfatto anche openVPN funziona molto bene e nel mio caso e più reattivo SMB che FTP il test l’ho potuto fare tra server e cellulare android.
se avete da indicarmi qualche link di file in 12 bit faccio ulteriore prove

Ciao Paolo, io con docker riesco a trascodificare solo la seconda parte del video, ma non riesco a codificare l’HEVC. Ti spiego meglio. Di solito, se lancio plex fuori dal docker, e metto in visione un film HEVC 8bit, ottengo una scritta del tipo: “Video Trascodifica HEVC in (hw) in H264 (hw)” la parola "hw "si trova in tutte e due le parti. Se invece la lancio tramite docker ottengo quello che ottieni anche tu ovvero “video trascodifica HEVC in H264 (hw)”. Questo non è un problema per i video HD HEVC ma per i video 4k la decodifica HEVC comincia ad essere impegnativa e ad arrivare anche al 100% di utilizzo CPU. Come HW ho un i7100T capace anche di trascodificare via hardware anche video in 4k HDR ( e fuori dal docker lo fa senza problemi). Qualcuno ha riscontrato lo stesso mio problema?

Ciao Leonardo, proverei a lanciare l’encoding di una versione ottimizzata del video 4K in H264 (magari osservando parallelamente cosa succede all’utilizzo CPU nelle info di sistema di OMV e ai log di sistema), dopodiché a ottimizzazione conclusa scaricherei il log di Plex e ci darei un’occhiata, altro al momento non mi viene in mente. Facci sapere.

Buongiorno a tutti,
Vorrei chiedere a voi esperti un consiglio; Devo assemblare un server su cui far girare solo PLEX e che possa sopportare almeno 2 flussi 4k in contemporanea (trascodifica hardware, ho il pass) e magari anche altri 2 in FHD. Che configurazione mi consigliate?
Grazie in anticipo
Luca

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.