Je sais que, d’une manière générale, Discourse n’est pas conçu pour le téléversement de vidéos. Cela dit, j’ai rencontré un problème pour lequel j’espérais que quelqu’un pourrait m’orienter pour le résoudre.
Certains fichiers vidéo téléversés restent bloqués à « Téléversement 100 % » indéfiniment. La seule option restante pour un utilisateur est de rafraîchir la page ou de fermer le message. Peu importe le temps d’attente ou la taille du fichier.
Il est clair qu’il y a du code qui effectue une forme de validation ou de vérification qui bloque le fichier. Je suis assez nouveau dans le développement Ruby On Rails / Discourse, donc je n’ai pas encore compris où, dans le processus, le fichier est bloqué. J’ai cependant trouvé un moyen de contourner le problème et de téléverser le fichier sans aucun problème, bien que d’une manière peu conviviale.
Si je prends exactement le même fichier, je renomme l’extension du nom de fichier de .mp4 à .pdf, le fichier se téléverse sans problème et est même ajouté avec la bonne extension.
par exemple.
Si je téléverse PXL_12234563421LS.mp4, le fichier restera bloqué indéfiniment. Si je le téléverse comme ceci : PXL_12234563421LS.pdf, le téléversement se termine et ajoute même le bon markdown vidéo au message :
Quelqu’un est-il suffisamment familier avec ce processus pour expliquer ce qui se passe et y a-t-il un moyen de désactiver cela quelque part ? Je suis également heureux de déterminer exactement où se situe le problème et peut-être de signaler un bug avec quelques conseils.
J’apprécie la réponse, mais ce n’est pas un problème de connexion Internet. Cela se produit depuis tous les ordinateurs et sur tous les navigateurs. Je télécharge ceci sur le même réseau que celui sur lequel l’instance Discourse est exécutée, donc cela ne passe pas par Internet.
Le changement de l’extension menant à un téléchargement réussi, même dans le même message où le fichier d’origine est toujours en “téléchargement”, pointe clairement vers un code dans Discourse exécuté pour les fichiers vidéo qui bloque indéfiniment certains fichiers.
J’ai essayé de faire cela sur try.discourse.org mais les fichiers .mp4 ne sont pas autorisés là-bas, désolé, j’aurais dû le mentionner dans mon message original.
De plus, c’est un petit fichier, il ne fait que 8 Mo. J’ai constaté que la taille du fichier n’avait pas d’importance.
Quand vous demandez si des erreurs se produisent dans la console, je regarde les journaux et je vois que le téléchargement commence, puis rien d’autre ne s’affiche pour cet événement. Y a-t-il un autre endroit auquel vous faites référence comme étant la console que je devrais regarder ?
Mobile et PC affichent tous deux le même problème, il est définitivement spécifique aux fichiers produits. Si je ré-encode le fichier avec ffmpeg, le problème disparaît également. De plus, j’ai essayé Chrome et Firefox et les deux affichent le même problème.
Pour être clair, tout ce que je fais est de changer le nom du fichier de « movie.mp4 » à « movie.pdf », et ensuite il se télécharge sans rester bloqué à « Téléchargement à 100 % ».
La taille du fichier est de 8 Mo, tous les fichiers de films qui présentent ce problème peuvent être de n’importe quelle taille. Si je pouvais déterminer et tracer le chemin qu’il emprunte lors du téléchargement, je pourrais probablement identifier où il est bloqué.
D’accord, je peux le reproduire ici, j’ai dû trouver un exemple légèrement plus petit mais j’en ai plein
La première image me montre en train de télécharger le fichier avec une extension .mp4 et bloqué sur « Téléchargement 100 % » quelle que soit la durée d’attente. J’ai attendu 5 minutes avant de prendre la capture d’écran.
J’ai laissé le message ouvert et bloqué sur l’état « Téléchargement 100 % » sur try.discourse.org, utilisateur : testdub. Si cela peut vous aider de votre côté. Je le laisserai ouvert jusqu’à ce que j’aie des nouvelles.
Vous n’autorisez pas les PDF mais les TXT, j’ai donc simplement renommé le fichier en .txt et le téléchargement s’est terminé.
Lorsque je télécharge le même fichier avec l’extension .txt, il se termine en quelques secondes et s’affiche comme du markdown vidéo.
Voici l’erreur que je vois dans la console du navigateur en essayant de téléverser ce fichier :
Uncaught IndexSizeError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The source width is 0.
at composer-video-thumbnail-uppy.js:80:31
J’étais en train de répondre avec quelque chose de similaire :
Quand je regarde la console pour Firefox, je vois quelque chose comme ceci :
Media resource blob:devsite.net could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_METADATA_ERR (0x806e0006)
Sur Chrome, j’obtiens une erreur différente et peut-être meilleure sur ce qui pourrait se passer ici :
Uncaught DOMException: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The source width is 0.
at https://devsite.net/assets/chunk.d340137c92abde91812c.d41d8cd9.js:74:3649
J’ai eu un problème similaire, sur WordPress. Et ensuite le MP4 était cassé. Je viens de télécharger un court MP4 sans problème et s’il fonctionne, peut-être que le MP4 lui-même, ou le processus qui l’a créé, devrait vérifier ?
Salut Blake, merci pour un retour aussi rapide ! J’ai testé cela et cela fonctionne très bien sur Chrome, mais cela ne fonctionne pas sur Firefox, je reste bloqué sur « Uploading 100% » et l’erreur suivante dans la 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)
J’ai testé cela avec Firefox 129.0.2.
Faites-moi savoir si je peux fournir d’autres informations.
Ce correctif https://github.com/discourse/discourse/pull/28523 devrait faire l’affaire. Dans ce cas, une miniature vidéo ne sera pas créée pour la vidéo, mais cela ne l’empêchera pas de se télécharger cette fois-ci.