2017-06-11 2 views
1

Lorsque j'essaie de convertir un seul bitmap en une vidéo de 10 secondes en utilisant JCodec - parfois je reçois un résultat bizarre, généralement une distorsion de couleur - ou une ligne diagonale noire tracée sur la vidéo du résultat. ici est le code que je l'aide (je débogués et le problème se produit là-bas):Bitmap JCodec vers mp4 - distorsion dans la vidéo de résultat

SequenceEncoder enc = new SequenceEncoder(f); 
for (int x = 0; x < 250; x++) { 
    Log.d("frame", "" + x); 
    enc.encodeImage(bitmap); 
    publishProgress(pb, 1); 
} 
enc.finish(); 

Voici un exemple pour les problèmes les deux (marquées par des flèches rouges):

Image originale: enter image description here

Après render: enter image description here

+0

Avez-vous essayé un autre format d'image? Si vous avez encodé votre image d'entrée en '.jpg',' .png' et '.bmp' ... l'un de ces formats donne-t-il un meilleur résultat vidéo? –

+0

N'a pas encore essayé, je vais essayer de mettre à jour ici .. – mendy

+1

Une solution trouvée pour cela? Je suis coincé avec ce problème. –

Répondre

1

Mystère résolu après une longue période.

Si la hauteur ou la largeur du bitmap n'est pas un nombre pair, la distorsion survient. JCodec pour android ne déclenche aucune erreur lors de l'utilisation d'un bitmap comme celui-ci, où le Jcodec normal déclenchera une exception d'argument illégal.

Solution: Redimensionnez simplement bitmap à des tailles divisibles par 2 juste avant l'encodage.