5

pngこのようなビデオに(画像を使用して)透かしを作成しようとしました:

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

しかし、私はエラーが発生します:

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!

を使用するjpgと、魔法のように機能します。

Debian 6 Squeeze で ffmpeg v 0.10.4 を使用しています。どんな助けでも大歓迎です。

編集

問題は思ったより簡単です。png 画像で ffmpeg -i を使用すると、同様のエラーが発生します。

  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
4

2 に答える 2

14

PNGのデコードとエンコードの要件であるzlibサポートなしでコンパイルされたようです(FFmpegconfigureファイルのコードを参照して、他に何が必要かを確認してください)。

Debian/Ubuntuの場合、ビルドの依存関係としてzlib1g-dev、または CentOS の場合zlib-develが必要であり、FFmpeg を再コンパイルする必要があることを意味します。FFmpeg によって自動的に検出されるため、追加の./configureパラメーターを追加する必要はありません。つまり、省略することもできます--enable-decoder=png --enable-encoder=png

FFmpeg WikiでさまざまなFFmpeg コンパイル ガイドを参照するか、単にffmpeg のビルドをダウンロードしてください。

于 2012-06-15T18:31:48.950 に答える
1

に置き換える[watermark][wm]、魅力のように機能します。私はこれを使用します:

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

(右下の透かし用)

于 2013-02-02T22:24:37.730 に答える