FFmpeg - PNG / JPG - Ungültige Daten bei der Verarbeitung von Eingaben gefunden

6544
Jon G

Ich versuche, einem Video mit FFmpeg ein Wasserzeichen hinzuzufügen. Ich habe eine benutzerdefinierte Version von FFmpeg, die ich mit dem Ziel erstellt habe, die binäre Größe niedrig zu halten. Ich habe offenbar die Fähigkeit von FFmpeg ausgeschlossen, PNG / JPG-Bilder in diesem Prozess zu lesen:

ffmpeg -i ../weather.png ffmpeg version 2.6.git Copyright (c) 2000-2015 the FFmpeg developers built with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1) configuration: --prefix=/home/user/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/user/ffmpeg_build/include --extra-ldflags=-L/home/user/ffmpeg_build/lib --bindir=/home/user/bin --enable-gpl --disable-doc --enable-yasm --disable-decoders --enable-decoder=mpeg4 --enable-decoder=aac --enable-decoder=h264 --enable-decoder=mpegvideo --enable-decoder=mpeg1video --enable-decoder=mpeg2video --enable-decoder=png --disable-encoders --enable-encoder=mpeg4 --enable-encoder=aac --enable-encoder=h264 --enable-encoder=libx264 --enable-encoder=mpeg1video --enable-encoder=mpeg2video --enable-encoder=png --disable-parsers --enable-parser=aac --enable-parser=mpeg4video --enable-parser=ac3 --enable-parser=h261 --enable-parser=h264 --enable-parser=vc1 --enable-parser=mpegvideo --disable-demuxers --enable-demuxer=aac --enable-demuxer=h264 --enable-demuxer=mpegvideo --enable-demuxer=m4v --enable-demuxer=mov --enable-demuxer=vc1 --enable-demuxer=mp4 --enable-demuxer=concat --disable-muxers --enable-muxer=h264 --enable-muxer=mpeg1video --enable-muxer=mpeg2video --enable-muxer=m4v --enable-muxer=mov --enable-muxer=vc1 --enable-muxer=md5 --enable-muxer=mp4 --enable-protocols --enable-indev=v4l --enable-indev=v4l2 --disable-filters --enable-filter=aresample --enable-filter=scale --enable-filter=movie --enable-avfilter --disable-indevs --enable-indev=lavfi --disable-outdevs --enable-hwaccels --enable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-symver --enable-network --enable-libx264 --enable-zlib libavutil 54. 20.100 / 54. 20.100 libavcodec 56. 26.100 / 56. 26.100 libavformat 56. 25.101 / 56. 25.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 12.100 / 5. 12.100 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 1.100 / 1. 1.100 libpostproc 53. 3.100 / 53. 3.100 ../weather.png: Invalid data found when processing input 

Ich interessiere mich hauptsächlich für PNG-Bilder, dachte aber, ich würde auch JPG ausprobieren. Sie werden feststellen, dass ich --enable-encoder=pngund --enable-decoder=pngin meiner Konfiguration habe. Ich habe auf SO festgestellt, dass ich überprüfen sollte, ob ich zlib1g-dev (Ubuntu) installiert habe, was ich auch mache. Muss ich FFmpeg anweisen, dies in meiner Zusammenstellung zu verwenden?

Ansonsten fehlt mir der Codec, um Bilder in FFmpeg aufzunehmen.

Wasserzeichen-Befehl:

ffmpeg -y -i input.mp4 -i image.png -filter_complex "overlay=0:0" -codec:a copy -strict -2 output.mp4 
3

1 Antwort auf die Frage

2
LordNeckbeard

Sie müssen zwei Dinge angeben:

  1. Die richtigen Abhängigkeiten
  2. Die richtigen configureOptionen

Dekodierungsabhängigkeiten

  • Die PNG-Dekodierung hängt von der zlib-Bibliothek ab. Daher müssen Sie vor dem Kompilieren das gesamte Paketzlib.h installieren ffmpeg.

  • Für die JPEG-Dekodierung sind keine zusätzlichen externen Bibliotheken erforderlich.

configure Optionen

Standardmäßig müssen Sie keine Konfigurationsoptionen für die PNG- und JPEG-Dekodierung hinzufügen.

Wenn Sie --disable-*Optionen wie in der obigen Frage verwendet haben, werden möglicherweise die für die PNG- und JPEG-Dekodierung erforderlichen Komponenten deaktiviert. Wenn dies der Fall ist, müssen Sie möglicherweise Folgendes hinzufügen:

--enable-decoder=mjpeg,png --enable-demuxer=image2 --enable-protocol=file --enable-zlib 

Stellen Sie sicher, dass keine der folgenden in Konflikt stehenden --disable-*Optionen verwendet werden, durch die diese Optionen gelöscht werden.

Kleiner Zusatz: Ich musste auch "--enable-filter = overlay" hinzufügen. Jon G vor 8 Jahren 0
Mit einem ähnlichen Problem, aber mit Ausgabe, wurde ich durch Hinzufügen von --enable-muxer = image2 gelöst Shebuka vor 8 Jahren 1