J'essaie d'ajouter un filigrane png (avec canal alpha) sur la vidéo h264 avec semi-transparent. En utilisant le filtre de superposition, j'ai réussi à ajouter un filigrane à la vidéo.ffmpeg ajouter un filigrane semi transparent (png) avec une taille différente
ffmpeg -y -i input.mp4 -i watermark.png -filter_complex "[0][1] overlay=0:0" -c:v libx264 -an output.mp4
Mais le filtre de superposition ne fournit pas d'option transparente. J'ai donc essayé d'utiliser un filtre de mélange. Cependant, lorsque j'utilise la résolution d'origine, un message d'erreur s'affiche.
ffmpeg -y -i input.mp4 -i watermark.png -filter_complex "[0][1]blend=all_mode=overlay:all_opacity=0.3" -c:v libx264 -an output.mp4
Sortie:
libavutil 55. 28.100/55. 28.100
libavcodec 57. 48.101/57. 48.101
libavformat 57. 41.100/57. 41.100
libavdevice 57. 0.101/57. 0.101
libavfilter 6. 47.100/6. 47.100
libavresample 3. 0. 0/3. 0. 0
libswscale 4. 1.100/4. 1.100
libswresample 2. 1.100/2. 1.100
libpostproc 54. 0.100/54. 0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.41.100
Duration: 00:00:45.08, start: 0.000000, bitrate: 1872 kb/s
Stream #0:0(und): Video: h264 (Baseline) (avc1/0x31637661), yuv420p, 1920x1080, 1869 kb/s, 29.72 fps, 30 tbr, 16k tbn, 32k tbc (default)
Metadata:
handler_name : VideoHandler
Input #1, png_pipe, from 'watermark.png':
Duration: N/A, bitrate: N/A
Stream #1:0: Video: png, rgba(pc), 64x64, 25 tbr, 25 tbn, 25 tbc
[Parsed_blend_0 @ 00750600] First input link top parameters (size 1920x1080, SAR 0:1) do not match the corresponding second input link bottom parameters (64x64, SAR 0:1)
[Parsed_blend_0 @ 00750600] Failed to configure output pad on Parsed_blend_0
Error configuring complex filters.
Invalid argument
Le résultat ressemble à une question de résolution avec les paramètres. Alors que j'ai essayé de mettre à l'échelle le filigrane avant de mélanger.
ffmpeg -y -i input.mp4 -i watermark.png -filter_complex "[0:0]scale=1920x1080[a]; [1:0]scale=1920x1080[b]; [a][b]blend=all_mode=overlay:all_opacity=0.3" -c:v libx264 -an output.mp4
FFMPEG fonctionne avec ces paramètres. Mais la sortie n'était pas prévue, car le filigrane avait été étiré. Une idée pour mélanger filigrane avec une résolution différente sans étirer à la vidéo avec la transparence?
Voici le fichier de test. (Version ffmpeg 3.1.2) https://drive.google.com/open?id=0B2X3VLS01TogdHVJZ2I1ZC1GUUU https://drive.google.com/open?id=0B2X3VLS01TogbjhuZTlBOFFpN1k
Pour d'autres, afin de réduire l'opacité de mon filigrane overlay, je vient de modifier la .png, il a réduit à 50% opacité, ré-enregistré en .png et utilisé cela. A travaillé très bien –