2012-06-14 7 views
5

J'ai essayé de créer un filigrane (en utilisant une image png) sur une vidéo comme celui-ci:ffmpeg et .png question filigrane

ffmpeg -i test.wmv -b:a 300k -ar 22050 -t 10 -f flv -s 352x288 -vf "movie = watermark_logo352.png [watermark]; [in][watermark] overlay =0:0 [out]" out.flv 

mais je reçois l'erreur:

ffmpeg version 0.10.4 Copyright (c) 2000-2012 the FFmpeg developers 
built on Jun 14 2012 13:14:31 with gcc 4.4.5 configuration: 
--prefix=/home/username --enable-cross-compile --enable-shared --arch=amd64 --target-os=linux --disable-yasm --enable-decoder=png --enable-encoder=png 
     libavutil  51. 35.100/51. 35.100 
     libavcodec  53. 61.100/53. 61.100 
     libavformat 53. 32.100/53. 32.100 
     libavdevice 53. 4.100/53. 4.100 
     libavfilter  2. 61.100/2. 61.100 
     libswscale  2. 1.100/2. 1.100 
     libswresample 0. 6.100/0. 6.100 
     Input #0, asf, from 'test.wmv': 
     Metadata: 
      >  WMFSDKVersion : 9.00.00.2980 
      >  WMFSDKNeeded : 0.0.0.0000 
      >  IsVBR   : 1 
      >  VBR Peak  : 351 
      >  Buffer Average : 728 Duration: 00:00:05.59, start: 0.000000, bitrate: 574 kb/s 
      >  Stream #0:0(jpn): Audio: wmav2 (a[1][0][0]/0x0161), 22050 Hz, 2 channels, s16, 32 kb/s 
      >  Stream #0:1(jpn): Video: wmv1 (WMV1/0x31564D57), yuv420p, 352x288, 520 kb/s, SAR 8:9 DAR 88:81, 29.97 tbr, 1k tbn, 1k tbc File 
      > 'out2.flv' already exists. Overwrite ? [y/N] y w:352 h:288 
      > pixfmt:yuv420p tb:1/1000000 sar:8/9 sws_param: 
    [image2 @ 0x551f880] decoding for stream 0 failed 
    [image2 @ 0x551f880] Could not find codec parameters (Video: png) 
    [movie @ 0x551f440] Failed to find stream info 
    [movie @ 0x551f440] Failed to find any codec 
    Error initializing filter 'movie' with args 'watermark_logo352.png' 
    Error opening filters! 

Lorsque j'utilise une jpg, cela fonctionne comme un charme.

J'utilise ffmpeg v 0.10.4 sur Debian 6 Squeeze. Toute aide serait grandement appréciée.

EDIT

Le problème est plus simple que ce que je pensais. Si j'utilise ffmpeg -i avec une image .png je reçois une erreur similaire:

libavutil  51. 35.100/51. 35.100 
    libavcodec  53. 61.100/53. 61.100 
    libavformat 53. 32.100/53. 32.100 
    libavdevice 53. 4.100/53. 4.100 
    libavfilter  2. 61.100/2. 61.100 
    libswscale  2. 1.100/2. 1.100 
    libswresample 0. 6.100/0. 6.100 
    libpostproc 52. 0.100/52. 0.100 
[image2 @ 0xc8b73a0] decoding for stream 0 failed 
[image2 @ 0xc8b73a0] Could not find codec parameters (Video: png) 
watermark.png: could not find codec parameters 
+0

S'il vous plaît fournir la sortie de la console de ffmpeg complète qui résulte de votre commande. En outre, la plupart des questions d'utilisation de ffmpeg sont mieux adaptées pour superuser.com. – LordNeckbeard

+0

Je l'ai édité. – mindcast

+0

Merci de mettre à jour le post. Comment le png a-t-il été créé? Serait-il possible de partager ou de télécharger un fichier d'exemple? Aussi, quelle est la sortie de 'ffmpeg -codecs | grep png'? – LordNeckbeard

Répondre

12

Il semble que votre compilé sans support zlib qui est une exigence pour le décodage PNG et le codage (reportez-vous au code du fichier FFmpeg configure à voir quoi d'autre l'exige).

pour Debian/Ubuntu cela signifie que vous avez besoin zlib1g-dev, ou pour CentOS zlib-devel, en tant que dépendance de construction et de recompiler FFmpeg. Il est automatiquement détecté par FFmpeg, vous n'aurez donc pas besoin d'ajouter des paramètres ./configure supplémentaires, ce qui signifie que vous pouvez également omettre --enable-decoder=png --enable-encoder=png.

Voir les divers FFmpeg compile guides au FFmpeg Wiki, ou simplement download a build of ffmpeg.

1

remplacez [watermark] avec [wm] et cela fonctionne comme un charme. J'utilise ceci:

-vf "movie=0:png:./watermark.png [wm];[in][wm] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]" 

(pour filigrane bas à droite)

+0

Le nom de l'étiquette de lien n'a généralement pas d'importance, et le filtre source multimédia 'film' n'est pas nécessaire:' ffmpeg -i entrée1 -i entrée2 -filtre_complex "[0: v] [1: v] superposition" sortie'. – LordNeckbeard