FFmpeg を使用してビデオにウォーターマークを追加しようとしています。バイナリ サイズを小さく抑えるために、FFmpeg のカスタム ビルドを作成しています。このプロセスでは、FFmpeg が PNG / JPG 画像を読み取る機能を除外しているようです。
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
私は主にPNG画像に興味がありますが、JPGも試してみようと思いました。私の設定にはと--enable-encoder=png
があります。--enable-decoder=png
SOについてzlib1g-dev (Ubuntu) がインストールされていることを確認する必要があります。コンパイル時にこれを使用するように FFmpeg に指示する必要がありますか?
それ以外の場合、FFmpeg に画像を含めるために不足しているコーデックは何ですか?
透かしコマンド:
ffmpeg -y -i input.mp4 -i image.png -filter_complex "overlay=0:0" -codec:a copy -strict -2 output.mp4
答え1
次の 2 つを提供する必要があります。
- 適切な依存関係
- 適切な
configure
選択肢
依存関係のデコード
PNGのデコードはzlibライブラリに依存するため、インストールする必要があります。パッケージが提供するもの
zlib.h
コンパイルする前にffmpeg
。JPEG デコードには追加の外部ライブラリは必要ありません。
configure
オプション
デフォルトでは、PNG および JPEG デコード用の構成オプションを追加する必要はありません。
上記の質問のようなオプションを使用した場合--disable-*
、PNG および JPEG のデコードに必要なコンポーネントが無効になる可能性があります。その場合は、以下を追加する必要があります。
--enable-decoder=mjpeg,png
--enable-demuxer=image2
--enable-protocol=file
--enable-zlib
--disable-*
これらのオプションのいずれかを無効にするような競合するオプションが使用されていないことを確認してください。