2012-06-14 57 views
5

yo tratamos de crear una marca de agua (utilizando una imagen de png) en un video como este:ffmpeg y marca de agua png tema

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 

pero me sale el error:

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! 

Cuando uso una jpg, funciona como un encanto.

Uso ffmpeg v 0.10.4 en Debian 6 Squeeze. Cualquier ayuda sería muy apreciada.

EDITAR

El problema es más simple de lo que pensamos. Si uso -i ffmpeg con cualquier imagen PNG me sale un error similar:

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

Por favor proporcione la salida de la consola ffmpeg completa que resulta de su comando. Además, la mayoría de las preguntas de uso de ffmpeg son más adecuadas para superuser.com. – LordNeckbeard

+0

Lo he editado. – mindcast

+0

Gracias por actualizar la publicación. ¿Cómo se creó el png? ¿Sería posible compartir o cargar un archivo de muestra? Además, ¿cuál es la salida de 'ffmpeg -codecs | grep png'? – LordNeckbeard

Respuesta

12

Parece que su compilado sin soporte de zlib, que es un requisito para la codificación y decodificación PNG (consulte el código del archivo FFmpeg configure a ver qué más lo requiere).

para Debian/Ubuntu Esto significa que necesita zlib1g-dev, o para CentOS zlib-devel, como una dependencia de construcción y re-compilar FFmpeg. Se detecta automáticamente por FFmpeg, por lo que no necesitará agregar parámetros adicionales ./configure, lo que significa que también puede omitir --enable-decoder=png --enable-encoder=png.

Vea los diversos FFmpeg compile guides en el FFmpeg Wiki, o simplemente download a build of ffmpeg.

1

reemplazar [watermark] con [wm] y funciona como un encanto. utilizo este:

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

(marca de agua de abajo a la derecha)

+0

El nombre de la etiqueta de enlace generalmente no importa, y el filtro de fuente multimedia 'película' no es necesario:' ffmpeg -i input1 -i input2 -filter_complex "[0: v] [1: v] overlay" output'. – LordNeckbeard

Cuestiones relacionadas