ffmpeg & png-Wasserzeichen-Problem
Ich habe versucht, um ein Wasserzeichen zu erstellen (mit einem png
Bild) auf ein video wie dieses:
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
aber ich bekomme die Fehlermeldung:
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!
Wenn ich mit einem jpg
, es funktioniert wie ein Charme.
Ich bin mit den ffmpeg-v-Version 0.10.4 auf Debian 6 Squeeze.
Jede Hilfe wäre sehr geschätzt werden.
BEARBEITEN
Das problem ist einfacher als ich dachte. Wenn ich mit ffmpeg -i mit jedem png-Bild bekomme ich eine ähnliche Fehlermeldung:
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
- Bitte geben Sie den kompletten ffmpeg die Ausgabe in der Konsole, dass die Ergebnisse aus Ihren Befehl. Auch die meisten ffmpeg Verwendung Fragen sind besser geeignet für superuser.com.
- Ich 've bearbeitet.
- Vielen Dank für die Aktualisierung der post. Wie war das png erstellt? Wäre es möglich, zu teilen oder laden Sie eine Beispieldatei? Auch, was ist der output von
ffmpeg -codecs | grep png
? - Es nicht alles zeigen. Wie kann ich das kompilieren mit png-Unterstützung ? Das gleiche png, die ich auf einer anderen installation und es funktioniert Prima.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es, Ihr kompiliert, ohne zlib-Unterstützung die Voraussetzung für das PNG-Dekodierung und-Kodierung (siehe code von FFmpeg
configure
- Datei, um zu sehen, was sonst noch erforderlich ist).Für Debian/Ubuntu heißt das, Sie müssen zlib1g-dev, oder für CentOS zlib-devel, als build-Abhängigkeit und re-kompilieren von FFmpeg. Es wird automatisch erkannt, die von FFmpeg, so dass Sie nicht brauchen, um zusätzliche
./configure
Bedeutung der Parameter können Sie auch weglassen--enable-decoder=png --enable-encoder=png
.Finden Sie in den verschiedenen FFmpeg kompilieren guides am FFmpeg-Wiki, oder einfach laden Sie einen build von ffmpeg.
ersetzen
[watermark]
mit[wm]
und es funktioniert wie ein Charme.Ich benutze diese:
(für rechts unten Wasserzeichen)
movie
multimedia-Quelle-filter ist nicht nötig:ffmpeg -i input1 -i input2 -filter_complex "[0:v][1:v]overlay" output
.