2012-06-14 33 views
5

tôi đã cố gắng để tạo ra một watermark (sử dụng một hình ảnh png) trên một đoạn video như thế này:ffmpeg & png watermark vấn đề

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 

nhưng tôi nhận được lỗi:

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! 

Khi tôi sử dụng một jpg, nó hoạt động như một sự quyến rũ.

Tôi đang sử dụng ffmpeg v 0.10.4 trên Debian 6 Bóp. Bất kỳ trợ giúp nào cũng sẽ được đánh giá cao.

EDIT

Vấn đề là đơn giản hơn tôi nghĩ. Nếu tôi sử dụng ffmpeg -i với bất kỳ hình ảnh png tôi nhận được một lỗi tương tự:

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

Vui lòng cung cấp ffmpeg hoàn chỉnh giao diện điều khiển đầu ra là kết quả của lệnh của bạn. Ngoài ra, hầu hết các câu hỏi sử dụng ffmpeg đều phù hợp hơn cho superuser.com. – LordNeckbeard

+0

Tôi đã chỉnh sửa nó. – mindcast

+0

Cảm ơn bạn đã cập nhật bài đăng. Png được tạo ra như thế nào? Có thể chia sẻ hoặc tải lên tệp mẫu không? Ngoài ra, đầu ra của 'ffmpeg -codecs là gì | grep png'? – LordNeckbeard

Trả lời

12

Có vẻ bạn biên soạn mà không cần hỗ trợ zlib đó là một yêu cầu cho PNG giải mã và mã hóa (tham khảo mã của file FFmpeg configure để xem những gì khác đòi hỏi nó).

Dành cho Debian/Ubuntu này nghĩa là bạn cần zlib1g-dev, hoặc cho CentOS zlib-devel, như một phụ thuộc xây dựng và tái biên dịch FFmpeg. Nó được tự động phát hiện bởi FFmpeg, vì vậy bạn sẽ không cần thêm các thông số bổ sung ./configure có nghĩa là bạn cũng có thể bỏ qua --enable-decoder=png --enable-encoder=png.

Xem số khác nhau FFmpeg compile guides tại số FFmpeg Wiki hoặc chỉ đơn giản là download a build of ffmpeg.

1

thay thế [watermark] bằng [wm] và nó hoạt động như một sự quyến rũ. tôi sử dụng này:

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

(cho watermark dưới bên phải)

+0

Tên của nhãn liên kết thường không quan trọng và bộ lọc nguồn đa phương tiện 'phim' không cần thiết:' ffmpeg -i input1 -i input2 -filter_complex "[0: v] [1: v] overlay" output'. – LordNeckbeard

Các vấn đề liên quan