2015-03-24 3 views
8

J'essaie de trouver les options magiques qui font fonctionner MP4 dans Chrome. Je pense que mes vidéos fonctionnaient, mais ne semblent plus fonctionner après la mise à jour de Chrome.Options ffmpeg qui fonctionnent avec Chrome

Chrome, version 41.0.2272.101 (Windows)

j'ai essayé quelques autres machines et a trouvé quelques-unes des vidéos travaillé sur les anciennes versions, et mon Mac semble fonctionner encore sur la dernière Chrome.

J'utilise les options de ffmpeg pour convertir de la série .png,

ffmpeg -framerate 10 -i dance%02d.png -r 10 -pix_fmt yuv420p dance.mp4 

Quelques vidéos fonctionnent, certains ne le font pas, un peu de travail de temps en temps, ou arrêter à mi-chemin à travers.

J'ai essayé diverses autres options comme,

ffmpeg -start_number 16 -framerate 10 -i dance%02d.png -r 10 -an -s hd720 \ 
-vcodec libx264 -pix_fmt yuv420p -preset slow -profile:v baseline \ 
-movflags faststart -y dance.mp4 

mais cela semblait juste faire empirer les choses.

ici est l'une des vidéos, http://www.botlibre.com/media/a786625.mp4

et un autre, http://www.botlibre.com/media/a812450.mp4

Firefox semble fonctionner sans problème, sur une version, fond gris si. IE fonctionne bien, fond blanc. Safari fonctionne, fond gris.

Autre chose, les vidéos avaient auparavant un arrière-plan blanc sur une ancienne version de Chrome, mais elles sont maintenant grises, sauf sur Mac toujours blanc.

et encore une chose. Le format Webm fonctionne, mais tout le monde connaît l'option pour supprimer la transparence? J'utilise,

ffmpeg -i dance%02d.png -r 10 -c:v libvpx -crf 10 -b:v 512k -c:a libvorbis dance.webm 

Je veux juste un fond blanc uni.

+0

Pour supprimer la transparence, vous pouvez utiliser un filtre comme 'format = rgba, lutrgb = a = minval'. Voir [this] (http://stackoverflow.com/questions/11260930/ffmpeg-splitting-rgb-and-alpha-channels-using-filter). Ou simplement aplatir les images avec un fond blanc avant d'encoder en utilisant convert. – aergistal

Répondre

3

La vidéo fournie fonctionne correctement avec Chrome v. 44 (bien que les deux liens soient désactivés). Comme vous dites que vous pensez que les vidéos ont fonctionné avant de passer à la version 41, cela indique un bug dans Chrome dans la version 41 vers (éventuellement) 43.

En ce qui concerne l'arrière-plan. Les fichiers PNG sont souvent transparents et le flux MP4 encodé semble être codé en flux 32 bits (couleurs 24 bits, alpha 8 bits). Seul webm supporte réellement l'alpha dans le navigateur (et actuellement seulement avec Chrome et Opera).

Chrome utilise FFmpeg pour décoder la vidéo mp4 et Firefox utilise tout ce que le système hôte fournit. Les différentes couleurs d'arrière-plan indiquent la transparence car la vidéo n'est pas réellement affichée avec la couche alpha disponible. La méthode recommandée est de restituer vos images sans la couche alpha (si vous ne l'utilisez pas pour n'importe quoi), ou de convertir la séquence PNG en un PNG de canal non alpha avant de les décoder dans une vidéo. C'est à la fois pour mp4 et webm.

+1

Oui, semble être un bug de Chrome qui a été corrigé depuis. Je suppose que je vais capturer la série d'images sans alpha et régénérer les vidéos.Je veux l'alpha, et cela fonctionne pour webm, mais je suppose que j'ai besoin d'une série d'images distinctes pour mp4. – James