Il caricamento del file video fallisce a causa di un errore JS

So che, in generale, Discourse non è pensato per il caricamento di video, detto questo, ho riscontrato un problema per cui speravo che qualcuno potesse indicarmi la giusta direzione per capirlo.

Alcuni file video caricati rimangono bloccati su “Caricamento 100%” indefinitamente. L’unica opzione rimasta per un utente è aggiornare la pagina o chiudere il post, indipendentemente da quanto tempo si aspetti o da quanto piccolo sia il file.

È chiaro che c’è del codice che esegue una qualche forma di convalida o controllo in cui il file si blocca, sono piuttosto nuovo allo sviluppo Ruby On Rails / Discourse, quindi non ho ancora capito dove nel percorso il file si blocca. Ho, tuttavia, trovato un modo per aggirare il problema e caricare il file senza alcun problema, sebbene in un modo non molto user-friendly.

Se prendo lo stesso identico file, rinomino l’estensione del nome del file da .mp4 a .pdf, il file viene caricato senza problemi e, di fatto, viene aggiunto anche con la corretta estensione.

ad es.
Se carico PXL_12234563421LS.mp4, il file rimarrà bloccato indefinitamente, se lo carico come: PXL_12234563421LS.pdf, il caricamento viene completato e inserisce persino il corretto markdown video nel post:

![PXL_20200811_12234563421LS|video](upload://sxVpgLrc3L2MukaD5eS5QOgPY7j.mp4)

Qualcuno ha abbastanza familiarità con questo percorso per spiegarmi cosa sta succedendo e c’è un modo per disabilitarlo da qualche parte? Sono anche felice di capire esattamente dove si trova il problema e forse segnalare un bug con qualche indicazione.

Grazie.

4 Mi Piace

Forse si tratta di un problema di connessione Internet.
Ma di solito, ricaricare la pagina risolve il problema e il video può essere caricato?

Apprezzo la risposta, ma non si tratta di un problema di connessione Internet. Si verifica da ogni computer e su diversi browser. Sto caricando questo sulla stessa rete da cui è in esecuzione l’istanza di discourse, quindi non sta andando su Internet.

La modifica dell’estensione che porta a un caricamento riuscito, anche nello stesso post in cui il file originale è ancora in “caricamento”, indica decisamente del codice in discourse in esecuzione per i file video che si blocca indefinitamente su determinati file.

1 Mi Piace

C’è un errore che compare nella console?

Puoi caricare il video su try.discourse.org?

1 Mi Piace

Quanto è grande il file? Credo che la dimensione massima del file sia 30 MB.

Avrei anche chiesto se questo fosse tramite cellulare o PC, ma sotto menzioni un computer.

Ho provato a farlo su try.discourse.org ma i file .mp4 non sono ammessi lì, scusa, avrei dovuto metterlo nel mio post originale.

Inoltre, questo è un piccolo file, solo 8 megabyte. Ho scoperto che la dimensione del file non ha importanza.

Quando dici se si verificano errori nella console, sto guardando i log e vedo che l’upload inizia e poi non viene visualizzato nient’altro per quell’evento, c’è qualche altro posto a cui ti riferisci come console che dovrei guardare?

Sia il computer che il telefono visualizzano lo stesso problema, è sicuramente specifico dei file prodotti, se ricodifico il file con ffmpeg il problema scompare anche. Inoltre, ho provato Chrome e Firefox e entrambi visualizzano lo stesso problema.

Giusto per essere chiari, tutto ciò che sto facendo è cambiare il nome del file da “movie.mp4” a “movie.pdf” e poi viene caricato senza bloccarsi su “Caricamento 100%”.

La dimensione del file è 8 MB, qualsiasi file video che presenta questo problema può essere di qualsiasi dimensione. Se potessi determinare e tracciare il percorso che sta seguendo durante il caricamento, probabilmente potrei restringere il campo di dove si blocca.

Riprova ora, l’ho appena aggiunto.

Mi riferisco alla console del browser: viene visualizzato qualcosa lì o nei log del server (/logs)?

Va bene, posso riprodurlo lì, ho dovuto trovare un esempio leggermente più piccolo ma ne ho molti :slight_smile:

La prima immagine mi mostra mentre carico il file con estensione .mp4 e rimango bloccato su “Caricamento 100%” indipendentemente da quanto aspetto. Ho aspettato 5 minuti prima di scattare lo screenshot.

Ho lasciato il post aperto e bloccato sullo stato “Caricamento 100%” su try.discourse.org, utente: testdub. Se questo aiuta da parte vostra. Lo lascerò aperto finché non avrò notizie.

Non consentite i PDF ma i TXT, quindi ho semplicemente rinominato il file in .txt e il caricamento è stato completato.

Quando carico lo stesso file con estensione .txt, viene completato in pochi secondi e appare come markdown video.

Solo per completezza, ecco gli md5 dei file che ho caricato:

62b865b29c47acbce859c27246c0d7c3  PXL_20240812_174504425.LS.mp4
62b865b29c47acbce859c27246c0d7c3  PXL_20240812_174504425.LS.txt

Ecco l’errore che vedo nella console del browser durante il caricamento di quel file:

image

Uncaught IndexSizeError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The source width is 0.
    at composer-video-thumbnail-uppy.js:80:31

8998f3f964284f7e0ab4007836dbddd736757617.mp4.gz (3,3 MB)

Questo è qualcosa lato client che dovremo correggere.

2 Mi Piace

Sì, fantastico grazie Michael!

Stavo per rispondere con qualcosa di simile:


Quando guardo la console per Firefox vedo qualcosa di simile:

Media resource blob:devsite.net could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_METADATA_ERR (0x806e0006)

Su Chrome ottengo un errore diverso e forse migliore su cosa potrebbe succedere qui:

Uncaught DOMException: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The source width is 0.
    at https://devsite.net/assets/chunk.d340137c92abde91812c.d41d8cd9.js:74:3649
3 Mi Piace

Ho avuto un problema simile, su WordPress. E poi l’MP4 era corrotto. Ho appena caricato un breve MP4 senza problemi e se funziona, forse l’MP4 stesso, o il processo che l’ha creato, dovrebbe controllare?

Sei riuscito a risolvere?

Abbiamo qualcuno che sta esaminando una soluzione, sì.

3 Mi Piace

La correzione per questo problema è ora attiva:

3 Mi Piace

Ciao Blake, grazie per la rapidissima risposta! Ho testato questa soluzione e funziona benissimo su Chrome, ma non funziona su Firefox. Rimango bloccato su “Caricamento 100%” e ricevo il seguente errore nella console:

Media resource blob:https://devsite.net/a2deff66-3376-4c6e-9cca-f18275c312ce could not be decoded.
Media resource blob:https://devsite.net/a2deff66-3376-4c6e-9cca-f18275c312ce could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_METADATA_ERR (0x806e0006)

Ho testato questo con Firefox 129.0.2.

Fammi sapere se ci sono altre informazioni che posso fornire.

1 Mi Piace

Questa correzione dovrebbe funzionare. In questo caso, non verrà creata un’anteprima video per il video, ma questa volta non impedirà il caricamento effettivo.

3 Mi Piace

Grazie, sono riuscito a caricare con successo con Firefox. Apprezzo molto la rapida risposta e i follow-up!

2 Mi Piace

Questo argomento è stato chiuso automaticamente 3 giorni dopo l’ultima risposta. Non sono più ammessi nuovi messaggi.