2017-08-30 3 views
1

J'ai utilisé ffmpeg pour décomposer la vidéo mp4 en nombre de trames, et j'ai utilisé OpenCV pour ajouter un filigrane invisible dans ces trames, mais le filigrane extrait ne peut pas résister à la compression avec perte. Par conséquent, j'ai trouvé qu'il n'est pas possible d'incorporer un filigrane invisible dans la vidéo mp4 directement, car la distorsion est trop, que j'ai utilisé la méthode de tatouage DCT.Comment filigraner une vidéo mp4?

Et j'ai essayé de convertir mp4 vidéo en yuv en utilisant ffmpeg afin de filigrane le composant Y, mais il semble que le fichier YUV produit ne peut pas lire correctement.

Est-il possible d'incorporer un filigrane invisible dans le fichier mp4? Ce que je veux dire, ce n'est pas d'incorporer un filigrane transparent (le filigrane n'est pas nécessaire pour ajuster sa transparence), mais d'incorporer un filigrane visible pour que l'image filigranée ne contienne aucun filigrane, en d'autres termes, ce qu'on appelle le tatouage invisible.

+0

Le filigrane ajouté dans la réponse n'est pas transparent. – md612

+0

Copie possible de [Comment ajouter un filigrane transparent au centre d'une vidéo avec ffmpeg?] (Https://stackoverflow.com/questions/10918907/how-to-add-transparent-watermark-in-center-of-a- video-with-ffmpeg) –

Répondre

0

Le filigrane est censé être une image PNG avec un canal ALPHA (transparence). Vous devez créer le logo avec la quantité de canal alpha souhaitée. Plus la valeur est basse, plus l'opacité est faible.

Le filigrane peut être ajouté avec une simple commande ffmpeg qui est dans le answer

ffmpeg -i input.mp4 -i logo.png -filter_complex \ 
"overlay=(W-w)/2:(H-h)/2" \ 
-codec:a copy output.mp4 

W, H font référence à la taille de la vidéo et w, h font référence à la taille du logo. Si le logo a un canal alpha, il est conservé dans le résultat.