2 votes

Télécharger des fichiers .MOV avec carrierwave-video ?

Enjeu : Je ne parviens pas à télécharger des fichiers .mov via Carrierwave.

Je n'ai aucun problème avec l'onde porteuse pour télécharger des images, et pour la vidéo - des fichiers .mp4. Lorsque j'essaie de télécharger des fichiers .mov, le téléchargement échoue. Je suppose que tout ce qui n'est pas .mp4 ne fonctionnera pas.

Quelqu'un utilise-t-il la gemme Carrierwave-video et est-il en mesure de télécharger des fichiers au format .mov ?

Mes joyaux de l'onde porteuse :

gem 'carrierwave', '~> 1.0'
gem 'carrierwave-aws'
gem 'carrierwave-ffmpeg'
gem 'carrierwave-video'
gem 'mini_magick', '~> 4.8'

J'ai essayé d'utiliser :

 version :mp4 do
   process encode_video: [:mp4]
 end

 version :mov do
   process encode_video: [:mov]
 end

dans mon uploader avec et sans les instructions if avant le fichier version... mais ne fonctionne pas. Avec l'un ou l'autre, je n'arrive pas à télécharger mov o mp4

Par défaut, j'ai dans mon uploader

  process encode_video: [:mp4]

Et cela me permet de ne télécharger que des fichiers .mp4 avec succès vers aws

Quand je le fais :

  process encode_video: [:mov]

J'obtiens l'erreur suivante lorsque j'essaie mp4 o mov :

NoMethodError (undefined method `+' for nil:NilClass):

Sur liste blanche :

def extension_whitelist
     %w(jpg jpeg gif png mov mp4 mov avi mkv 3gp mpg mpeg)
  end

J'ai également essayé de remplacer simplement le fichier .mov par .mp4, mais cela n'a pas fonctionné.

Quelqu'un a-t-il réussi à télécharger des fichiers mov ?

Je m'inquiète parce que je sais que les iPhones produisent la plupart des fichiers vidéo au format .mov et qu'il est donc important d'autoriser ce format.

Erreurs :

When trying to upload mov file i do get this success in the prompt:
I, [2019-01-20T02:47:51.127532 #3483]  INFO -- : Transcoding of /home/bob/Apps/app-file-master/tmp/1547970464-3483-0025-9410/samplemov.mov to /home/bob/Apps/uploader-twitter-master/tmp/1547970464-3483-0025-9410/tmpfile.mp4 succeeded

mais le téléchargement échoue et ne s'enregistre pas dans la base de données ou dans AWS. Il n'y a rien dans mon application. J'ai vérifié le fichier dans lequel il est indiqué qu'il a réussi.

0voto

Michal Points 46

Vous devez ajouter ".mov" à la liste blanche des extensions de carrierwave dans son fichier de configuration.

0voto

uno Points 1263

J'ai commencé à déboguer mon fichier uploader et j'ai trouvé la raison pour laquelle mov n'arrivait pas à télécharger.

C'est ce que j'avais auparavant :

  include CarrierWave::MiniMagick
  include CarrierWave::Video
  include CarrierWave::FFmpeg

J'ai retiré include CarrierWave::MiniMagick et cela a fonctionné.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X